7-software_engineering_management (1133547), страница 2
Текст из файла (страница 2)
Все это требует внимания нетолько в контексте проекта, но в рамках всей организации. Для инженеров-программистов особоважными, в частности, являются вопросы обучения и индивидуального внимания менеджмента. Вбольшой степени это связано с постоянно развивающимеся технологиями и потребностью вобновлении и расширении знаний для эффективного решения поставленных задач. Часто непридают необходимого внимания вопросам коммуникаций между сотрудниками. На самом делеуправление коммуникациями, создание естественных условий (в agile-практиках им придаетсяособое внимание) для их развития – один из ключевых элементов повышения не толькопродуктивности команд разработки и сопровождения, но и, например, точности получаемых отпользователей требований и запросов на изменения, то есть любой информации, котораяпередается между людьми и значима для успешного решения поставленных задач.
Наконец,управление портфелями (проектов разработки и работ по сопровождению) позволяет сформироватьи развивать общее видение в отношении всех существующих, обновляемых и создаваемыхпрограммных активов на уровне ИТ-подразделения и в организации, в целом. Все это, в конечномсчете, обеспечивает и более эффективное управление ресурсами, а, значит, и возможностьинтенсивного, а не экстенсивного развития организации, в которой инновации начинают играть однуиз ключевых ролей.Вместе с осознанием специфики управленческой деятельности в приложении к программнойинженерии, ИТ-специалистам необходимо понимать и ключевые аспекты общего менеджмента иуправления проектами.Copyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru3Основы программной инженерии (по SWEBOK)Программная инженерия.
Управление программной инженерией.Организационная культура, нормы поведения, аспекты корпоративного управления в вопросахприобретения и поставки, управления цепочками поставок (supply chain management), маркетинг,продажи, партнерства и т.п. – все это влияет, хотя и неявно, на организационные процессыпрограммной инженерии.В отношении данной области знаний особо уместно подчеркнуть значимость вопросов управленияпроектами (project management), так как “конструирование имеющих ценность программныхартефактов” (к которым относятся требования, модели, документация, тесты и т.п.) обычноведется в форме проектов или программ проектов. Принимая это во внимание, создателиSWEBOK особо отмечают связь данной области знаний c обсуждавшимся уже в этой книгеРуководством к Своду Знаний по Управлению Проектами PMBOK (A Guide to the Project Management®Body of Knowledge.
PMBOK Guide). В контексте управления программной инженерией следуетпонимать важность соответствующих областей знаний PMBOK: Управление интеграцией проекта (project integration management) Управление содержанием проекта (project scope management) Управление сроками проекта (project time management) Управление стоимостью проекта (project cost management) Управление качеством проекта (project quality management) Управление человеческими ресурсами проекта (project human resource management) Управление коммуникациями проекта (project communication management)Наравне с ними, с точки зрения автора, необходимо уделять не меньшее внимание и другимобластям знаний управления проектами: Управление рисками проекта (project risk management) Управление поставками проекта (project procurement management)SWEBOK отмечает, что, несомненно, области знаний управления проектами имеютнепосредственное влияние на решение вопросов управления инженерной деятельностью в областипрограммного обеспечения.
Не имеет смысла, да и просто невозможно дублировать в SWEBOKсодержание PMBOK. Вместо этого, PMBOK рассматривается как ключевой источник информации изнаний по управлению проектами, настоятельно рекомендуемый всем лицам, в той или иной степенивовлеченных в управленческую деятельность в программных проектах. Таким образом, естественно,что управление проектами можно найти в области знаний SWEBOK “Связанные дисциплины”(Related Disciplines).Данная область знаний состоит из пяти секций, посвященных процессам управления программнойинженерией и еще одной секции, касающейся вопросов измерений и количественных оценок вуправлении. Хотя эти два аспекта (управление и измерения) часто рассматриваются отдельно и, всамом деле, обладают многими уникальными аспектами, их тесная взаимосвязь играет важную рольв этой области знаний.
К сожалению, сложилось, во многих случаях, обоснованное [Chaos, 2004]восприятие индустрии программного обеспечения как недостаточно зрелой, в силу частых срывовсроков, превышения бюджетных ограничений, недостаточного качества продуктов, неопределеннойфункциональности и других причин. Управление, ориентированное на измерения, как один изосновных принципов любой инженерной деятельности, может серьезно помочь в изменениисложившейся неблагоприятной ситуации и формировании положительного восприятия программнойиндустрии потребителями (пользователями и заказчиками).
По-сути, управление без измерений,количественных или качественных, приводит к отсутствию прогресса в достижении целей, аизмерения без управления – к потере контекста и целей. Однако, в то же время, управление иизмерения без необходимого и достаточного уровня знаний становится неэффективным и, часто,превращается в самоцель (что приводит, по мнению автора к излишней бюрократизации инеадекватной загруженности ресурсов). Таким образом, управленческая деятельность, в общемплане (включая количественные и качественные оценки), должна проводиться сбалансировано сдругими аспектами программной инженерии, не превращая Software Engineering Management (SEM)в дорогостоящую, но бесполезную работу.
Эффективный менеджмент требует комбинациисоответствующих систематических и упорядоченных подходов в управлении и соответствующегоопыта*.* например, на практике просто невозможно добиться статуса PMP – Project ManagementProfessional по версии Project Management Institute (PMI), если претендент не обладаетCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru4Основы программной инженерии (по SWEBOK)Программная инженерия.
Управление программной инженерией.серьезным практическим опыт управления проектами и пытается сдать соответствующийэкзамен только на основе штудирования PMBOK и теоретических “изысканий”.Прежде, чем детализировать данную область знаний, необходимо дать рабочие определения дляпонятий “процесс управления” и “измерения”: Процесс управления (Management process) описывает действия (работы - activities),предпринимаемые для обеспечения того, что процессы программной иженерии выполняютсяв согласовании с политиками, целями и стандартами, принятыми в организации Измерения (Measurement) связаны с определением величин и характеристикой различныхаспектов программной инженерии (продуктов, процессов и т.п.), а также разработкой на ихоснове моделей* с использованием статистических методов (и данных), экспертных знаний идругих техник.* В данном контексте, SWEBOK видимо подразумевает, что полученные моделииспользуются для идентификации и анализа рисков, планирования и совершенствованияпроцессов программной инженерии (процессов жизненного цикла, включая процессысопровождения), а также процесса управления.Секции (подобласти) данной области знаний, связанные с управлением программной инженерией,тесно связаны с секций измерений (количественной оценки).Вполне естественно, что данная область знаний тесно связана с другими областями знанийSWEBOK и ее необходимо рассматривать в контексте других областей знаний.
Стоит особо отметитьследующие аспекты применения других областей знаний в управлении программной инженерией и,особо, в управлении программными проектами: Требования к программному обеспечению (Software Requirements) – соответствующиедействия по работе с требованиями (в первую очередь, их определение) указанной областизнаний должны выполняться в фазе инициирования (Initiation) и определения содержания(Scope Definition) программных проектов. Конфигурационное управление (Software Configuration Management) – связано сидентификацией, контролем, учетом статуса (активов проекта, включая запросы наизменения, прим. автора) и аудитом конфигураций (в терминах конфигурационногоуправления) в сочетании с управлением релизами (release management) и развертываниемпрограммных систем. Процесс программной инженерии (Software Engineering Process) – процессы и продуктытесно связаны; указанная область знаний включает аспекты измерений продуктов ипроцессов. Качество (Software Quality) – качество является одной из постоянных целей управления ибольшого комплекса соответствующих работ, которыми необходимо управлять.Данная область знаний рассматривает управление программной инженерий в терминахорганизационного процесса, включающего управление процессами и проектами.
Структурнаядекомпозиция этой области знаний основывается и на определении соответствующих тем и нарассмотрении жизненного цикла. При этом, основной отправной точкой дальнейшей детализацииявляется процесс управления программными проектами (в оригинале SWEBOK в данной областизнаний активно используется термин software engineering project). Таким образом, структурадекомпозиции управления программной инженерией включает шесть основных секций(подобластей), из которых первые пять, в основном, следуют стандарту IEEE (ISO/IEC, ГОСТ) 12207в части “Процесса управления” (Management Process).
Вот эти шесть секций данной области знаний: Инициирование и определение содержания (Initiation and scope definition) – касается принятиярешения о начале программного проекта Планирование программного проекта (Software project planning) – относится к работам,предпринимаемым для подготовки к успешному ведению программно-инженернойдеятельности с точки зрения управления Выполнение программного проекта (Software project enactment) – касается общепринятых(general accepted) действий по управлению программной инженерией в процессе проведениясоответствующих инженерных работCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru5Основы программной инженерии (по SWEBOK)Программная инженерия.
Управление программной инженерией.Обзор и оценка (Review and evaluation) – относится к работам по проверке того, чтополучаемый программный продукт отвечает заданным целям, требованиям, ограничениям ит.п.Закрытие <проекта> (Closure) – относится к фиксированию результатов программногопроекта после передачи полученного программного продукта в эксплуатацию.Измерения в программной инженерии (Software engineering measurement) – касаетсяразработки и реализации программ по измерению (ведению количественной оценки) ворганизациях (в общем смысле, т.е.