Новосибирский Государственный Университет
Опубликован: 20.08.2004 | Доступ: свободный | Студентов: 4838 / 472 | Оценка: 4.01 / 3.23 | Длительность: 18:07:00
ISBN: 978-5-9556-0013-0
Лекция 4:

Принципы построения системы деятельностей программного проекта

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Аннотация: Обсуждаются понятия теории деятельности, полезные для изучения менеджмента разработки программных изделий. На этой базе определяется место менеджмента в системе деятельностей программного проекта и задача соблюдения баланса между временем выполнения, объемом работ и расходом ресурсов при соблюдении требований к качеству.
Ключевые слова: процесс, условное или, приложение, деятельность, предметной области, производственная функция, результат деятельности, разбиение производственной функции, система деятельностей проекта, цель деятельности, материалы и ресурсы деятельности, проектная деятельность, субъект деятельности, средства и инструменты, методология экстремального программирования, методы деятельности, автоматическая деятельность, автоматизированная деятельность, инициатор работ, качество программного продукта, стандарт PMBOK, ISO 9000, IDEF, группа процессов, процесс инициации, процесс планирования, процесс исполнения, процесс контроля, процесс завершения, треугольник менеджмента проектов, методический шаблон работы менеджера, операционный маршрут, привязка маршрута к роли, траектория, обстановка деятельности, окружение деятельности

Обычно в публикациях по вопросам управления программными проектами описывается набор методик, применяемых в тех или иных случаях. Эти методики связываются с одной из общепринятых или с авторской концепцией возможных вариантов процесса разработки программного изделия, именуемой методологией. Претендующие на объективность книги содержат также оценки, когда применение излагаемых методик оправданно, а когда оно неприемлемо (см., например, [ 27 ] ). Иногда изложение иллюстрируют условными или даже реальными разработками, чтобы продемонстрировать использование методик в комплексе (см. [ 11 ] и [ 27 ] ). А нередко авторы просто рекламируют свою линию организации управления, не заботясь о границах ее применимости (из этических соображений мы не станем приводить соответствующие примеры, хотя это и легко сделать). Но во всех случаях у читателя чаще всего остается неудовлетворенность: он не в состоянии определить, выполнены ли условия применения какой-либо методологии или методики, или понять, что делать, когда такие условия не выполнены. Между тем последнее весьма типично, особенно для проектов, замысел которых не сформулирован в виде четко поставленной задачи. Положение усугубляется тем, что любая программная разработка уникальна по своей сути, по условиям выполнения проекта, а потому применение методологии и методик требует их адаптации.

Преодолению трудностей понимания и внедрения методик может помочь общая понятийная база рассмотрения производства программного обеспечения, которая не будет привязана к конкретным методологиям, а позволит выделить процессы в разработке программ, в той или иной вариации выполняемые при любом подходе, в любой методологии. Последующее изложение посвящено построению такой базы. Основой для построения служит теория деятельности и ее приложение к проектировочной деятельности, разработанные Г.П. Щедровицким [ 29 ] . Положения теории деятельности адаптированы к предметной области управления программными проектами.

Производственные функции и исполнители

Процесс развития программного проекта можно рассматривать как одну большую производственную функцию, выполнение которой приводит проект от замысла к программному продукту и далее, от поставки изделия потребителям до завершения его эксплуатации. Для такой производственной функции естественно говорить об обобщенном исполнителе, объединяющем всех реальных действующих лиц, выполняющих проект, а также об обобщенном пользователе, который применяет получаемые в ходе развития проекта результаты в своей деятельности. Для продуктивного рассмотрения указанную производственную функцию нужно уметь разбивать на части. Есть два вида таких разбиений.

  • Можно структурировать выполнение функции, разбивая ее на составляющие, определяя назначение каждой из составляющих и связи между ними так, чтобы результат совместного выполнения совпадал с требуемым результатом разбиваемой функции.
  • Можно структурировать обобщенного исполнителя, иными словами, конкретизировать исполнителей, отвечающих за разные аспекты выполнения функции.

Оба вида разбиения производственных функций допускают продолжение в глубину: для исполнителей — до уровня групп исполнителей и конкретных индивидуумов, для функций — до таких фрагментов, которые рассматриваются как неделимые единицы действий. Оба они существуют одновременно и взаимосвязанно.

Разбиение проекта на составляющие двух видов не является независимым и однозначным хотя бы потому, что к исполнителям различных функций предъявляются разные квалификационные требования. Есть и другие причины, из-за которых приходится говорить о вариативности структурирования проектов. Так, поскольку целью любой программной разработки является удовлетворение потребностей пользователей, а сами эти потребности со временем меняются (об этом речь впереди), то исполнителям приходится постоянно адаптировать проект к новым потребностям. Меняются и условия, в которых производится разработка, и эти изменения также нужно учитывать при управлении проектом.

Процесс выполнения проекта представляется как целенаправленная динамическая система деятельностей, реализующих производственные функции посредством их реализации исполнителями, которая развивается во времени. Целенаправленность здесь означает определенность задач, для решения которых выполняется каждая из функций на всех уровнях разбиения, а динамичность — изменчивость структуры (разбиения) в ходе развития в соответствии с потребностями решать те или иные задачи.

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Дарья Федотова
Дарья Федотова
Сергей Березовский
Сергей Березовский

В рамках проф. переподготовки по программе "Программирование"

Есть курсы, которые я уже прошел. Но войдя в курс я вижу, что они не зачтены (Язык Ассемблера и архитектура ЭВМ, Программирование на С++ для профессионалов). Это как?

Сергей Прошута
Сергей Прошута
Россия
Sergey Ostr
Sergey Ostr
Россия, Энгельс