Наш подход к управлению проектами внедрения программных продуктов более всего
соответствует гибкой методологии разработки программных продуктов- Agile (FFD - Feature
driven development).
Этой методологии характерно предположение о критичности качества, при этом требования к сроку и ресурсам достаточно гибки (под качеством здесь понимается полнота удовлетворения потребностей, как известных, так и неизвестных заранее, часто изменяющихся в реализации проекта).
В данном подходе предполагается, что исполнители являются консультантами в предметной области, а также разбираются в архитектуре внедряемого продукта.
Гибкая методология разработки — серия подходов к разработке, ориентированных на использование интерактивной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов разного профиля.
Гибкие методологии нацелены на минимизацию рисков путём сведения разработки к серии итераций. Каждая итерация выглядит как программный проект в миниатюре и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, программирование, тестирование и документирование. Хотя отдельная итерация, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации команда выполняет переоценку приоритетов разработки. Те же принципы мы пытаемся применить при внедрении программного обеспечения.
Основные идеи гибких методологий:
- люди и взаимодействие важнее процессов и инструментов;
- работающий продукт важнее исчерпывающей документации;
- сотрудничество с заказчиком важнее согласования условий контракта;
- готовность к изменениям важнее следования первоначальному плану.
Основные принципы:
- удовлетворение клиента за счёт ранней и бесперебойной поставки ценного программного
обеспечения;
- приветствие изменений требований даже в конце разработки (это может повысить
конкурентоспособность полученного продукта);
- частая поставка рабочего программного обеспечения (каждый месяц или неделю или ещё
чаще);
- тесное, ежедневное общение заказчика с разработчиками на протяжении проекта;
- проектом занимаются мотивированные личности, которые обеспечены нужными условиями
работы, поддержкой и доверием;
- рекомендуемый метод передачи информации — личный разговор (лицом к лицу);
- работающее программное обеспечение — измеритель прогресса;
- спонсоры, разработчики и пользователи должны иметь возможность поддерживать
постоянный темп на неопределённый срок;
- постоянное внимание улучшению технического мастерства и удобному дизайну;
- простота — искусство не делать лишней работы;
- лучшие технические требования, дизайн и архитектура получаются у самоорганизованной
команды;
- постоянная адаптация к изменяющимся обстоятельствам.
Основные этапы внедрения:
- разработка общей концепции, определение целей;
- составление списка внедряемых подсистем;
- планирование по каждой подсистеме;
- проектирование;
- внедрение подсистемы.
Первые два процесса относятся к началу проекта. Следующие три для каждой внедряемой подсистемы. Работа над проектом разделяется на итерации, каждая из которых предполагает реализацию определенного набора функций, фиксацию результатов работы и уточнение плана на следующую итерацию. Длительность итерации обычно составляет один месяц. Подробнее – на схеме