Время — деньги. Создание команды разработчиков программного обеспечения 

Эд Салливан 

 

 

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

 

Книга состоит из 15 глав и предметного указателя. 

 

 

 

 

 

Эд САЛЛИВАН 

 

ВРЕМЯ — ДЕНЬГИ 

 

Создание команды разработчиков, программного обеспечения 

 

 

Посвящается Джейн, Мэту и Ханне — тем, кого я люблю и буду любить всегда; 

 

и всем сотрудникам, работавшим и работающим в NuMega: без вас эта книга никогда не появилась бы на свет. 

 

 

 

 

 

Предисловие 

 

 

Предупреждаю: эта книга особенная. Управлению проектами посвящено множество книг. Здесь же речь пойдёт о реальных приёмах создания и выпуска программ, причём особое внимание уделяется ситуации начинающей организации. Своевременный выпуск продукта — единственное, что имеет значение в этом бизнесе, поэтому книга сосредоточена на решении этой задачи. Её автор — не просто счастливчик, которому повезло выпустить удачную программу. Под его руководством был выпущен целый ряд замечательных программ, но важнее всего, что он воспитал плеяду менеджеров, повторивших его успех. Ими создано столько программ, сколько большинству организаций даже не снилось. В этой отрасли практически невозможно воспитать менеджера проекта, умеющего успешно работать. Однако Эд многократно справлялся с этой трудной задачей, и в этой книге вы найдёте те методики, которые он передавал своим ученикам. 

 

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

 

Можно думать, что руководители проекта просто не выдержали сроки выпуска, однако корни проблемы намного глубже. Во всех образовательных учреждениях мира курс информатики даёт очень мало или вовсе не даёт навыков управления проектами. Поэтому большинству разработчиков приходится заниматься самообразованием или перенимать опыт менеджеров, которые сами с трудом представляют себе этот предмет. Написать код программы — это лишь малая часть любого проекта, но в большинстве компаний этого до сих пор не поймут. К счастью, книга, которую вы держите в руках, даёт представление об остальной, большей части работы; такого материала вы больше нигде не найдёте. Здесь нет теории управления проектами — лишь описание приёмов, сработавших или не сработавших в весьма успешной молодой компании. 

 

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

 

Конечно, собрать команду и не допустить её раскола — задача не из лёгких. Практически ни один отчёт о состоянии дел в программной индустрии не обходится без упоминаний о постоянной нехватке кадров. Одним желанием, как бы велико оно ни было, хорошую команду не создать, если нет людей, способных стать её участниками. Один из экстраординарных подходов компании NuMega — включение в персонал компании «непрофессиональных» разработчиков. Как говорит Эд, один из важнейших секретов успеха NuMega — подбор и сохранение ценных кадров. Результатом стала возможность мгновенной мобилизации сил и своевременного выпуска продукта на рынок. У Эда есть и собственная исключительная черта: набрав толковых сотрудников, он уходит с дороги, чтобы не мешать им в полной мере проявить свои способности. Порой такие сотрудники могли неделю работать, не встречаясь и не советуясь с менеджером проекта. Характерным качеством Эда было то, что он позволял менеджерам учиться на своих ошибках и, что самое важное, поощрял их, когда они извлекали уроки. 

 

Если набрать толковых людей и правильно организовать их, решать остальные задачи управления проектом становится намного легче. Важно тщательно следить за балансом управления (и Эд подчёркивает это в своей книге): нельзя ни распускать коллектив, ни слишком «закручивать гайки», управления должно быть ровно столько, сколько нужно. Разделы, посвящённые планированию и исполнению проектов составлены из описания тех самых методов, которые он передавал менеджерам, обучая их основам методики успешной работы. Выпустить качественный продукт вовремя нелегко. Изложенные в этих разделах принципы — тяжкий опыт многих ошибок, заставлявших скрипеть зубами от досады, а порой доводивших до слёз! 

 

Будучи участником многих таких ситуаций и пережив всё, о чём здесь говорится, я не понаслышке знаю, что ценность опыта, изложенного в этой книге, намного больше отданных за неё денег. Я начинал программистом в составе команды, работавшей над BoundsChecker 3.0 под началом Эда, бывшего в ту пору менеджером проекта. В конце концов я дослужился в NuMega до менеджера проектов по разработке программных продуктов из серии TrueTime и TrueCoverage. Эд в это время был уже начальником отдела разработки NuMega. Без методик, представленных Эдом в этой книге, группы, отвечающие за создание TrueTime и TrueCoverage, никогда бы не сделали эти продукты такими успешными, какими они стали. 

 

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

 

Когда Эд попросил меня написать предисловие к этой книге, я был просто ошеломлён, ведь это такая честь для меня! Но он сказал, что эта книга полностью на моей совести, поскольку я подал ему идею и постоянно стимулировал её написание. Я тут же с радостью признал свою вину! Когда я работал в NuMega, мне часто задавали один и тот же вопрос: «Как этим ребятам в NuMega удаётся выпускать столько замечательных программ?» Теперь для ответа мне достаточно сослаться на книгу Эда. Я чувствую приятное волнение от того, что теперь у каждого есть шанс узнать, как один из лучших в своей отрасли менеджеров проектов снова и снова создавал программы, значение которых для разработчиков трудно переоценить. 

 

