Сергей Архипенков — Теория и практика адаптивного управления проектом / Блог компании Лаборатория тестирования / Хабрахабр. Архипенков Сергей — эксперт в управлении разработкой ПО, более 3.
ПО, PMP® PMI, вице- президент Гильдии менеджеров программных проектов. Активный «продвигатор» и «задвигатор» теории и практики управления проектами и людьми в проектах по разработке ПО.
Активный заседатель программных комитетов. Из последнего — председатель программного комитета конференции «Software Project Managment Conference» (ноябрь, Санкт- Петербург). Ниже опубликован доклад Сергея с конференции Code. Fest, на тему «Теория и практика адаптивного управления проектом». Видео доклада. Аудио докладаpolazhenko. Слайды: www. slideshare. Текст доклада: Спасибо, Артём, спасибо всем организаторам, которые пригласили меня выступить перед такой представительной аудиторией.
Доброе утро, уважаемые коллеги, точнее сказать – не коллеги, а братья по разуму. Потому что программист — это не профессия… Кто сказал диагноз? Нет, не диагноз, программист – это образ мышления и особый склад ума. Задачка: Баратино дали 5 яблок, три из них он отдал Мальвине.
А, теперь каверзный вопрос – сколько яблок осталось у Буратино? Только программисты знают правильный ответ (варианты из зала 5, 1. Ну, менеджеры собрались в зале – понимаю. А правильный ответ, — очень простой — не известно! Почему? А потому что в начальных условиях не сказано о том, обнулили ли вначале ячейку с адресом Буратино, перед тем как туда добавили 5 яблок.
Ну вот тут уже сказали, что я разрабатываю программное обеспечение 3. Ну, последние годы, естественно, — меньше разрабатываю, больше руковожу.
И вот я сейчас попытаюсь за полчаса рассказать всё самое главное, что мне удалось накопить за эти годы. Нет одного ЛУЧШЕГО способа решать дифференциальные уравнения. Алистерн Кобберн – зачинатель Agile движения — он исследовал сотни проектов за последние 2. Я буду утверждать, что есть такой процесс и называется он – адаптивное управление. Мы будем говорить сегодня о принципах, потому что знание небольшого числа принципов, как говорил Гельвеций, освобождает от необходимости запоминания множества фактов. Существенных принципов будет семь, они самые главные. Но прежде, чем перейти к ним – я расскажу, что такое адаптивное управление.
Из 3. 5 лет, в течении которых я разрабатываю программное обеспечение, 2. ПО в Центре управления полётами. Вот имел такое счастье, имел такой опыт. И очень хорош знаю, как работают системы управления нашими ракетами. И вот не поверите, аналогия один в один, если сравнить историю развития систем управления баллистическими ракетами и историю развития подходов к управлению програмными проектами.
Первый способ управления ракетами – баллистический полет. Ну, значит более 1. Китае был изобретён порох и существовали баллестические ракеты и вот одно из сказаний из «Повести временных лет», если не ошибаюсь (с историей хуже знаком, чем с программированием) о том, как княгиня Ольга осаждала город древлян, и потом согласно легенде она собрала по голубю и по воробью с каждого двора и, привязав паклю, зажгла город.
Есть мнение, ну версия, так- сказать. Истории нет – есть версии разных людей о том, как это могло бы быть. Одна из версий в эссе «Память» Чевелихина состоит в том, то что Ольга сидела и полгода ждала, пока ей из Китая привезут эти ракеты.
- Лекция 3. Проведен анализ и дано описание инженерии программирования, принципов и методов планирования и управления программным проектом, рисками и формированием версий программных систем.
- Архипенков С. Лекции по управлению программными проектами. международных стандартов ЖЦ систем и комплексов программ.
- Лекции по управлению программными проектами. С. Архипенков. Содержание. Отзыв на книгу. Создавал имитационные модели сложных космических систем в Центре управления полетами (ЦНИИМаш)..
- Автор: Архипенков С. Издательство: Москва Год: 2009 Страниц: 128 Формат: pdf Размер: 4.4 MB. Работа менеджера проекта подобна труду садовника. Лекции по линейной алгебре - Гельфанд И.М. Язык программирования С++. Лекции и упражнения, 5-е изд. Стивен Прата..
- Архипенков Сергей — эксперт в управлении разработкой ПО, более 30 лет в разработке ПО, CodeFest, на тему «Теория и практика адаптивного управления проектом ». И очень хорош знаю, как работают системы управления нашими ракетами. Жалко мало — явно неполлная лекция.
Их привезли и она ракетами этот город зажгла. Ну значит, тогда вот ракеты и программы летали одинаково – «как получится». Выставляли некий начальный угол, который как считали наводил на цель… Да, можно так летать, но не очень далеко и не очень точно. Так это продолжалось до середины 5. Когда сложность задач повысилась на 4 порядка — раньше летали на один километр и это было супер достижение, а теперь надо на 1. Стали внедрятся системы управления. Первые системы управления были на основе аналоговых вычислителей, когда из сопротивлений, индуктивностей и ёмкостей набиралась схемка, которая моделировала полёт по заданной траектории.
Лекции по управлению программными проектами. С. Архипенков цикл программы, программной системы, программного продукта включает в себя.
Лекции по управлению проектами от Сергея Архипенкова. Главная Полезности Литература Сергей Архипенков 'Лекции по управлению программными проектами'. 2016 - 07 - 03.. 2. Архипенков C. Лекции по управлению. программными. проектами. Егоров Л.Л. Мелихов С.Е. Научный руководитель: Мелихов С.В., д.т.н., профессор Томский Университет Систем Управления и Радиоэлектроники.
На борту стояла инерциальная система измерения скорости и местоположения в пространстве. Каждый раз, когда отклонения достигали недопустимых пределов, система управления возвращала ракету на попадающую траекторию. Аналог в нашей отрасли программостроения всему этому – это «водопад». Все слышали замечательный музыкальный ролик Максима Дорофеева “Raise and fall of waterfall” про то, как был изобретён водопад отцом Уокера Ройса. Хотя он изобрёл совсем другое.
Поищите, в интернете есть. Значит идея очень простая – есть регулятор, есть отклонение и мы возвращаемся на опорную траекторию. Так управлять можно, но сильно неэффективно.
Почему? Потому что возвращение на опорную траекторию требует очень больших затрат, хотя не всегда есть необходимость идти по первоначально намеченному плану. А когда уже появились бортовые цифровые вычислители (БЦВМ) — то был применён гибкий подход. В ракетостроении он назывался метод терминального управления. Когда каждый раз, когда накопился некий объём отклонений (вышли из допустимой трубки траекторий), — мы не пытаемся вернуться на заранее расчитанную траекторию.
А пытаемся посмотреть, а как нам лучше попасть в нашу цель из той точки, в которой мы уже находимся, может ничего не надо делать, просто прилетим пораньше? Ничего страшного. Значит аналогичный подход (привязывают его к Agile) – «планы ничто, а планирование – всё».
Да мы планируем, перепланируем, и опять перепланируем, держа перед собой конечный результат (нашу цель). Всё хорошо работает, если мы чётко знаем, где у нас расположена цель, и она остаётся во время нашего полёта – на месте. В программостроении это совершенно не так, потому что, как правило, цель мы формулируем в самых общих понятиях.
Прихожу я к Заказчику, спрашиваю: «Заказчик – чего ты хочешь?». Ну, хочу информационную систему, которая принесёт мне счастье». Начинаем уточнять: «А счастье – это как? Программу и методику испытаний – как будем писать?». Да – цель меняется по ходу, требования меняются по ходу.
И в системах управления ракетами возник дополнительный контор, который пытается засечь цель и изменить путь в соответсвии с новым прогнозом положения этой цели. А в современном подходе по разрботке ПО этот метод называется итерационный и инкрементальный. Когда мы максимально часто стараемся поставлять продукт заказчику для его оценки, для получения обратной связи. Т. е. мы уточняем цели.
Ну, всё это не работает, если мы плохо знаем тот объект, которым управляем. Если его структура и свойства нам недостаточно известны, либо меняются во время полёта. Значит, в ракетостроение придумали метод «адаптивного управления» — добавляется ещё один контур, помимо всех остальных, который пытается понять, это что за объект, которым мы управлеяем, построить более точную модель и более адекватно прикладывать к нему управляющее воздействие, как направление на движение в этом фазовом пространстве, так и направленные на изменние нужных для движения свойств самого объекта. То, чем мы управляем в программном проекте, это люди и их взаимодействие. По моим многолетним наблюдениям – 5. ПО в среднем, уходит на переговоры. Ну понятно, — менеджеры болтают целыми днями.
Программисты, тестировщики чуть- чуть поменьше, но в среднем на всех участников проекта 5. Значит вот я попытаюсь изложить вам своё виденье того, как адаптивный подход в управлении программными проектами, позволяет сделать проект любой сложности с командой обычных разработчиков. Мы будем говорить о принципах. А я постараюсь их проиллюстрировать примерами. Один человек – Иосиф Виссарионович Сталин говорил – Если два коммуниста не могут договориться, то один из них враг… или оба. Значит, коллеги, это первые грабли, по которыми я напрыгался вдоволь. Когда я стал, а это было достаточно рано, руководителем до 3.
В советские времена это было большое достижение. У меня была чёткая классификацию людей по их типам.
И у меня было два типа личности: 1) Правильные люди, которые думают и делают, как я. Все остальные, которых железной рукой надо привести к счастью. Жизнь меня поправила и сейчас наиболее используемые мной типы личности включает 1. Майерс- Бригс. Если кто не читал – рекомендую, к программированию это очень хорошо прикладывается. Винни Пух— этик – Пятачок. Это нормальные люди, это счастье, что Бог создал нас разными, за счёт этого мы получаем классные продукты, за счёт синергии разных взглядов на конечный результат.
Раз все люди разные, то тут возникает принцип №1. Принцип необходимого и достаточного разнообразия. Это вовсе не я придумал. Пятьдесят лет назад это написал в книге «Введение в кибернетику» Эшби.
Поэтому руководитель проектов приходит к 9: 0. Потом он общается, в основном, слушая людей.
Наша задача понять людей, для этого мы обязаны их слушать. А давать указания только в последнюю очередь. Анализирует, что происходит, пытается в своей практике найти что- то подобное. В адаптивной системе управления – наиболее эффективные методы построены на прецедентах. Когда в БЦВН засовывают кучу- кучу образцов.
Если происходит нештатная ситуация – она начинает кейсы перебирать и искать подходящие. Аналогично работает менеджер программного проекта. Он из своего опыта достаёт два- три- четыре примера и пытается из них синтезировать какое- то решение для текущей ситуации. А чтобы понять, правильное решение или нет, естественно его надо пробовать, надо внедрять, надо обобщать и дальше всё по кругу – наблюдать- анализировать — и вот такой вот бесконечный цикл должен быть у менеджера программного проекта. История 2. Делаем всё по правилам.
Грамотный эффективный специалист, который нацелен, мотивирован на постороение самого лучшего решения, который имеет самый быстрый алгоритм и при этом имеет минимальные ресурсы – очень любит применять все лучшие патерны, которые знает, больше всего любит применять то, что не знает, но Вася Пупкин сказал, что новая технология это крута. Есть тут проблема? It depens…Если мы делаем утилиту по сжатию, компрессии данных, изображения, звука, которая в 1. Но вот, как правило, когда я встречаюсь с такого вида поведением – это паттерн, это частый вариант поведения, у кторого даже есть свое название — перфекционизм.