Формулирование цели и задач будущего проекта. Формулирование цели и задач проекта является одной из важнейших стадий проекта разработки программного обеспечения
Формулирование цели и задач проекта является одной из важнейших стадий проекта разработки программного обеспечения. Важность её заключается в том, что на этой стадии заказчик программного продукта знакомит исполнителя со своим замыслом, задаёт направление для развития будущего проекта и определяет предельно допустимые рамки, за которые проект не должен выйти. Если заказчик не расскажет исполнителю о своей идее в доступной для исполнителя форме, то исполнитель не сможет выполнить работу. Если заказчик неверно или неточно определит цель будущего проекта, то исполнитель не будет иметь ориентира для своей деятельности и вряд ли сможет осуществить замысел заказчика. Даже если ошибка будет обнаружена на более поздних стадиях, изменение направления развития проекта будет сопряжено со значительными затратами. Наконец, предельные ограничения проекта дают возможность заказчику и исполнителю не допустить неприемлемых потерь в случае, если проект не будет реализован.
При формулировании цели и задач проекта должен быть создан документ, дающий ответы на следующие вопросы:
· Как определяется предметная область для данного проекта?
· Какие термины используются в предметной области? Какие бизнес-процессы, затрагиваемые проектом, протекают в предметной области?
· Какая цель у проекта?
· Какой эффект должна оказать разрабатываемая система на бизнес-процессы предметной области?
· Какие задачи требуется решить, чтобы достичь поставленной цели?
· Какие ограничения на сроки выполнения, ресурсы, бюджет накладываются на реализацию проекта?
Цель проекта задаёт направление развития проекта. Она должна коротко и ясно указать эффект, который окажет создаваемая или модернизируемая система на бизнес-процессы заказчика. Если цель будет указана неточно, проект станет развиваться в неправильном направлении. Развернуть проект в другом направлении очень сложно, и чем больше будет сделано работ в рамках проекта, тем сложнее будет корректировать направление его развития. Очень скоро проект достигает состояния, когда ошибку в постановке цели исправить будет невозможно, и тогда придётся всё начинать заново, либо совсем отказываться от проекта. Для достижения цели может потребоваться работа не только одного исполнителя. Например, для создания системы может потребоваться разработка специального оборудования или доработка некоторого стороннего программного обеспечения. Поэтому постановка задач, которые нужно выполнить конкретному исполнителю в рамках проекта, важно также, как и формулирование цели.
Уже на стадии формулирования цели и задач важно задать рамки проекта, выход за которые означает, что проект должен быть остановлен. Ограничения вместе с сформулированной целью снижают неопределённость и повышают контролируемость проекта. При негативном сценарии проект выйдет за очерченные рамки и будет остановлен до того, как на него будет потрачено слишком много средств и времени. Определение ограничений позволяет заказчику и исполнителю защитить свой бизнес от последствий возможного провала проекта.
Вторая положительная сторона ограничений состоит в том, что они позволяют явно задать границу того, что в рамках проекта делаться точно не будет. Такие ограничения позволяют значительно сэкономить время разработчиков и избавить будущую программу от лишних, сложных и никому не нужных функций, которые иначе пришлось бы ещё и долгое время сопровождать.
Ограничения можно разделить на три типа: ограничения сроков, ограничения бюджета и ограничение используемых ресурсов.
Ограничения сроков на стадии формулирования целей должны определять две даты: плановую дату и крайний срок ввода разработанной системы в промышленную эксплуатацию.
Плановая дата даёт ориентир для разработчиков. При этом нужно помнить о неопределённости проекта, которая может как сократить время работы над проектом, так и значительно увеличить его, причём второе гораздо более вероятно, чем первое. Плановая дата должна уточняться по мере развития проекта.
Крайний срок ввода системы в эксплуатацию – это красная черта, которую проект ни при каких условиях не должен перейти. Этот срок используется заказчиком и исполнителем для планирования работ на случай, если проект потерпит фиаско. Если плановый срок превышает это предельное значение, то проект должен быть остановлен.
Ограничения бюджета также содержат два значения: плановый бюджет проекта, который подлежит постоянному контролю и уточнению, и предельное значение бюджета, превысить которое проект не должен.
Ограничения на используемые ресурсы зависят от разрабатываемой системы. В частности, следует ограничивать выбор аппаратной и программной платформы, на которых должна работать программа, показатели режима работы, выбор технологий разработки документации и кода программы.