Многие из проблем, которые
были отмечены выше, связаны с тем, что
изначально работа над проектом строилась
в виде цепочки последовательных шагов.
При таком режиме сложно организовать параллельную
работу. Ранее было показано, что в случае
обнаружения недоработки, проект возвращается
на предыдущие стадии, а затем также последовательно
вновь спускался вниз. Это основной принцип
и внедрить параллельность в работу над
проектом, означает нарушение этого принципа.
Можно было бы предположить, что разработку
нескольких подсистем можно вести параллельно.
Однако это не совсем так. Параллельность
в этом случае ограничивается необходимостью
постоянной синхронизации между различными
частями проекта. Чем теснее связаны между
собой части проекта, тем чаще и строже
должна выполняться синхронизация, тем
более зависимы друг от друга группы разработчиков,
тем ниже параллелизм их работы.
Отсутствие параллелизма
негативно сказывается и на организации
всего коллектива. Действительно, работа
одних групп сдерживается другими. Пока
делается анализ предметной области, проектировщики
почти не имеют работы, так же как и разработчики,
и те, кто занимается тестированием и администрированием.
Неритмичность нагрузки расхолаживает,
снижает творческий потенциал. Мало того,
творчество становится опасным при таком
подходе к организации работ. Предположим,
что проектировщик уже отдал свою часть
проекта на реализацию, но при этом он
не перестал думать над проблемами. И вполне
возможно, что для какой-то из проектных
задач, он нашёл более красивое (компактное,
производительное) решение. Но теперь он
не может использовать его, поскольку более
раннее решение уже возможно реализовано
и связано с другими, неведомыми ему, частями
проекта. Что делать с этим решением? Ждать
пока не будет сформулировано задание на
новую версию? Но вполне возможно, что
там это решение просто останется невостребованным.
В конечном итоге, последовательная
организация работ приводит увеличению
сроков и объёмов финансирования, сложности
организации взаимодействия и неритмичности
работы различных групп разработчиков.
|