Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения

Марри Кантор

Software Leadership: A Guide to Successful Software Development First Edition
Murray Cantor
книга Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения

Тираж данной книги закончился.
Оглавление
Введение

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

176 стр., с ил.; ISBN 5-8459-0294-0, 0-2017-0044-1; формат 70x100/16; мягкий переплетгазетная2002, 2 кв.; Вильямс.



Понравилась книга? Порекомендуйте её друзьям и коллегам:







Книги, рекомендуемые вместе с этой книгой:

Раздел каталога:



Оглавление книги "Управление программными проектами. Практическое руководство по разработке успешного программного обеспечения"

Введение 11
Глава 1. Качественное программное обеспечение 19
Глава 2. Архитектура программного обеспечения 41
Глава 3. Программный проект 63
Глава 4. Продуктивность разработки
программного обеспечения 79
Глава 5. Унифицированный процесс компании Rational 99
Глава 6. Управление и руководство 123
Приложение. Три неправильных подхода к разработке программного обеспечения 143
Список литературы 163
Предметный указатель 166


Предисловие

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

Являетесь ли вы таким недотепой-менеджером? Задумайтесь над этим. Посмотрите на себя со стороны. В один прекрасный день вы можете стать персонажем какого-нибудь нового мультфильма, если считаете, что:

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

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

Программное обеспечение некоторым образом отличается от других продуктов.

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

Эти и другие особенности программного обеспечения требуют от работы менеджеров гораздо большего внимания и усилий.

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

Я искренне рад тому, что автору книги, Мюррею Кентору (Murray Cantor), удалось сделать ее достаточно универсальной. Благодаря этому книга может стать настольной не только для менеджеров программных продуктов, но и для коллективов разработчиков, а также для всех тех, кто приходит в ужас от обилия технического материала, связанного с процессом разработки. В книге представлен материал, достаточный для понимания процесса в целом и для того, чтобы превратить недотеп в грамотных менеджеров, способствующих успешной реализации проектов. Реализацией какого проекта вы бы ни занимались, в этой книге вы получите ценное практическое руководство для своей работы и благодаря ей станете настоящим лидером своего коллектива.

Успешного вам чтения! И наилучшие пожелания в реализации последующих IT-проектов.


Филипп Кратчен (Philippe Krutchen),

директор отдела разработки

корпорации Rational Software

Введение

Эту книгу я написал, главным образом, из-за чувства разочарования и неудовлетворенности. Будучи главным консультантом отдела стратегического планирования компании Rational Software, я обнаружил, что вопросы разработки программного обеспечения во многих организациях вызывают гнетущие ощущения. Как менеджер по разработке программного обеспечения и как технический специалист я точно знаю, что так быть не должно. В большинстве случаев данная проблема связана с неправильным подходом руководства организаций к этому вопросу. А чувство неудовлетворения вызывает тот факт, что возникшую проблему можно очень легко разрешить.

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

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

  • Аппаратно-ориентированный. Поставщик медицинских инструментов, работающий по старой схеме, продаст вам ультразвуковое оборудование размером с письменный стол, весящее, как небольшое пианино. Это устройство состоит из специальных приборов, предназначенных не только для генерации и приема звуковых волн, но и для обработки сигнала и создания графического изображения. Такой прибор тяжело изготовить, а также обслуживать и модернизировать.
  • Программно-ориентированный. Небольшая конкурирующая компания поняла, что ультразвуковую систему обработки изображений можно создать без использования стандартной аппаратуры. Все, что необходимо в данном случае, - это несколько специализированных интегральных схем (программируемых микрочипов), операционная система от Microsoft, несколько датчиков и приемников излучения, жидкокристаллический дисплей и некоторые другие мелочи. Чтобы представить свое устройство на рынке, конкуренту необходимо разработать дизайн установки, соответствующим образом расположить кнопки и шкалы и создать большое количество патентованных программ. Для начала конкурент создает портативный образец такого устройства, весом всего лишь несколько килограммов, устанавливает цену, в два раза меньшую по сравнению с традиционным прибором, а затем пожинает плоды своих трудов. Если разработано качественное программное обеспечение, то новый прибор по сравнению со старой системой будет более простым в обслуживании и использовании. В результате портативный прибор был утвержден правительством и уже через первые девять месяцев 2000 года доход от его продажи возрос до 25 миллионов долларов, по сравнению с 745 тысячами за предыдущий год. Конкурирующее устройство не вытеснило с рынка традиционную модель, но их производителям пришлось обратить внимание на конкурентов и всерьез задуматься о необходимости разработки соответствующего программного обеспечения для своих приборов.

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

Для кого предназначена эта книга

Занимаясь написанием этой книги, я имел в виду три категории читателей, каждая из которых может воспринимать ее по-разному:

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

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

