Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Принципы построения системы деятельностей программного проекта
Системы и элементы проектных деятельностей
Динамика — одна из основных характеристик процесса развития проекта, которая наряду с разбиением функций позволяет рассматривать проект как систему взаимосвязанных целенаправленных видов деятельности субъектов-исполнителей, выполняющих функции. С точки зрения теории деятельности каждая работа этой системы характеризуется следующими элементами.
-
Субъект — исполнитель деятельности, обладающий определенными качествами и возможностями, позволяющими заниматься ее выполнением. Субъекты, исполнители программных проектов, могут быть индивидуумами либо группами индивидуумов. Для деятельности, рассматриваемой в некотором ракурсе как неделимой, структура субъекта-исполнителя также не рассматривается. Если же деятельность структурируется, то возможны варианты. В жестких подходах к проектированию планирование часто распространяют до индивидуальных заданий, гибкие методологии не требуют рассмотрения структуры субъекта-исполнителя (пример — рабочая группа MSF).
Кратко: субъект — это тот, кто в состоянии выполнять данную деятельность.
-
Цель — назначение деятельности, явно выделяющее направление ее развития. Цель деятельности всегда соотносится с другими составляющими системы деятельностей: какое место данная деятельность занимает в системе, как и в каком качестве используются результаты деятельности в других проектных и внешних деятельностях.
Кратко: цель — это то, для чего данная деятельность выполняется.
-
Материалы и ресурсы — то, что используется и перерабатывается при выполнении деятельности . Термин " материалы " чаще используется, когда аспект расходования не представляет интереса для рассмотрения или отсутствует вовсе. Пример — спецификации программного изделия используются, но, естественно, не расходуются в разных видах деятельности по производству программ: как задание на разработку, как эталон для проверки готовой программы, как основа составления документации и т.д. Ресурсы можно определить как расходуемые материалы.
В ходе выполнения деятельности используются средства связи, электроэнергия, другие универсальные ресурсы. Кроме того, в деятельности используется оборудование, программы, без которых данное производство невозможно. Это специальные ресурсы, характеризующие определенные виды деятельности. Наконец, необходимыми для осмысленной деятельности являются материалы. Применительно к информационным видам деятельности это сведения о предметной области, о потребителях результатов и их нуждах. Все подобное относится к специфичным материалам и ресурсам, выделяющим данную деятельность как ориентированную на продуцирование конкретных результатов. Важным и определяющим для программистской деятельности видом специфичных материалов являются требования к программному изделию. Они в большей степени, чем что-либо иное, указывают на назначение конкретной деятельности.
Кратко: материалы и ресурсы — это то, из чего в данной деятельности продуцируются результаты.
Одни ресурсы выделяются под проект или под данную деятельность, другие разделяются, т.е. используются совместно в нескольких деятельностях. Есть расходуемые ресурсы, потребление которых не ограничено. В принципе, ресурсы проекта могут быть сведены к финансовому обеспечению. Но это не всегда удобно, в частности, по той причине, что вполне реальны ситуации, когда ресурсы некоторых проектных деятельностей готовятся в рамках выполнения других деятельностей.
В ряде аспектов планирования время можно рассматривать как расходуемый и ограниченный ресурс. Так мы поступали, описывая задачи менеджмента в целом (см. лекцию 1). Эта позиция теряет силу, когда надо представлять деятельность как развивающийся процесс, взаимодействующий с другими процессами. В этих случаях следует говорить о событиях, о синхронизации, об обмене данными и т.д.
В некоторых аспектах планирования в качестве ресурса продуктивно рассматривать субъекты, а точнее — их потенциальные возможности, квалификацию, опыт и прочее. Эта точка зрения отражена в данном курсе при обсуждении основных задач менеджера (см. лекцию 1). Такое рассмотрение удобно при анализе проекта в целом, но для текущих задач оно неприемлемо, так как индивидуализированное их представление противоречит понятию ресурса.
Распределение ограниченных ресурсов — одна из основных задач управления проектом.
-
Средства и инструменты. Обычная деятельность предполагает применение вспомогательных средств, которые поддерживают ее выполнение либо являются необходимыми для получения осмысленных результатов. Средства — общее понятие, отражающее возможность применения объекта в различных деятельностях. Инструменты, как правило, специализируются для конкретных видов деятельности. Однако и микроскоп пригоден для забивания гвоздей! Данный пример показывает условность разграничения между средствами и инструментами, хотя это и удобно с определенной точки зрения.
Средства и инструменты могут быть внешними по отношению к системе деятельностей проекта или могут разрабатываться в рамках проекта (он предусматривает включение в систему деятельности с соответствующими результатами). В последнем случае нужно различать ситуации, когда разработка ведется с расчетом на независимое использование вне проекта и когда внешнее применение создаваемых средств и инструментов не предполагается.
Кратко: средства и инструменты — это то, с помощью чего в данной деятельности продуцируются результаты.
-
Методы — совокупность приемов для деятельности данного типа, которые целесообразно применять при ее выполнении, предписаний, соглашений и рекомендаций, принимаемых для проекта, организации и т.д., регламентов, запрещающих или ограничивающих возможность применения средств, инструментов, других методов, а также задающих ограничения доступа к общим ресурсам. Проектные решения, касающиеся методов, при следовании разным методологиям программирования могут быть прямо противоположными. Так, для традиционных методологий обычными являются регламенты разграничения доступа файлам, содержащим интегрированный код разрабатываемой системы, тогда как в рамках методологии экстремального программирования принципиально, что для этих файлов устанавливается общий доступ для всех разработчиков проекта.
Кратко: методы — это то, что указывает на способ выполнения данной деятельности.
В теории деятельности средства, инструменты и методы часто объединяют в общее понятие. При таком взгляде метод в том смысле, как мы это определили, представляет собой средство организации деятельности в целом, и применение метода оказывается не чем иным, как специальной деятельностью, являющейся элементом-средством данной деятельности. С учетом методологической направленности настоящего курса выделение методов мотивируется тем, что для нас методы являются предметом исследования.
-
Результат. При выполнении деятельности субъект-исполнитель создает различные продукты, обусловленные и не обусловленные целями. Продукты можно рассматривать как материализованные следы деятельности, которые появляются в ходе ее выполнения, в том числе те или иные артефакты. Совокупность всех продуктов, полученных в ходе выполнения деятельности, называется ее результатом. Результат может содержать продукты, полезные с точки зрения целей проекта и целей деятельности, и бесполезные продукты, не способствующие продвижению проекта к его глобальным целям. Полезность или бесполезность продукта определяется проектными соглашениями. Общий критерий полезности — включение продукта в другие деятельности системы проекта в качестве атрибута (здесь слово "включение" понимается достаточно широко, например, влияние знания, продуцированного при выполнении некоторой деятельности, на цели другой деятельности рассматривается как включение продукта-знания в целевой элемент деятельности ).
Кратко: результат — это то, что фактически продуцируется в данной деятельности.
Любая деятельность есть вполне определенная часть некоторой общей системы деятельностей, охватывающей группу субъектов-исполнителей. Деятельности, субъекты которых не попадают в выделенную группу, являются окружением данной системы. Окружение связано с выделенной системой следующими способами:
- из окружения поставляются элементы деятельностей системы ;
- деятельностям окружения передаются результаты деятельностей системы ;
- система в целом или ее отдельные деятельности являются элементами деятельностей окружения.
Рассмотрение деятельности и системы деятельностей обособлено от других деятельностей — абстрактный прием, позволяющий увидеть структуру деятельности или системы, описать элементы и связи. Представленный список элементов отражает структуру любой осмысленной деятельности, а способы связи задают все многообразие систем деятельностей. Это представление достаточно содержательно даже на таком абстрактном уровне. Так, с его помощью мы в состоянии дать понятия автоматической и автоматизированной деятельностей.
Деятельность называется автоматизированной, если она приводит к результатам, которые продуцируются другой, неавтоматизированной деятельностью (реальной или, возможно, умозрительной), но с меньшими затратами времени и/или с сокращением расхода ресурсов. Данное определение может показаться излишне общим, охватывающим и случаи, которые интуитивно не представляются как автоматизированная деятельность. Можно дать другое определение, которое говорит о сокращении времени и/или расхода ресурсов при выполнении воздействий субъектом. Нетрудно заметить, что это приводит к необходимости рассматривать субъект в качестве (абстрактной) деятельности, выполнение которой приводит к выполнению исходной деятельности. И эта точка зрения вполне правомерна.
Деятельность называется автоматической или, точнее, автоматически выполняемой, если она имеет неодушевленный субъект, действующий с другими элементами по заданной внешним образом программе. Это то же самое, что вырожденная деятельность, не имеющая субъекта, акт выполнения которой осуществляется путем внешней активизации ее единственного средства. Третья эквивалентная точка зрения — определение автоматической деятельности как такой, у которой (одушевленный) субъект выполняет единственное воздействие-активизацию. Какое из этих определений использовать, зависит от конкретной ситуации.
Введенные понятия сами по себе почти не связаны со спецификой разработки программного обеспечения. Эта специфика может проявиться при интерпретации системы деятельностей на данной предметной области. Что, собственно говоря, и является предметом обсуждения в данном курсе.
На абстрактном уровне деятельность выполнения любого программного проекта можно изобразить в виде схемы, представленной на рис. 4.1.
Соединения блоков и выделение блока-субъекта означает активность этого блока и пассивность всех остальных, т.е. невозможность выполнения деятельности без воздействий субъекта. Здесь все требует конкретизации, которая неизбежно приведет к появлению новых деятельностей, связанных с данной. Например, указывая на требования, мы должны позаботиться о том, какие деятельности их пополняют и обрабатывают, какие средства применяются для продуцирования из этого материала результата проекта. Использование результата — это встраивание его во внешнюю деятельность пользователя таким образом, чтобы достигалась цель проекта. Подобные, но более содержательные утверждения нужно сделать по каждому из элементов проектной деятельности. В результате такой конкретизации становится явной система деятельностей, в которую погружается проект. Эта система весьма обширна, но для реального управления проектом и эффективного руководства коллективом требуется выделить в ней круг деятельностей, на которые можно влиять, достигая желаемых результатов. Именно они являются сферой деятельности менеджера (ее материалом). Кроме того, требуется выявить деятельности, которые влияют на проект, задавая его внешние условия и ограничения.
Цель программирования как деятельности можно определить как построение автоматических и автоматизированных деятельностей. Цель методологий программирования при таком рассмотрении - это построение автоматических и автоматизированных деятельностей, заменяющих собой неавтоматизированные аналоги в системе деятельностей программного проекта.
Для понимания назначения и условий применения различных методик нужно прежде всего распознать место методики в системе проектных деятельностей, рассматривая эту систему максимально широко. В частности, не следует забывать и о деятельности тех, кто имеет лишь косвенное отношение к проекту (их мы называли в числе инициаторов работ, см. лекцию 2), поскольку по большому счету программистские проекты разрабатываются для того, чтобы их использовали, и именно автоматизируемая пользовательская деятельность находится в основании того, что называют качеством программного продукта.
В публикациях, посвященных менеджменту проектов, часто говорят не о системе деятельностей, а о процессах, определяя их довольно свободно и неформально. Так, стандарт PMBOK (Project Management Body of Knowledge) института менеджмента проектов PMI, который фактически является общепризнанным на мировом уровне (достаточно указать на поддержку его со стороны ISO ), фиксирует, что " процесс — это серия действий, приводящая к результату" [48,49], совсем не заботясь о том, что такое "действие" и "результат". ISO 9000 говорит определеннее: " Процесс — любая деятельность, в которой используются ресурсы для преобразования входов в выходы" [ 39 ] . Последнее, по-видимому, следует считать общепризнанным определением процесса, формализация которого для описания систем процессов представлена в так называемой IDEF -технологии [ 38 ] Отметим, что наше понимание деятельности шире процесса. Оно включает и другие элементы, обычно рассматриваемые неформально, а значит, недостаточно регламентировано. Тем не менее с точностью до этого различия в терминологии базовые положения из того, что обсуждается и стандартизируется в области менеджмента проектов, можно без особого труда перенести и на понятие системы проектных деятельностей. Так, PMBOK предлагает оперировать понятием группы процессов, определяя для проектов следующие группы.
- Процессы инициации — начинают проект, определяют для него исходные ресурсы и материалы, цели и все остальные элементы деятельности. По существу, это является началом предпроектной деятельности .
- Процессы планирования — определяют, какими способами (методами) предполагается организовать проектную деятельность, на какие сроки и ресурсы рассчитывается проект, на какие вложенные процессы и этапы он разбивается и как предполагается проверять их результаты.
- Процессы исполнения — поэтапное выполнение запланированных процессов в конкретных условиях.
- Процессы контроля — проверка хода процессов и результатов, соответствующая запланированной методике контроля.
- Процессы завершения — то, что должно быть сделано, когда проект завершается.
Схема взаимодействия процессов согласно PMBOK показана на рис. 4.2.
В соответствии с этой схемой утверждается взаимосвязь выполнения процессов планирования, исполнения и контроля как основного цикла разработки любого проекта. С точностью до того, что мы говорим о деятельностях, а не о процессах, которые абстрагируются от некоторых элементов деятельностей, вводя там, где это необходимо, дополнительные процессы, представленная схема достаточно точно выделяет связи существенных деятельностей системы проектировочных деятельностей, хотя и не охватывает окружение этой системы (о трудностях определения системы и ее окружения мы немного поговорим в следующем разделе). Схема иллюстрирует сущность менеджмента проекта на самом абстрактном уровне как деятельность, направленную на организацию и поддержку целенаправленного развития обозначенных на ней групп процессов.