Люди как нелинейные и наиболее важные компоненты в создании программного обеспечения - [2]

Шрифт
Интервал

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

Мы потратили несколько лет, чтобы разработать специальный генератор, трансформирующий диаграммы последовательности и взаимодействия в архитектуру программного продукта и систему правил [Ci]. Многие компании работали (и работают) над сходными задачами, например, выполняемыми конечными автоматами Хэрела (Harel's executable finite state machines) [Ha].

Итак, проработав над этим проектом несколько лет, мы сделали прототип, и решили показать его группе наших потенциальных пользователей. Как же мы были поражены, услышав следующее: "Нет, спасибо. Нам больше нравится рисовать на доске, да и не хочется тратить время на то, чтобы заносить все эти рисунки в компьютер. Хотя… мы бы, наверное, взяли из всего вашего набора средств графический редактор". Как оказалось, прочие разработчики подобных программ получали похожие отзывы. Обычно пользователи соглашались, в конце концов, использовать "только графический редактор". Другими словами, перед нами стояли:


Проблема 1. Людям, занятым в проекте, совершенно неинтересно изучать нашу систему.

Проблема 2. Они вполне могут обойтись и без нас, и при этом успешно создавать программное обеспечение. Такое положение дел уже начинало меня беспокоить, и я стал заниматься методологиями разработки ПО (проектировал объектно-ориентированную методологию по заказу IBM Consulting Group (1992-94)). На этот раз, чтобы не наступать на те же самые грабли, я заранее опросил более дюжины различных компаний, которые работали над ОО проектами в различных странах, и тщательно записал все, что они мне рассказали. Изучая эти заметки, я сделал несколько интересных выводов:


Те команды, которые успешно работают над своими проектами, используют инкрементные процессы разработки [Co95]


При проектировании любая техника, сложнее "CRC-карточек" [B87] считается слишком сложной и не используется [Co94].

У тех, кто занимается проектированием, всегда есть возможность отказаться от любого программного продукта или техники, которые им не нравятся. Достаточно сказать начальнику: "Это замедляет работу. Если я буду этим пользоваться, то не уложусь в срок", и он разрешит проектировщикам поступать по собственному усмотрению. В то время это наблюдение не казалось мне особенно важным, но, тем не менее, я его записал и назвал "проектным ограничением" методологии. После этого я разработал весьма привлекательную и, как мне казалось, настолько не формальную, насколько это возможно, методологию и опробовал ее на одном из проектов. Наш опыт описан в документации по проекту Winifred [Co98]. Основной идеей техники проектирования, которую я рекомендовал к использованию, и которой я обучал разработчиков, были CRC-карточки.

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


Рабочий процесс, который использовала моя команда, был настолько сложным и запутанным, что едва ли его вообще можно было описать. Впрочем, даже если бы мне удалось это сделать, никто бы не смог его повторить [Co98p]. Мою методологию этот процесс напоминал только весьма и весьма отдаленным образом.


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


Проблема 1. Людям, занятым в проекте, совершенно неинтересно изучать нашу систему.

Проблема 2. Они вполне могут обойтись и без нас, и при этом успешно создавать программное обеспечение. Такой процесс повторялся еще несколько раз, и я окончательно разуверился в своей способности "видеть то, что происходит на самом деле". Я мог сказать лишь, что в разработке проекта есть какой-то очень важный аспект, который мы никак не можем вычислить. Не так давно я попробовал решить эту проблему, работая в паре с этнографом. Мне нужна была помощь просто для того, чтобы дать название происходящему [Ho]. Вообще, консультанту хорошо работать вместе с этнографом, однако на этот раз мы едва ли смогли начать работу. Проблема была очень простая и непреодолимая: невозможно сказать, что ты видишь, до тех пор, пока у тебя нет для этого подходящего названия. Было очевидно, что нашему словарю не хватает адекватных понятий.

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


Еще от автора Алистэр Коуберн
Каждому проекту своя методология

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


Парное программирование: преимущества и недостатки

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


Рекомендуем почитать
Релевантность. Сила, которая меняет взгляды и поведение потребителей и позволяет всегда опережать конкурентов

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


Как достичь цели. Четыре дисциплины исполнения

Руководители редко разграничивают ежедневную срочную работу («вихрь неотложных дел») и стратегические цели, поскольку и то и другое жизненно необходимо для нормальной деятельности компании. Однако эти понятия кардинально различаются и, что гораздо важнее, соперничают за время, ресурсы, энергию и внимание. Если руководитель и его команда будут работать только в авральном режиме, прогресса достичь не удастся – все силы уйдут на то, чтобы удержаться на плаву. Авторы предлагают проверенный набор практик, которые были опробованы сотнями организаций и тысячами команд.


Краудфандинг. Справочное руководство по привлечению денежных средств

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


Аттестация персонала – путь к взаимопониманию

«Шпаргалки для менеджеров» – это ваши «карманные консультанты» в решении самых разных проблем деловой, да и повседневной жизни. Ничего лишнего – только самое главное!Аттестация персонала – важнейший этап в работе менеджера, который стремится к взаимопониманию и эффективному сотрудничеству с подчиненными. Здесь вы найдете практические советы о том, как проводить собеседование, выносить объективную оценку и способствовать профессиональному росту сотрудников.


Неудержимые. Интенсив для будущих предпринимателей

Автор книги – известный маркетолог и обладатель профессиональных наград Билл Шлей – использовал свой опыт и опыт других успешных предпринимателей, а также изучил методики элитных воинских подразделений США и Израиля, чтобы написать эту книгу. Кроме того, в работе над ней принял участие Грэм Уэстон – основатель Rackspace, крупнейшего облачного сервиса. Он написал предисловие, рассказал историю своей компании и поделился ценными знаниями. Книга раскрывает сущность предпринимательства и объясняет, как стать Неудержимым в мире современного бизнеса.


УМНО, или Управление маркетингом нетривиальным образом

Эта книга написана директором по маркетингу с 20-летним стажем работы в сфере управления брендами в первую очередь для бренд-менеджеров, будущих и настоящих директоров по маркетингу. Будет полезна генеральным директорам, желающим повысить эффективность оценки своей службы маркетинга. Она малопригодна в качестве пресс-папье или мухобойки. Зато благодаря небольшим размерам и весу легко найдет место на вашем рабочем столе, в сумке или бардачке автомашины (для чтения в пробках), ибо собранные в ней знания нужны и могут быть использованы исключительно в рамках ежедневной практической работы по созданию и развитию брендов.