Распределенная система строительной корпорации Saturn
Опыт проектирования по образцам и применения CMM
см. также описание ключевых требований методики CMM
В 2000 году, наша команда рискнула провести самостоятельную разработку крупной системы: была успешно разработана и внедрена распределенная система строительной корпорации Saturn (www.saturn-spb.ru).
Разработка интересна эффективной организацией работы группы, за очень короткий срок (склад заработал через месяц начала работ) удалось разработать и внедрить группу модулей от склада, платежей, интеграции с 1С до финансового анализа на счетах GAAP и распределенного документооборота.
Основные характеристики системы:
Не секрет, что самостоятельные проекты чаще всего ожидает неудача. Данный проект оказался исключением. Следует отметить, что компания Saturn оказалась в тяжелом положении из-за неудачной попытки внедрения одной из крупных серийных систем. Нельзя сказать, что атмосфера после неудачного внедрения способствует успеху нового внедренца, поэтому проект представляет собой интерес как проект реанимации информационной системы компании.
Следует отметить, что серийные, что заказные системы по мировой статистике внедряются с вероятностью 40%. В России процент внедрения еще ниже. Причина тому в том, что в Российской практике софтверных компаний царит атмосфера "впаривания" и "кидания" клиентов. Увы, это так. В лучшем случае поставщик ПО подпишет с Заказчиком ТЗ, изготовит согласно ТЗ систему и сдаст. Однако, скорее всего система очевидно не внедряемая. Заказчик не подозревает, что потребуется еще 8 версий системы (статистика Канера), прежде чем она станет рабочей. Фокус заключается в том, что в большинстве случаев Заказчик (и Исполнитель) не способен сформулировать ТЗ для рабочей системы сразу. Применение системы "водопада" в компании Saturn послужило причиной провала предыдущего внедрения. Анализируя эти ошибки, мы решили выбрать эволюционный путь создания системы, при этом требования согласовывались не столько на бумаге, сколько на прототипах системы. Использование RAD-средств позволило быстро создавать и модифицировать модели приложений, пока не находился удовлетворительный вариант. После чего уже фиксировалось в виде задания функциональность релиза системы. Подробнее о методике управления проектом при аналитике построенной на прототипирования можно прочитать у Девиса.
Следует отметить, что эволюционный метод построения системы также обречен, если не сопровождается тщательным планированием. Мы применили методы управления проектом рекомендованные стандартом CMM level 2 (формальное планирование, бюджетирование проекта, трекинг проекта, контрактное управление и др.). Учет проектной информации велся в Microsoft Project. Благодаря накопленной за первые итерации разработки статистики реальных трудозатрат, удалось последующие итерации сделать достаточно точно предсказуемыми по срокам, стоимости и качеству.
Как отмечено выше, большинство проблем разработки информационных систем носят организационный, а не технологический характер. Тем не менее, остановимся на технологических моментах. Разрабатывать большую систему "от нуля" безумие. Мы использовали набор проблемно-ориентированных компонент Accounting Components для построения ядра внутренней бухгалтерии, пользовательского конструктора форм документов и отчетов. Однако основной технологический прием состоял не в этом. При построении системы использовалась накопленная нами база знаний с образцами решений (учетных, технологических, организационных). Поэтому, когда требовалось решить некую проблемную задачу, мы часто использовали уже проверенное на практике и документированное решение. Данную базу знаний мы пополнили и новыми решениями в ходе данного проекта.
В заключение хочется отметить вклад блестящих специалистов в реализации данного проекта. Прежде всего, руководителя отдела информационных технологий Александра Топала. Саша организовал блестящую поддержку пользователей внутри компании. Также я очень рад, что мне удалось пригласить такого опытного разработчика конструкторов учетных решений как Антона Лаврова.
Владимир Иванов, руководитель проекта