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