Презентация по дисциплине Менеджмент и технология разработки программных продуктов. Менеджмент разработки программных изделий
* Менеджмент разработки программных изделий Курс лекций Л.А.Казначеева * Менеджмент разработки программных изделий Введение. Основные понятия. Функции и роли разработчиков программных проектов. Ключевые роли. Подбор кадров * Руководство и управление Руководить можно людьми Управлять можно проектом Менеджмент должен сочетать и то и другое Эта двойственность характерна для любого менеджмента, но для менеджмента программных проектов она играет решающую роль, поскольку в этой отрасли производятся нематериальные продукты — артефакты. * Разработка программного обеспечения — коллективный труд специалистов, направленный на удовлетворение потребности пользователей в автоматизации их деятельности с помощью применения создаваемой программной системы. * Исполнители Исполнители Группы исполнителей Менеджер проекта Группа менеджеров по направлениям Служба менеджера Схема с одним менеджером Схема со службой менеджера Схема с группой менеджеров по направлениям Менеджер проекта Менеджер проекта Зависимость от масштаба проекта. Другие варианты схем Три схемы организации менеджмента проекта * Несколько методических положений Делегирование полномочий — инструмент разделения труда (не только менеджера)Персонифицированная и деперсонифицированная ответственностьАбстрактное действующее лицо и конкретный сотрудникПонятие деятельности:продукционная деятельность (производство результата)управляющая деятельность (производство траектории развития)наблюдательная деятельность (производство познавательного результата)Три варианта целей разработки программного обеспечения:производство программ, прямо не связанное с получением доходапроизводство рыночного продуктапроизводство программ под заказГлавная и постоянная задача менеджмента:продвижение проекта к получению результатов, обозначенных в начале развития проекта как его цели Роль заказчика, пусть даже лишь виртуального очень значительна! * Функции, выполняемые разработчиками программного проекта Типовые функции (кодирование, анализ требований, тестирование, отладка и т.д.)Распределение функции между разработчиками проекта → роли исполнителей (объединение родственных функций)Поручения и заданияТехнологические функцииОрганизационные функции — создают условия для выполнения проектных заданий, вторые непосредственно связаны с этими заданиями и Производственные функции — выполнение проектного заданияУчастники разработки и функциональные роли в коллективе разработчиковЭтапы развития проекта — жизненный цикл программного изделияЗадача менеджмента рассматривается как организационно-управленческая деятельность, поддерживающая процесс разработки программного изделия на всех этапах его жизненного цикла. * Ролевые кластеры модели проектной группы MSF * Управление продуктом (product management) Ключевая цель кластера — обеспечивать удовлетворение заказчика. Для ее достижения кластер должен содержать следующие области компетенции кластера: Управление программой (program management) Задача — обеспечить реализацию решения в рамках ограничений проекта, что может рассматриваться как удовлетворение требований к бюджету проекта и к его результату. Области компетенции кластера: планирование продукта,планирование доходов, представление интересов заказчика, маркетинг. управление проектом , выработка архитектуры решения, контроль производственного процесса, административные службы. Разработка (development) Задача — кластера построение решения в соответствии со спецификацией. Области компетенции кластера: технологическое консультирование, проектирование и осуществление реализации, разработка приложений , разработка инфраструктуры. * Тестирование (test) Задача кластера — одобрение выпуска продукта только лишь после того, как все дефекты выявлены и улажены. Области компетенции кластера: разработка тестов, отчетность о тестах, планирование тестов. Управление выпуском (release management) Задача кластера — повышение эффективности использования продукта. Области компетенции кластера : Удовлетворение потребителя (user experience) общедоступность, интернационализация,обеспечение технической поддержки, обучение пользователей, удобство эксплуатации (эргономика), графический дизайн. инфраструктура, сопровождение, бизнес-процессы, управление выпуском готового продукта. Задача кластера — обеспечение эффективного использования продукта. Области компетенции кластера : * Функциональные роли: внешняя рольадминистрацияруководитель проектапроектировщики разработчикиэкспертыобслуживающий персонал Заказчик (Customer)Планировщик ресурсов (Planner)Менеджер проекта(Project Manager) Руководитель команды(Team Leader)Архитектор (Architect)Проектировщик подсистемы (Designer)Разработчик (Developer)Разработчик информационной поддержки (Information Developer)Специалист по пользовательскомуинтерфейсу (Human Factors Engineer)Эксперт предметной области (Domain Expert) Тестировщик(Tester)Библиотекарь(Librarian) Внешние и внутренние функции менеджера взаимодействие с * Принципы, определяющие регламент совмещения ролей не следует допускать совмещение ролей, которые имеют конфликтные или противоречивые интересы;предоставление ролей с конфликтными интересами различным людям способствует равновесию противоречащих точек зрения; дополнительные роли для разработчиков всегда приводят к росту времени выполнения их основной работы;если работнику поручается несколько ролей, то он всегда должен знать, какую из них он выполняет в данный момент. * Совмещение ролей Менеджер и архитекторМенеджер и руководитель командыРуководитель команды и проектировщик п/сМенеджер и разработчикДля различных разработчиков Создание документации (все работники)Специалистом по интерфейсу и менеджерЭксперт предметной области и менеджер Специалист по интерфейсу и эксперт предметной области Эксперт предметной области и разработчик Специалист по интерфейсу и разработчик Библиотекарь и один из разработчиковТестировщики и другие члены команды желательнопротиворечивонежелательноне допускаетсяобычное делораспределяется разумнозачастую разумноредко бывает эффективно бывает полезно часто полезно допустимотолько перекрестно Программист один разрабатывает проект для себя — предельный случай полного совмещения Заказчик и планировщик с другими ролями — экзотика * Ключевые роли коллектива разработчиков архитектор проекта проектировщики подсистем руководители команд разработки подсистем специалист по пользовательскому интерфейсу эксперт предметной области Персоналии, минимально необходимые для начала проекта Где подбирать специалистов на проект? Менеджер может заранее знать возможных кандидатов принимать на работу новых сотрудников подбирать кандидатов из числа работников фирмы подменять знания о квалификации сведениями личного характера * Лидер коллектива — один из работников ключевых ролей или сам менеджер Ситуации, в которых действует менеджер при подборе кадров Менеджерский коллектив потенциальных исполнителей недостаточен: среди его сотрудников не все обладают нужной квалификацией; Лидер есть В поле зрения менеджера есть независимые потенциальные исполнители, из которых можно сформировать коллектив для работы над проектом; Лидера нет Менеджеру приходится прибегать к найму рабочей силы со стороны. Лидера нет Лидер есть У менеджера есть коллектив потенциальных исполнителей, готовый приступить к работе над проектом; Задача поиска лидера * Решение задачи определения кадровых ресурсов проекта Кадровые потребности проекта Оценка распределения кадровых потребностей по времени Возможности подбора кадров на проект График привлечения сотрудников к проекту Критические ролевые позиции проекта Заполнение вакансий До официального начала выполнения проекта Утверждение кадровой политики проекта По мере необходимости в ходе выполнения проекта Задача определения кадровых ресурсов проекта никогда не может быть решена окончательно!