Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Принципы построения системы деятельностей программного проекта
Обычно в публикациях по вопросам управления программными проектами описывается набор методик, применяемых в тех или иных случаях. Эти методики связываются с одной из общепринятых или с авторской концепцией возможных вариантов процесса разработки программного изделия, именуемой методологией. Претендующие на объективность книги содержат также оценки, когда применение излагаемых методик оправданно, а когда оно неприемлемо (см., например, [ 27 ] ). Иногда изложение иллюстрируют условными или даже реальными разработками, чтобы продемонстрировать использование методик в комплексе (см. [ 11 ] и [ 27 ] ). А нередко авторы просто рекламируют свою линию организации управления, не заботясь о границах ее применимости (из этических соображений мы не станем приводить соответствующие примеры, хотя это и легко сделать). Но во всех случаях у читателя чаще всего остается неудовлетворенность: он не в состоянии определить, выполнены ли условия применения какой-либо методологии или методики, или понять, что делать, когда такие условия не выполнены. Между тем последнее весьма типично, особенно для проектов, замысел которых не сформулирован в виде четко поставленной задачи. Положение усугубляется тем, что любая программная разработка уникальна по своей сути, по условиям выполнения проекта, а потому применение методологии и методик требует их адаптации.
Преодолению трудностей понимания и внедрения методик может помочь общая понятийная база рассмотрения производства программного обеспечения, которая не будет привязана к конкретным методологиям, а позволит выделить процессы в разработке программ, в той или иной вариации выполняемые при любом подходе, в любой методологии. Последующее изложение посвящено построению такой базы. Основой для построения служит теория деятельности и ее приложение к проектировочной деятельности, разработанные Г.П. Щедровицким [ 29 ] . Положения теории деятельности адаптированы к предметной области управления программными проектами.
Производственные функции и исполнители
Процесс развития программного проекта можно рассматривать как одну большую производственную функцию, выполнение которой приводит проект от замысла к программному продукту и далее, от поставки изделия потребителям до завершения его эксплуатации. Для такой производственной функции естественно говорить об обобщенном исполнителе, объединяющем всех реальных действующих лиц, выполняющих проект, а также об обобщенном пользователе, который применяет получаемые в ходе развития проекта результаты в своей деятельности. Для продуктивного рассмотрения указанную производственную функцию нужно уметь разбивать на части. Есть два вида таких разбиений.
- Можно структурировать выполнение функции, разбивая ее на составляющие, определяя назначение каждой из составляющих и связи между ними так, чтобы результат совместного выполнения совпадал с требуемым результатом разбиваемой функции.
- Можно структурировать обобщенного исполнителя, иными словами, конкретизировать исполнителей, отвечающих за разные аспекты выполнения функции.
Оба вида разбиения производственных функций допускают продолжение в глубину: для исполнителей — до уровня групп исполнителей и конкретных индивидуумов, для функций — до таких фрагментов, которые рассматриваются как неделимые единицы действий. Оба они существуют одновременно и взаимосвязанно.
Разбиение проекта на составляющие двух видов не является независимым и однозначным хотя бы потому, что к исполнителям различных функций предъявляются разные квалификационные требования. Есть и другие причины, из-за которых приходится говорить о вариативности структурирования проектов. Так, поскольку целью любой программной разработки является удовлетворение потребностей пользователей, а сами эти потребности со временем меняются (об этом речь впереди), то исполнителям приходится постоянно адаптировать проект к новым потребностям. Меняются и условия, в которых производится разработка, и эти изменения также нужно учитывать при управлении проектом.
Процесс выполнения проекта представляется как целенаправленная динамическая система деятельностей, реализующих производственные функции посредством их реализации исполнителями, которая развивается во времени. Целенаправленность здесь означает определенность задач, для решения которых выполняется каждая из функций на всех уровнях разбиения, а динамичность — изменчивость структуры (разбиения) в ходе развития в соответствии с потребностями решать те или иные задачи.