Октябрь, 2011


28
Окт 11

О зрелости в Agile и заказной разработке ПО

В большинстве профессиональных организаций перспектива повышения остается главной движущей силой среди исполнителей низшего звена.
Д. Майстер, «Управление фирмой, оказывающей профессиональные услуги» (гл. 16)

Следуя принципу Фрекен Бок «Ну чем я хуже?!», решил не отставать от модных веяний и написать  заметку про SCRUM, а именно про давно волнующий меня вопрос применимости SCRUM в заказной разработке.

Одним из приглашенных докладчиков начинающейся на следующей неделе конференции CEE-SECR будет никто иной, как Джеф Сазерленд (Jeff Sutherland). В своём интервью PCWeek, опубликованном на сайте конференции, Джеф отметил, что все больше компаний требуют процесса SCRUM от своих аутсорсеров, и повторил своё же утверждение из ставшей классикой Scrum and XP from Trenches о том, что его венчурная компания инвестирует только в компании, практикующие SCRUM.

What would you like to say to PC Week magazine readers and Russian software developers?
Well, I’d to say that we know that certain practices change the world, change the market, change companies. If Russians are interested in being a major force in software development then SCRUM is a fundamental tool that they need to learn how to do, and how to do well. What we find is that more and more people are demanding SCRUM companies for any outsourcing. Or, from the point of view of my venture company, we invest in companies all over the world, and we only invest in SCRUM companies. So I would say to Russian developers, if you want to do better in the market, if you want to bring more software development in house, if you want to start companies that build software, then SCRUM is the best tool available today to do that.

Также Сазерленд указал, что SCRUM – лучший доступный на настоящий момент инструмент, который может помочь компаниям в более эффективной организации внутренних служб разработки, компаниям, строящим ПО… Но он ни слова не сказал о заказной разработке ПО!

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

Асхат Уразбаев говорит (см. http://www.slideshare.net/Askhat/scrum-5545482) о длительных проектах по заказной разработке ПО, фокусируясь на достижении в рамках таких проектов реальной бизнес-ценности для заказчика в условиях меняющихся требований. Борис Вольфсон в своей статье (см. http://habrahabr.ru/company/softline/blog/124030/) пишет о Time-n-material как идеальной win-win форме контрактов, построенных на доверии с заказчиком, «подсаженным» на «итеративную иглу». Алексей Кривицкий в своем недавнем докладе (см. http://www.krivitsky.com/2011/10/offshore-outsourcing-and-agile.html) говорит о правильном подходе к оффшорной разработке ПО в стиле Agile  – как к построению долгосрочных матримониальных отношений с командой, об отношении заказчика к команде разработки как к собственным друзьям или детям…

Возникает ощущение, что в российской Agile-среде произошло некоторое отождествление понятий аутсорсинга разработки ПО и заказной разработки ПО (пусть даже и по T&M контракту).

С моей точки зрения, в этой терминологической путанице коренятся многие иллюзии эффективности Agile-методологий в соответствующих проектах. В этой заметке мне хочется внести некоторую ясность в сложившуюся ситуацию и разобраться всё-таки в применении Agile, и в частности SCRUM, в проектах заказной разработки ПО fixed-scope – наиболее распространенной форме для небольших проектов.

Continue reading →


7
Окт 11

О конференциях

Вот и завершился сентябрь и уже чуть-чуть октября а с ними и две осенние конференции WhaleRider и 404fest. Такие разные по масштабу, по тематике, по атмосфере, но обе безумно интересные!

На WhaleRider мне очень понравилось выступление Стаса Фомина про мясокомбинат из программистов, до сих пор хожу под впечатлением! Хочу написать развернутый пост в ответ Стасу! Слайды моего выступления на WhaleRider доступны на сайте конференции.

На 404fest, как и всегда, масса друзей и интересной информации. 404fest становится статусным событием: на фестиваль в этом году пришел мэр Самары. Очень понравился доклад Даниила Колесникова и Алексея Пономаря. Сам в этом году активно участвовал в работе секции Мобильных приложений. Слайды презентации с 404fest на сайте конференции недоступны, поэтому вот они:

Исходные файлы презентаций докладов доступны в разделе материалов:

http://pmarcor.com/my-safe/


4
Окт 11

Команда программистов-экстравертов, или «А может быть, всё наоборот?»

По-моему, конец света всё-таки где-то рядом… По результатам исследований кубинских ученых, большинство программистов имеют MBTI-тип ESTJ. По классической теории, этот тип (логико-сенсорный рациональный экстраверт) считается идеальным для менеджеров-администраторов, но никак не для программистов! А еще Brogramming… Куда катится этот мир…

Программирование всегда считалось уделом интровертов. С. Архипенков в своих работах со ссылкой на классиков называет два MBTI-типа, наиболее часто встречающихся среди программистов, оба из которых – интровертные:

 

Специфика программистской работы обуславливает общность психологических черт большинства профессиональных разработчиков ПО. Достоверных данных статистических исследований найти не удалось, однако, по мнению С.Макконнелла, которое очень хорошо подтверждается моим личным опытом общения с коллегами, большинство разработчиков ПО принадлежит к двум типам:
«Инспектор» — ISTJ = I (интроверт) + S (конкретное восприятие) + T (логик) + J (рациональный).
«Аналитик» — INTJ = I (интроверт) + N (опирающийся на интуицию) + T (логик) + J (рациональный).

Получается, что за последние несколько лет всё принципиально изменилось? Из-за глобального экономического кризиса программисты-интроверты вымерли, как динозавры? Или интровертность программистов просто была всеобщим заблуждением?

Если все программисты – экстраверты, то, подходя к проблеме изменения процесса разработки «в лоб»,  наверное, стоило делать всё наоборот.

  • Вместо состояния потока –> непрерывное общение.
  • Вместо чатов и переписки -> митинги, митинги, митинги.
  • Вместо глубокого анализа проблемы –> brainstorming.
  • Вместо отдельных кабинетов –> open-space.
  • Вместо погружения в один проект -> постоянные переключения между несколькими…

Что-то даже мне жутковато… У меня большие сомнения, что такие экстремальные меры были бы по душе даже самым отъявленным программистам-экстравертам!

С другой стороны, вероятно, строить процесс так же, как и с «socially-challenging»-интровертами, – тоже неверно. Имеет смысл хотя бы задуматься об особенностях программистов-экстравертов, которые стоит учитывать при формировании команды, распределении задач и построении процесса разработки. Этой теме и посвящена моя заметка.

Continue reading →