Скорость

“Три мушкетера”, дуэль д’Артаньяна и де Жюссака

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

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

Четкость мышления

Понимать что именно нужно сделать, а что - не делать вообще. Примером в этом для меня является Ryan Singer из 37signals (см. 1 и 2).

Видеть как устроен проект и постоянно держать его архитектуру четкой, понятной и максимально адекватной задачам. Не бояться рефакторинга и постоянно улучшать имена переменных, классов функций. “There are only two hard things in Computer Science: cache invalidation and naming things” © Phil Karlton

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

Эффективные инструменты

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

Viaweb написан на Lisp, Youtube и Friendfeed - на Python (1 и 2), Twitter - на Ruby (да, потом его заменили на Scala, но взлетел проект именно на этом тогда еще странном и редком языке из Японии), GitHub - на Ruby, в проекте Echo используют Erlang + OCaml.

У меня есть опыт написания интернет-банкинга на Python + Django в Java-ориентированном банке. Я делал все в несколько раз быстрее, чем обычно, а с этим было сложно поспорить.

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

comments powered by Disqus