Структура книги

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

  • Во введении представлен базовый материал, описывающий состояние разработки программного обеспечения на сегодняшний день, и определены критерии достижения успешных результатов по разработке программных продуктов.
  • В главе 1 "Качественное программное обеспечение" рассмотрены продукты, которые должны разрабатываться и поставляться на рынок. Здесь рассматриваются отличительные черты качественного программного обеспечения и описаны некоторые шаги, необходимые для достижения этого качества. Вы узнаете, почему в настоящее время столь огромное внимание уделяется качеству продукта и почему именно качество является основным фактором выживания компании и повышения ее конкурентоспособности.
  • В главе 2 "Архитектура программного обеспечения" приведен обзор факторов, определяющих разработку программных продуктов. Здесь кратко рассмотрены различные способы разработки программного обеспечения, а также их назначение и роль в достижении качества программного продукта. После прочтения этой главы вы хотя и не станете разработчиком архитектуры программного обеспечения, но сможете задавать о ней интеллектуальные вопросы.
  • В главе 3 "Программный проект" представлена полная картина рассматриваемых вопросов. Мы предполагаем, что разработка программного обеспечения сродни разработке любой другой продукции, и пытаемся почерпнуть из этой аналогии как можно больше полезной информации. Данная глава поможет в осмыслении сущности методов поиска решения задач и их применения в разработке программных продуктов. Кроме того, поскольку методология разработки программного обеспечения является существенно нелинейной, это оказывает значительное влияние на осуществление руководства такими проектами. В данной главе рассмотрены ключевые вопросы руководства разработкой программных продуктов, являющиеся основой для понимания остального материала, изложенного в этой книге.
  • В главе 4 "Продуктивность разработки программного обеспечения" представлены концептуальная модель продуктивности программного обеспечения, а также три способа, которые помогут вашей организации успешно преодолеть трудности, возникающие при разработке продукта. Эти способы сформулированы на основе практических примеров по разработке современного программного обеспечения, описанных в главах 5 "Унифицированный процесс компании Rational" и 6 "Управление и руководство".
  • В главе 5 "Унифицированный процесс компании Rational" описаны современные способы управления проектами по разработке программного обеспечения. Кроме того, здесь рассмотрено руководство по организации проектов по разработке программных продуктов. Вы узнаете, как определить правильное количество процессов, и познакомитесь с перспективами повторного использования программного обеспечения.
  • В главе 6 "Управление и руководство" описан стиль руководства, наиболее подходящий для компаний, следующих принципам и методикам, описанным в предыдущих главах. Здесь описаны способы руководства, необходимые для работы линейных менеджеров и менеджеров проектов. В частности, вы узнаете о роли руководителя проекта по разработке программного продукта как одного из наиболее творческих членов коллектива разработчиков. Кроме того, здесь рассмотрены пути преодоления трудностей и способы достижения намеченных целей, несмотря на все возникающие неопределенности и затруднения.
  • Материал, рассмотренный в приложении "Три неправильных подхода к разработке программного обеспечения" основан на практических примерах данного рода деятельности. Здесь вы узнаете о причинах, из-за которых потерпели неудачу многие ранее распространенные способы разработки программного обеспечения, и узнаете, как нужно и как не нужно поступать в той или иной ситуации.

Лейтмотивом каждой главы является применение изложенной информации к выполнению руководящих задач.

Хотя читателям рекомендуется ознакомиться со всем материалом, представленным в книге, для некоторых из них особую ценность будут представлять не все главы, а только некоторые из них. Главы 1 "Качественное программное обеспечение" и 2 "Архитектура программного обеспечения" посвящены собственно программному обеспечению и будут особенно полезны читателям, имеющим техническое образование. Прочитав главы 3-5, вы сможете глубже понять сущность процесса разработки. Эти главы по достоинству смогут оценить читатели, знакомые с техническими аспектами, но являющиеся новичками в вопросах руководства подобными проектами. Однако представленный материал будет не менее полезен многим опытным руководителям, заинтересованным в повышении конкурентоспособности своих организаций. Ну а глава 6 "Управление и руководство" должна представлять интерес для всех читателей.

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

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

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

Эта книга удалась благодаря вкладу множества людей: как критиков и обозревателей, так и тех, кто просто поделился своими мыслями и принял участие в обсуждениях. Однако особую благодарность я хотел бы выразить Уолкеру Ройсу (Walker Royce), Филиппу Кратчену (Philippe Krutchen), Уильяму Лорки (William Lorchie), Роберту Браунсворду (Robert Brownsword), Майклу Дрекслеру (Michael Drexler), Девиду Любанко (David Lubanko) и двум анонимным критикам за их искренние и конструктивные комментарии.

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

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

Конкурентоспособная организация программного обеспечения

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

