Персональные инструменты
 

Version Control and the... Long Gradated Scale

Материал из CustisWiki

Перейти к: навигация, поиск

Перевод статьи Version Control and the... Long Gradated Scale («Контроль версий и далекие перспективы») выполнен сообществом компании «Заказные ИнформСистемы».

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

Многие со мной согласились, но огромное число людей обиделись на мои смелые обобщения. Я вижу бесконечные комментарии на мой пост (хотя среди них есть и поддерживающие меня — см. пост Джеффа Этвуда), где люди или пытаются решить — входят ли они в «80%» или в «20%», или несут пафосный бред, что все программисты попадают о обе категории одновременно.

Начну с извинений. Оно конечно приятно, читать эту статью и думать, что смысл в том, что «80% программеров — это тупые ведущиеся лохи, а другие 20% — клевые, толковые парни, прямо как я». Очевидно, я в это не верю. :-).

Несмотря на то, что в начале статьи я специально предупреждал, что для наглядности я буду использовать «упрощенные стереотипы», это не сработало и я многих обидел.

Конечно, мир не черно-бел и все программисты уникальны. Нет каких-либо отдельных интересов, которые бы явно свидетельствовали о вашей «20%»-ности. С другой стороны нельзя зайти в какую-нибудь контору и указать на команду программеров — «эти парни явно тупое 80%-е стадо». Нельзя так четко делить, нельзя.

И еще, хотя мы конечно все «уникальные бриллианты», у нас сложились очень невнятные представления о альфа-программерах (красноглазых компьютерных чудаках, IT-фанатах, бородатых «гиках», и прочих очкастых «кулхацкерах»).

За долгое время у меня сложился определенный подход для выявления «гикнустости». На работе я читаю кучу резюме и интервьюирую множество кандидатов на должность программиста-архитектора и вот основной вопрос, который я задаю себе после интервью: «если бы этот человек был бы независим, богат и не вообще нуждался бы в работе, писал бы он софт для удовольствия?»

Иными словами, имеет ли кандидат прирожденную страсть к программированию как к искусству? Именно это ведет к

  • участию в open-source,
  • написанию LISP-компиляторов,
  • [вставить здесь что-нибудь чумовое].

На этом я и основывал свои сверхсхематичные «80/20» метафоры в той статье, и, надеюсь, последнее определение будет менее скандально.

По моему опыту, большинство людей, пишущих ПО за деньги, не имеют глубокой увлеченности в программировании, и не занимаются этим ради удовольствия. Они пользуются инструментами, написанные другими людьми, причем эти инструменты должны быть очень дружественными к пользователю, чтобы ими воспользовались. Как тут указывали, эти инструменты должны работать прямо «из коробки», «с колес», без малейшей «обработки напильником».

Основная мысль, которую я пытался донести, заключалась в том, что распределенные системы контроля версий (DVCS) пока не достигли такого уровня дружественности, да и Subversion только-только начинает достигать этого уровня (спасибо клиентам типа TortoiseSVN).

Я подписан на Google Alert в моей области в софтверном мире, т.е. каждый раз, когда Google находит новую веб-страницу, ссылающуюся на Subversion или на контроль версий, я об этом узнаю. Вы будете просто поражены числу новых постов в блогах, которые я вижу каждый день, по-существу говорящих «Эй, может наша команда должна начать использовать контроль версий! Subversion кажется достаточно удобной, вы с ней уже работали?»

И я вижу ничтожное проникновение DVCS в этот мир, а ведь это большой вызов для DVCS на пути к взрослению.

Некоторые обратили внимание на то, что, в то время, когда я взываю к евангелистам DVCS не отбрасывать бездумно такие централизованые системы, как Subversion, сам я занят бездумным игнорированием DVCS (в той статье я жаловался, что большинство DVCS систем не работают под Windows, не имеют простого контроля доступа и не имеют приятных GUI клиентов). Нет, я действительно сталкивался с Mercurial в разных проектах, просто мои утверждения основывались на несколько устаревшей информации. Обратившись к википедии, я уверился в том, что был неправ. :-)



Внимание! Эта статья была создана путем автоматического реплицирования из внутренней базы знаний компании Заказные Информ Системы. Любые правки этой статьи могут быть перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».