Возможно, вы уже слышали о Джоэле Спольски. Он является основателем Fog Creek Software и ведет блог Джоэла о программном обеспечении. Однако в наши дни он более известен как основатель Stack Overflow, и его часто можно встретить путешествующим по всему миру, выступающим на конференциях о разработчиках. Может быть, вы видели его, и если вам случится быть на конференции, на которой он выступает, представьтесь.

В последние годы выступления Джоэла были сосредоточены на философских аспектах программирования и программного обеспечения. На WeAreDevelopers Conference в мае 2017 года он поделился этой мыслью:

"Каждая строка кода – это решение, принятое разработчиком.
Мы строим будущее на основе этих решений".

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

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

С помощью программного обеспечения мы создали слой абстракции между пользователем и машиной. Эта идея абстракции применима и к самому программному обеспечению, которое мы создаем. За последние пятьдесят лет мы перешли от машинного кода к COBOL, C и языкам более высокого уровня, таким как Python, и все это с целью сделать программы более простыми в написании и более переносимыми.

Затем Интернет ускорил потребность этих программ в общении друг с другом. Это привело к появлению протоколов и API, позволяющих разработчикам мгновенно подключать всевозможные функции к своим приложениям с помощью нескольких строк кода. Мы абстрагировались от миллионов линий сложности.

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

Мы живем в новую эру, когда сложность и взаимозависимость не позволяют одному человеку уследить за всем этим. Существует множество общедоступных ресурсов, таких как Stack Overflow и GitHub, наш второй мозг. По мере того как общедоступный код будет включаться в закрытый код, используемый внутри предприятий, не менее важно, чтобы аналогичные ресурсы стали институциональной корпоративной памятью о решениях и причинах, стоящих за этими решениями. Это включает в себя как код, так и контекст этого кода.

Когда вы рассматриваете уровни абстракции кода в своей работе, как вы отслеживаете сложность? Что вы используете для отслеживания кода и его контекста?

Как кратко объяснить биткойн?



Поскольку Биткойн, похоже, уходит в бак, было бы неплохо узнать немного больше…

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