Малоизвестные факты о программировании
Будучи программистом я многое узнал о том, как создаётся программное обеспечение.
🕛 26.08.2010, 00:52
Вот несколько фактов, которые могут вас удивить.Программист тратит 10-20% собственного времени на написание собственно кода, и большая часть программистов пишут в общей сложности 10-12 строк кода в день, которые попадают в конечный продукт, независимо от их ур.. Неплохие программисты тратят крупную часть оставшихся 90% времени на размышления, исследования и эксперименты в поисках наилучшего решения. Плохие программисты тратят это время на отладку, случайные перемены в коде и следующую проверку его на работоспособность.
"Неплохой токарь работает в несколько раз лучше среднего, однако неплохой программист стоит в 10000 раз более, чем обыкновенный"Билл Гейтс.
Неплохой программист в 10 раз более продуктивен, чем средний. Превосходный программист в 20-100 раз более продуктивен, чем средний. И это не преувеличение - исследования, проводящиеся с 1960-х гг., чётко это показывают. Плохой программист не просто непродуктивен: он не только лишь не выполняет собственную работу, однако ещё и создаёт трудности, которые приходится решать иным.
Лучшие программисты тратят весьма слегка времени на написание кода. По крайней мере того, который попадает в конечный продукт. Программисты, тратящие немало времени на код или чересчур ленивы, или чересчур безграмотны, или чересчур высокомерны, чтоб искать существующие решения старых проблем. Отличные программисты - мастера определения и эксплуатации стандартных подходов. Неплохие не боятся постоянного рефакторинга в поисках безупречной архитектуры. Плохие же пишут код, которому недостаёт концептуальной целостности, иерархичности, лаконичности, шаблонов проектирования, и его невероятно трудно рефакторить. Легче выбросить плохой код на помойку и начать снова, чем нечто изменять в нём.
Утилиты подчиняются закону энтропии, как и всё остальное во Вселенной. Непрерывные перемены вызывают разрушение программ, которое нарушает целостность изначальной архитектуры. Это неминуемо, однако программисты, не принявшие во внимание вопросы целостности, пишут утилиты, которые разрушаются так с высокой скоростью, что становятся ненужными ещё до собственного завершения. Энтропическая ошибка целостности, возможно, наиболее распространённая ошибка, приводящая к провалу проектов. А II-ая по распространённости - создание утилиты, идущей вразрез с желаниями клиента. Разрушение программ замедляет рост разработки экспоненциально, по этой причине многие проекты приходят к лавинообразно нарастающим срывам бюджета и сроков, и это продолжается до тех пор, пока их до конца не уничтожат.
В исследовании 2004-го г. было обнаружено, что большая часть программных проектов (51%) сталкиваются с критическими проблемами (срыв сроков, превышение бюджета, невыполнение обязательств, нарушения функционала и т.п. - прим. пер.), а 15% целиком проваливаются. Это лучше, чем в 1994-м, когда последних было 31%.
Впрочем большая часть программ создаётся командами, это не есть демократическая деятельность. Как правило в общей сложности 1 человек является ответственным за архитектуру, другие - только кодеры.
Программирование - тяжёлый труд. Это весьма напряжённая умственная деятельность. Неплохие программисты считают о работе 24 часа 7 суток в неделю. Они пишут наилучший код в душе и в своих снах. Так как наиболее значительная работа делается вдалеке от клавиатуры, разработку программных проектов нельзя ускорить, заставляя людей более вести работу в офисе, или добавив новых людей в проект.