- PVSM.RU - https://www.pvsm.ru -
Несколько лет назад меня пригласили консультантом по одному проекту ПО для крупной французской технологической компании. Увиденное выходит за рамки всего, что я мог представить в разработке. Простое отсутствие профессиональной компетентности оказалось не самым худшим. Гораздо хуже было крайнее презрение к человеческому достоинству, что показалось мне сравнимо с тюрьмой в том виде, как я её представляю. Вот список, проверьте сами.
Правительство платит авансом несколько миллионов евро. План разработки на два-три года. Для начала компания нанимает несколько разработчиков и продолжает удваивать размер команды каждые три месяца или около того, осваивая бюджет по мере поступления средств.
7 лет спустя проект ещё не оформился. Набегают штрафы по несколько тысяч евро в сутки. Руководство решает сократить расходы и производит увольнения опытных сотрудников, нанимая людей с небольшим или нулевым опытом работы.
10 лет спустя, учитывая катастрофическое состояние проекта, менеджмент среднего звена решает нанять некоторых людей с опытом разработки, чтобы вернуться в график. Средняя текучка среди новичков: три месяца. Это минимальный срок, чтобы иметь право уволиться во Франции.
12 лет спустя проект ещё не закончен. Компания снова попадает на ежедневные штрафы, выставляя новые счета правительству за постоянно растущий поток запросов на изменение. Идёт 2008 год.
Ни один разработчик не скажет, что C++ — простой язык. Наоборот, один из самых сложных. На самом деле он настолько сложен, что даже его создатели признаются, что ещё не овладели всем. См. признание Страуструпа в его знаменитом «интервью» [1], которое сочинили как розыгрыш.
Столкнувшись с таким невероятным лабиринтом бездонной сложности, люди реагируют по-разному. Все гики-выскочки слышали о C++ и хотят доказать, что тоже могут на нём программировать. Они бесстрашно погружаются — и получают увечья до неузнаваемости. Тратят бесчисленные часы, пытаясь понять, почему куча абракадабры бесконечно крашится без видимой причины. У кого есть разум — те быстро уходят на другие языки и другие проекты. Жизнь слишком коротка.
Поддерживать крупный проект сложно независимо от языка. Только представьте, что сотрудникам нужно поддерживать 6 МИЛЛИОНОВ СТРОК кода — и вы получите представление о том, как далеко может зайти безумная разработка. Шесть миллионов — большое число. Если читать по одной строке в секунду, то вы просидите перед экраном семьдесят дней без перерыва.
Для понимания масштаба расскажу два случая.
Одному разработчику поставили задачу проверить, почему нажатие правой кнопкой мыши в интерфейсе полностью подвешивает приложение. После нескольких дней тщательного изучения и невероятного количества терпения он обнаружил, что щелчок правой кнопкой мыши работает нормально. Просто контекстное меню появляется примерно через 45 минут. Все меню динамически генерируются из кучи (статического!) контента при каждом нажатии правой кнопкой мыши в главном окне.
В какой-то момент пользователи сообщают, что вообще не работает опция «Загрузить данные с CD-ROM». Потребовалось несколько недель, чтобы разобраться. Но в итоге баг-репорт пометили как «Решён ранее», потому что данные загружались корректно. Разве что загрузка 700 МБ занимала семь суток. Но терпение — это добродетель.
Прошло несколько лет, прежде чем одному смышлёному парню в команде пришла идея использовать инструменты для управления версиями. Первая попытка не слишком получилась, так что команда переключилась на другую систему. А через пару лет — на третью, теряя всю историю с каждым переходом.
В итоге выбрали инструмент-катастрофу с GUI. Мерзость, исходящую непосредственно из Швеции. Пришлось выделить на полный рабочий день команду из четырёх человек для выполнения большинства задач в этой системе. Выглядело примерно так:
В какой-то момент была назначена официальная дата выпуска, совершенно оторванная от планов команды. Когда пришёл день, клиенту фактически отправили пустой компакт-диск с инструкциями по установке, потому что никто не смог собрать софт в течение нескольких недель. Клиент узнал, что ему прислали пустой диск, официально пожаловался — и получил старую версию. Они узнал об этом, потому что отображаемая дата в поле «О программе» была такой же, как и в прошлом году.
Платишь крохи — получаешь идиотов
С таким большим количеством народу вообще без опыта разработки ПО разве удивительно, что ошибки плодились в огромном количестве? Какой-то особо одарённый менеджер выяснил, что затраты на персонал — главные затраты в проекте чистой разработки ПО. Совсем не испуганный этим необычайным открытием, он решил уволить всех людей хоть с каким-то опытом, но сохранить всех менеджеров. Было не редкостью видеть книжки «C++ для чайников» на столах многих сотрудников.
Познакомьтесь с командой
55 человек в команде: 20 разработчиков, 35 менеджеров. Вы не ошиблись: менеджеров больше, чем реальных разработчиков.
Менеджеры продолжают организовывать встречи, где они снова и снова показывают одну и ту же презентацию PowerPoint AD до отвращения, в то время как разработчики убивают время, болтая в огромном офисе открытого типа.
Немногие менеджеры имеют опыт работы в индустрии ПО. В то время как раз SCO судилась с IBM по поводу Linux. Даже если всё было блефом, но реально действовало на всех этих людей, которые понимали, что скоро придётся платить за свободные программы. Никто из них никогда не упоминает “Software Libre”, но все они знают о “Software Gratuit”. Излишне говорить, что проект напичкан библиотеками GNU, а эти ребята понятия не имеют, что так проект становится совместимым с GNU с соответствующими обязательствами. Хотя ладно, учитывая ужасное качество этого кода, никто никогда не будет настаивать, чтобы они выпустили источники.
Технические знания ниже плинтуса. Мало кто знает об интернете. Те, кто знает, думает, что он создан для порно. Упомянете, что вы что-то видели в интернете — и вам начнут подмигивать и улыбаться.
Всё это было бы забавно, если бы высшее руководство не вело себя как нацисты в концлагере. Просто приведу несколько примеров.
Наверное, вы задаётесь вопросом, зачем же люди продолжали приходить на работу в такое место. Первой и главной причиной стал глубокий экономический кризис, который переживала Франция в то время (и до сих пор, в определённой степени, переживает). Наличие работы и заработной платы считается привилегией, независимо от условий.
Другая причина заключалась в том, что для многих это была первая работа. Без какого-то сравнения невозможно оценить, насколько ваша работа отстой. Большинство новичков считали совершенно нормальным, что вынуждены приходить ровно в 9:00 или быть уволенными, когда абсолютно ничего не накладывало такого ограничения, кроме больного ума менеджера.
Что касается того, как правительство позволяет подобное: мы все знаем, как это работает. Ребята, отвечающие за бюджет в министерстве, дружат с топ-менеджерами в ряде компаний. В такой стране, как Франция, коррупция не редкость на этом уровне, она в основном не раскрывается и редко преследуется по закону. Видимо, это относится не только к Франции. Я слышал такие же истории из других мест Европы и из США.
В следующий раз при мысли, что твоя работа отстой — подумай еще раз.
Опубликовано 24 июня 2008 года
Автор: m1rko
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-3/276799
Ссылки в тексте:
[1] «интервью»: http://www-users.cs.york.ac.uk/~susan/joke/cpp.htm
[2] Источник: https://habrahabr.ru/post/352688/?utm_campaign=352688
Нажмите здесь для печати.