Организация процесса разработки ПО
Поискал в internet'е и у меня сформировалось следующее представление о данном процессе:[INDENT]1. Первым делом составляется ТЗ, в котором описываются:[INDENT]- назначение программы;
- предъявляемые к программе требования;
- и др.
[/INDENT]2. Анализ. Исследуем проблему.
3. Проектирование. Разрабатываем архитектуру программы.
4. Кодируем и тестируем.
[/INDENT]После первого прохода получаем ядро системы. Далее повторяем шаги с 2-4 для наращивания функциональности:[INDENT]1. Анализ. Определяем, какую функцию надо добавить.
2. Проектируем.
3. Реализуем, тестируем, интегрируем в программу.
[/INDENT]В связи с этим возникают следующие вопросы:[INDENT]1. Как все это дело задокументировать, что бы подключившийся в середине проекта программист смог бы без лишних проблем вести разработку?
2. Есть ли другие подходы?
[/INDENT]
ИМХО если вы сумеете найти ответ на данный вопрос - то вам будет завидовать сам БГ :)
А если серьезно - то если вы работаете сами - выберите методику которая вам подходит и следуйте ей.
Если же вам нужно организовать работу коллектива - существующего ли, или создающегося - то тогда начните лучше всего с "Мифический человеко-месяц" - и потом - "Как пасти котов".
Ну и учиться на собственных ошибках :)
а можно это пояснить?
Если команда маленькая, то новый человек достаточно легко подключается к разработке: сперва простой функционал и модульные тесты, далее по нарастающей.
Сразу "по науке" у вас не получится. Процесс разработки должен быть максимально прост для осмысления командой, но нужно помнить о том, что по первой необходимости этот процесс нужно (и придется!) изменять. Как только чувствуешь что чегото нехватает: нужны тесты, нужна более гибкая система версий или что-то в этом роде - внедряешь компоненту. Таким образом сформируется процесс, и одновременно придет понимание функции каждой из компонент.