Письмо 05 - Параллельность работ

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

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

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

Сайт Alexus Software Development