Джои Роббинс Холлис, Нью-Гэмтиир Январь 2001 года 

 

 

 

 

Благодарности 

 

 

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

 

• Джона Робинса, бывшего товарища по группе и одного из основателей Wintellect Inc., вдохновлявшего меня в течение более чем двух лет во время написания этой книги. Его неисчерпаемый энтузиазм и поддержка в конце концов сделали своё дело. Спасибо за дружбу и веру в меня! 

 

• Группу редакторов и рецензентов: Барбару Морланд и Дэниель Бёрд из Microsoft Press, а также Габриэль Hoунэст и Нэнси Дэппер из Online Training Solutions, Inc. Они проделали огромную работу по сведению содержимого этой книги в единое целое и внесли значительный вклад в каждый этап работы над ней. 

 

• Фрэнка Гроссмана и Джима Москана, совместно с которыми была основана компания NuMega Technologies, Inc. Они преподали мне уроки разработки замечательных программ и составили компанию я практическом освоении этого искусства. За это я всегда буду им благодарен. 

 

• Команду разработчиков BoundsChecker 3.0, 4.0 и 5.0. Большая часгь материала этой книги взята из их достижений. Ребята, вы — лучшая команда разработчиков из известных мне. И перестаньте, наконец, скандировать моё имя! 

 

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

 

• Моих родителей, Эда и Лору Салливан, научивших меня жизни и всему, что в ней важно. 

 

• Мою жену Джейн, сына Мэтью и дочь Xaнну, позволивших мне работать над книгой по ночам и в выходные. Благодаря вашему энтузиазму и поддержке, оказанной в моменты, когда я больше всего нуждался в ней, я мог продолжать работу. Вы — самое драгоценное, что у меня есть, и я каждый день благодарю за это Бога. 

 

Ну наконец-то все! 

 

 

 

 

Введение 

 

 

Я пришёл в NuMega Technologies летом 1994 года. Работая над BoundsChecker, продуктом для обнаружения ошибок в программах для Windows, я совмещал должности руководителя разработки и менеджера по маркетингу продукта. Тогда в NuMega было всего лишь 14 сотрудников: кроме двух основателей компании — три программиста, руководитель административной службы, четверо специалистов по сбыту, один администратор в офисе, один посыльный, три специалиста по технической поддержке и менеджер по маркетингу. Мы были небольшой компанией, по всем статьям подходящей под определение начинающей. Каждому приходилось совмещать несколько должностей и выполнять массу обязанностей. Однако, несмотря на небольшие размеры NuMega, у нас были большие планы и надежды. Мы твёрдо намеревались создавать замечательные программы и хотели собрать элитную группу специалистов, способную создавать лучшие в мире инструменты для разработки ПО. 

 

Спустя несколько лет, благодаря заботам основателей и усилиям первоклассной группы менеджеров, компания выросла: теперь в ней больше 150 сотрудников. Вместе с компанией рос и я, дойдя до поста начальника отдела разработки. В первые четыре года мы создали шесть основных выпусков наших приоритетных продуктов, BoundsChecker и SoftICE, приобрели два новых продукта и ещё четыре создали для внутреннего применения. Почти все эти продукты были выпущены в расчётный срок. Объём прибылей быстро рос, и компания стала очень рентабельной. Наши продукты хорошо принимали, и они смогли завоевать ряд отраслевых наград: 

 

 

2000 г. 

 

• Приз «Лучший компонент или утилита для обеспечения качества ПО», присуждаемый Vbxtra за DevPartner® for Visual Basic. 

 

• Приз «На гребне волны», присуждаемый Рrogammer’s Paradise, в номинации «Самый продаваемый инструмент для тестирования и отладки» за BoundsChecker VC++ Edition. 

 

• Приз «Выбор читателя» журнала VBPJ за CodeReview™ 6.1. 

 

• Приз «Выбор читателя» за FailSafe™ 5.21 журнала VBPJ. 

 

 

1999 г. 

 

• Журнал Software Developmem Magazine присудил DevPartner Studio приз Jolt Cola «За отличное качество продукта». 

 

• DevPartner Studio заслужил 5 звёздочек в рейтинге Software Development. 

 

• Java Developer's Journal присудил приз «JDJ World Class Award» программе DevPartner for Java™. 

 

• SmartCheck 6.01 получил приз «Выбор читателя» журнала VBPJ. 

 

• CodeReview 6.1 получил приз «Выбор читателя», присуждаемый журналом VBPJ. 

 

• DevPartner 6.1 for Visual Basic получает приз «Выбор читателя» журнала VBPJ. 

 

• Приз «Выбор читателя» присуждается журналом VBPJ программе TrueTime® 

 

 

1998 г. 

 

• DevPartner for Visual Basic получает от Vbxtras приз «Thunderbolt». 

 

• SmartCheck и TrueTime объявлены «Выбором редакции» журнала Visual Basic Programmer's Journal. 

 

• SmartCheck и TrueTime получают приз «Выбор читателя» журнала Visual Basic Programmer's Journal. 

 

• DevPartner for Visual Basic получает от SoftwareDevelopment приз Jolt Cola «За производительность». 


Страница 1 из 35: [1]  2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   Вперед