На мгновение представьте себе, насколько изменилась работа руководителя предприятия за последнее столетие. В 1905 году задачи директора заключались в найме самых лучших рабочих или мастеров, запуске предприятия и периодической проверке качества работы персонала. В 1920 году директор должен был организовать работу конвейера, функционирующего с максимальной производительностью. Для этого он нанимал неквалифицированных рабочих, выполняющих очень ограниченное количество задач, так как успех предприятия зависел от организации процесса, а не от квалификации персонала. Современный директор должен руководить коллективом профессионалов, в состав которого входят инженеры-технологи, специалисты по системному анализу, исследованию операций и многие другие. Руководитель должен понимать, как организовать, автоматизировать и приводить в соответствие потребностям процессы производства, цепочки поставок, конфигурационного и товарного управления. Он должен ежедневно оценивать происходящие изменения в объеме и качестве продукции, выяснять у руководителей соответствующих отделов причины ухудшения показателей и принимать меры по их улучшению. Ориентировочно каждый месяц директор завода совместно с ведущими руководящими сотрудниками должен оценивать производительность своего предприятия. Грамотный руководитель должен уметь спланировать процесс улучшения работы предприятия, донести его до сведения высшего исполнительного руководства и привести его в действие. Короче говоря, руководитель должен обладать глубоким пониманием всех производственных процессов, средств, используемых для их автоматизации, а также уметь эффективно руководить высококвалифицированным персоналом.

До недавнего времени вопросы разработки программного обеспечения находились на уровне развития производства в 1905 или 1920 году. Этот процесс практически не был автоматизирован. Руководители фирм нанимали лучших специалистов, поручали каждому из них определенный участок работы и надеялись на лучшее. Многие компании по разработке программного обеспечения до сих пор работают таким образом. Одним из самых важных аспектов своей работы они провозглашают "доверие к людям". Да, людям нужно доверять, но для успешной работы компании этого недостаточно. Другие руководители организовывают работу своей компании путем определения последовательности задач и ее поэтапного выполнения. Эти директора надеются, что процесс сам по себе обеспечит средства для разработки программного обеспечения. Они считают, что самым важным является понимание поставленных требований, а разработка программного обеспечения является вопросом соединения отдельных участков общей задачи. Такие директора удивляются, почему на практике их проекты очень часто оказываются непредсказуемыми. Я в дальнейшем объясню, почему понимания поставленных задач и процесса их реализации (хотя эти вопросы безусловно важны) недостаточно для успешного выполнения проекта.

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

Изобретение по требованию

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

  • наличия коллектива специалистов и средств для автоматизации их работы;
  • дисциплины управления;
  • эффективного руководства.

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

В связи с необходимостью выполнения творческих задач технологический процесс и экономическая модель разработки программного обеспечения существенно отличаются от процессов промышленного производства или строительных проектов. Фактически разработка программного обеспечения сродни некоторым другим отраслям, сочетающим творческий подход и деловую дисциплину, таким, как, например, разработка потребительских товаров или, возможно, кинематограф. Великолепный пример приведен в статье Карла Себбега (Karl Sabbagh) Twenty-First-Century Jet (Реактивный самолет XXI века), посвященной разработке лайнера Boeing 777. Можно найти много общего в процессе разработки (не путать с производством) самолета и проектах по разработке программного обеспечения.

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

  • Глобальная сеть Internet со своими протоколами, серверами и клиентскими приложениями.
  • Электронная коммерция.
  • Системы сотовой телефонной связи, отслеживающие то, как владелец телефона перемещается от зоны покрытия одной соты к другой.
  • Всемирная система оплаты с помощью кредитных карточек.
  • Система бронирования авиабилетов.
  • Все программы планирования производственных ресурсов, работающих "за кулисами" каждого из предприятий, в том числе управление складскими запасами и организационная работа с персоналом.
  • Программное обеспечение, встроенное в системы управления двигателями автомобилей.
  • CAD/CAM системы автоматизированного проектирования, благодаря которым осуществлялась безбумажная разработка лайнера Boeing 777.
  • Программное обеспечение, позволяющее осуществлять полеты аэродинамически нестабильных военных самолетов типа B2.
  • Системы космической навигации, позволяющие исследовательским ракетам точно выходить на орбиты удаленных планет.
  • Программное обеспечение для компьютерной анимации, широко использованное в кинофильмах типа "Парк юрского периода" и "Динозавры".

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

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

Успешный руководитель

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

Успешная организация, занимающаяся разработкой программного обеспечения, создает и выполняет задачи поставки качественных программ, отвечающих требованиям акционеров и укладывающихся в определенные временные и финансовые рамки.

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

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

Грамотное руководство - основа высокого морального состояния коллектива

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

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

Профессиональное удовлетворение

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


Copyright © 1992-2015 Издательская группа "Диалектика-Вильямс"

Rambler  Top100