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

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

Все люди разные

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

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

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

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

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

И другие

Вот еще несколько свойств человеческой натуры, на которые я полагаюсь. Они приводятся здесь кратко, в виде списка:

Обучение . Человек обучается с помощью наблюдения и практики. Это когнитивный и социальный принцип, хорошо известный в определенных кругах [La], однако до сих пор не использующийся должным образом при разработке программного обеспечения. Я пытаюсь найти возможность применить этот принцип на практике, но пока не придумал для этого подходящей методологической структуры.

Поток . В контексте программных разработок "поток" означает время, отведенное для спокойного эффективного размышления над задачей [Dm], [Cs], [Co98]. Это время должно быть уравновешено временем, отведенным для коммуникаций. Как установить подобный баланс при напряженном процессе работы над проектом - выше моего понимания. Тем не менее, многие особо подчеркивают, что время, отведенное на спокойное размышление, играет заметную роль в конечном успехе проекта.

Работа по примерам . Некоторые когнитивные психологи убедительно доказывают, что наш механизм дедукции основан на создании отдельных примеров проблем [J-L]. CRC-карточки и варианты использования (use cases) - два способа разработки программного обеспечения, построенные на примерах. Кстати сказать, те, кто их используют, неоднократно свидетельствуют об их эффективности. Новички часто предпочитают "диаграммы экземпляров" (instance diagrams) правильному объектно-ориентированному проектированию. Впрочем, ими пользуются даже опытные проектировщики. Идея создания документации, основанной на примерах, пока не нашла должного отклика у методологов, и представляет собой тему для дальнейшей работы в этой области.

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

Личные свойства характера . Вы и сами, наверное, не раз видели крайне нелюдимых главных проектировщиков, которые бросают на произвол судьбы свою команду. И, не смотря ни на что, эти прекрасные программисты продолжают занимать должности, которые требуют от человека большой общительности! Нередко мы можем встретить и руководителей проектов, которые не умеют принимать решения. Однако для конечного успеха проекта очень важно, насколько личные качества человека подходят для занимаемой им должности. Эти качества нужно учитывать и с точки зрения профессионального роста человека, однако нередко такие должности являются единственным способом продвижения по служебной лестнице.

Поражение из-за консерватизма . Люди предпочитают терпеть поражение, но действовать по-старинке, чем идти на риск ради успеха [Pi]. Это объясняет, почему люди уже столько лет используют в работе метод водопада, несмотря на то, что он уже несколько десятков лет не приносит ничего, кроме проблем, и имеет множество альтернатив в лице спирального, инкрементного и итеративного вида разработок.


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

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


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

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


Рекомендуем почитать
Mind hacking. Как перенастроить мозг за 21 день

Можно ли подчинить себе разум и управлять им, словно компьютером? Известный писатель и предприниматель Джон Харгрейв уверен, что да! Он разработал трехнедельную программу, которая позволит стать настоящим хакером своего собственного мозга. Как и программное обеспечение, разум можно взломать – и перенастроить его на нужный лад, чтобы стать успешнее, здоровее, спокойнее и счастливее. А оригинальные рекомендации автора и его неподражаемый юмор сделают процесс «взлома» невероятно увлекательным!


Как управлять интеллектуалами. Я, нерды и гики

Проект-менеджерам (и тем, кто мечтает стать начальником) посвящается.Писать тонны кода сложно, а управлять людьми еще сложнее! Так что вам просто необходима эта книга, чтобы научиться делать и то, и другое. Можно ли объединить прикольные истории и серьезные уроки? Майклу Лоппу (также известному в узких кругах как Рэндс) это удалось. Вас ждут выдуманные истории о выдуманных людях, обладающих невероятно полезным (хотя и выдуманным) опытом. Именно так Рэндс делится своим разнообразным, порой странным опытом, полученным за годы работы в крупных IT-корпорациях: Apple, Pinterest, Palantir, Netscape, Symantec и др.


Обновить страницу. О трансформации Microsoft и технологиях будущего от первого лица

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


Не бесите меня!

Вы работаете в команде или возглавляете ее? Тогда вы наверняка не раз задавались вопросом, как наладить эффективное общение членов команды, которое повысит ее способность решать рабочие задачи. И правильно делали. Ученые доказали, что квалификация сотрудников — еще не все, решающее значение для успеха коллектива имеют личные отношения внутри него. Эта книга посвящена технике построения этих отношений. Минимум историй, только работающие алгоритмы и технологии, которые гарантированно помогут вам «прокачать» мощный ресурс эффективности ваших коллег — и вашей собственной.


PIXAR. Перезагрузка. Гениальная книга по антикризисному управлению

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


Менеджер Мафии. Руководство для корпоративного Макиавелли

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