bash.im ithappens.me zadolba.li
8690

С миру по нитке, с программера по байту

Получила как-то раз одна госконтора федерального подчинения крупный программный продукт. Написан он был под заказ столичными спецами, и заплачено им было весьма и весьма много. По факту оказалось, что программа сырая и много жрущая — потребляла ресурсы нескольких серверов, а чуть позже оказалось, что некоторые заявленные функции просто не работают, а некоторые хоть и работают, но очень криво. Разработчики выслушали все замечания и претензии и пообещали через год выпустить апдейт.

После того как региональные пользователи запросили совершенно новую функциональность в рамках того, что делала московская программа, было принято писать новую программу своими силами. За пару месяцев айтишники госконторы поговорили со всеми пользователями, на основе их рассказов спроектировали базу данных и выдвинули требования к будущей программе.

Начали писать. За полгода сделали. Кое-что работало кое-как, кое-что важное работало отлично, кое-что так и осталось в стадии идей и разработки. Но программу приняли в промышленную эксплуатацию, провели по всем документам и похвастались перед департаментом в Москве о том, что и в провинции сидят классные разработчики. Получили премии.

Прошло ещё полгода. Москвичи выпустили обещанный апдейт, который закрыл ряд багов и добавил функций, но так и не перекрыл очень специфические возможности местной программки. Радостный ведущий разработчик выпустил ещё пару обновлений и свалил в коммерческую фирму заниматься цисками.

Прошел ещё год. Московские разработчики выпустили ещё одно обновление и официально сказали: то направление развития функциональности, о котором им писали из провинции, некритично, и думать надо по-другому. Согласовали своё мнение в главном департаменте госконторы и получили ещё денег по госконтракту. В региональном филиале пользователи возмутились и заявили, что неправильно отказываться от хороших возможностей автоматизации, и вообще, москвичи неправы. Потом оформили все новые идеи в письмо о необходимости разработки и отправили начальству.

Начальство подумало, вспомнило о премиях за новые идеи, согласилось и приказало программу доработать. Вот только старая версия была на C# и MSSQL, а разработчик, которого наняли взамен старого, знал PHP и чуть-чуть SQL. Благо все идеи о доработке сводились к созданию пары запросов. Однако срок доработки по приказу был месячный, потому разработчик перекрестился и сделал новую программу на PHP. Да, она выводила только результаты этих двух запросов. Да, оформление было просто никакое, но программа работала — и работала очень быстро. А ещё она использовала старую базу и была веб-ориентированной. Потом разработчик предложил перевести всё на веб, потому что так модно, и через полгода ушёл работать в крупному региональную контору.

Когда вышло новое обновление большой программы и новые замечания по местной, на должности разработчика сидел вчерашний студент, который знал Firebird и Delphi, а ещё очень любил линукс и открытое ПО. Примерно тогда же выяснилось, что давно используемый MSSQL нелегальный, и денег на его легализацию не предвидится. Так как разом отказаться от старой базы было невозможно, то пришлось для начала писать скрипт, который копировал данные каждую ночь из старой базы в новую, и потихоньку переписывать функциональность двух старых программ в новую разработку. Естественно, прежде всего студент написал то, что требовало начальство, и в тестовую эксплуатацмю ушла третья программа, которая работала с одной задачей, но выполняла новые функции. Пользователям под роспись полетели новые инструкции о работе с программным продуктом, и на рабочем столе каждого из них появился очередной ярлычок.

Через полгода к разработкам подключились безопасники и потребовали внести множество изменений. Московский разработчик отказался от проекта, предоставив госконторе развивать его дальше своими силами, а студент уволился с тоски.