Мифический человеко-месяц, или Как создаются программные системы - [5]

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

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

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

Глава 2 Этот мифический «человеко-месяц»

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

МЕНЮ РЕСТОРАНА «АНТУАН» В НЬЮ-ОРЛЕАНЕ

Программные проекты чаще проваливаются из-за нехватки календарного времени, чем по всем остальным причинам вместе взятым. Почему эта причина неудач столь распространена?

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

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

В-третьих, поскольку менеджеры программных проектов не уверены в своих оценках, им часто недостает вежливого упрямства, как у шеф-повара ресторана «Антуан».

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

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

Контроль выполнения графика будет предметом отдельного разговора. Рассмотрим более подробно остальные аспекты проблемы.

Оптимизм

Все программисты — оптимисты. Возможно, эта современная разновидность колдовства особенно привлекательна для тех, кто верит в хэппи-энды и добрых фей. Возможно, сотни неудач отталкивают всех, кроме тех, кто привык сосредоточиваться на конечной цели. А может быть, дело всего лишь в том, что компьютеры и программисты молоды, а молодости свойствен оптимизм. Как бы то ни было, в результате одно: «На этот раз она точно пойдет!» Или : «Я только что выявил последнюю ошибку!»

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

Глубокий оптимизм программистов заслуживает более серьезного изучения. Дороти Сэйерс (Dorothy Cayers) в своей превосходной книге «Разум творца» (“The Mind of the Maker”) выделяет в творческой деятельности три стадии: замысел, реализацию, взаимодействие. Соответственно, книга, компьютер или программа сначала возникают как идеальное построение, существующее не во времени и пространстве, а лишь в мозгу своего создателя. Реализация же во времени и пространстве происходит с помощью пера, чернил, бумаги, либо — проводов, кремния и феррита. Творение будет завершено, когда кто-либо прочтет книгу, воспользуется компьютером или запустит программу, тем самым вступив во взаимодействие с разумом их создателя.

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

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

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

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

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


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

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


Мой первый бизнес. Как оценить идею проекта и свои силы

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


Этот негодяй Балмер, или Человек, который управляет «Майкрософтом»

...История «компьютерного хулигана» Стива Балмера, которому «бог "Майкрософта"» Билл Гейтс передал в январе 2000 года бразды правления компанией. Уникальная биография амбициозного гения современных высоких технологий, в которой шаг за шагом прослеживается его путь наверх!


Совещание: холодная война или драка в коммуналке

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


Телефонных продаж не бывает, но они работают

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


Бухучет, налогообложение, управленческий учет: самоучитель

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