Притча о том, как отпустить любимый процесс и почему вы должны это сделать.

Франкенштейн был Доктором

Есть определенное чувство выполненного долга, которое может по-настоящему испытать только прогрессивный и непоколебимый профессиональный инженер-программист, и это теплое нечеткое чувство хорошо реализованного требования.

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

Но, как я уже упоминал в предыдущих заметках, как инженеры-программисты и носители пламени изобретательности, регулярных выражений и awk², мы часто оказываемся в сильной священной и любящей связи со своими творениями.

Эта связь иногда может быть здоровой, например, с любимым iPod³ или любимым джемпером зимой, но в других случаях может быть злобной и чем-то похожей на связь между доктором Франкенштейном и его монстром.

Такая связь, возможно, существует между благонамеренным, знающим, но в конечном счете заблуждающимся и, вероятно, безумным создателем и их программным обеспечением — подумайте в духе Teams, Microsoft Project или Lotus Notes — отвратительными чудовищами, преследующими индустрия, которая просто не умрет.

Колосс: Форбин был инженером-программистом

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

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

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

Я сам страдаю от такой любовной связи на более базовом уровне, и у меня часто слезятся глаза, когда я просматриваю панели мониторинга прошлых проектов.

Крайне грустно видеть снижение производительности, отключение серверов — их огни мигают, как звезды во вселенной, неизбежно нисходящие⁵ к тепловой смерти, а когда-то занятый NOC постепенно угасает в глубоком бордовом закатном сиянии.

Но, товарищи исходники, так мы растем.

Мы нюхаем слезы,
С надеждой смотрим на экран,
И нажимаем ⌘-R в последний раз.

Мы даем жизнь нашим творениям (и материал, если вы аппаратный тип со счетчиками, отвертками и любовью к легким ударам электрическим током), взращиваем их, как детские процессы, проводим их через беспокойный подростковый период с действительно исключительным поведением, и, надеюсь, затем запустите их в какой-то зрелый процесс, где они могут стать хотя бы частично функциональными (каламбур⁶).

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

Обычно из-за боязни судебных разбирательств.

[1]: Или, по крайней мере, так будет, когда Сингулярность наступит.
[2]: Доступны и другие отличные утилиты командной строки, но они значительно уступают Unix/Linux.
[3]: Я связал это, чтобы дети знали, о чем мы, пожилые люди, говорим.
[4]: ​​Особенно о беспилотных автомобилях.
[5]: Я знаю, это всего один сценарий, но это подходящая грустная метафора.
[6]: Как всегда.