Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Управление разработкой программного обеспечения

455 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Управление разработкой программного обеспечения

  1. 1. Управление разработкой программного обеспечения Александр Воронов Video Group CS MSU Graphics & Media Lab
  2. 2. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 2
  3. 3. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Мир глазами программиста 3
  4. 4. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  С другой стороны 4
  5. 5. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Заказчик — исполнитель 5
  6. 6. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Схема отношений 6
  7. 7. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Особенности отрасли  Разработка программного обеспечения — молодая отрасль  Основная часть себестоимости продукта — зарплата сотрудников  Сложность оценки объёма работ  Сложность объективной оценки качества и сравнения с аналогами 7
  8. 8. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Особенности должности  Необходимость планирования  Когда будет готов конечный продукт?  Ответственность  Принятие решений  Контроль качества  Разгребание проблем  Коммуникации  Видение ситуации в целом и обеспечение необходимой связи между участниками 8
  9. 9. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Особенности должности Планирование  Все хотят знать, что получится в конце и когда этот конец настанет  Программистам верить нельзя — они слишком оптимистичны  Нужно угадать и предусмотреть  Время, деньги, количество людей  Промежуточные и конечный результаты  Возможные проблемы и пути их решения 9
  10. 10. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Особенности должности Ответственность  Каждый программист хочет отвечать только за свой код  У менеджера (ведущего разработчика) шире зона ответственности  Должно получиться то, что хочет заказчик  Несмотря ни на что, всё должно быть в срок  Не должно быть ситуаций, когда программисту нечего делать — он скучает  Если кто-то из программистов не справился — отвечать менеджеру 10
  11. 11. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Особенности должности Коммуникации  Мир глазами программиста и мир глазами заказчика — это разные вселенные  Мир глазами разных программистов — разные планеты  Программисты — люди умные, но порой своеобразные 11
  12. 12. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Особенности должности Коммуникации  Здоровая атмосфера в коллективе — залог успеха проекта  Плохая информированность участников коллектива — одна из частых причин провала 12
  13. 13. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Планирование  Проектирование  Реализация  Невыполнение плана  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 13
  14. 14. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  О книге  Фредерик Брукс  Управлял разработкой OS/360 в IBM  Награждён Премией Тьюринга в 1999 году  «Мифический человеко-месяц или Как создаются программные системы» — 1975 год (1995 — 2-е издание) 14 http://ru.wikipedia.org/wiki/Брукс,_Фред
  15. 15. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Планирование  Чтобы сделать всё в срок и по плану, нужно этот план хотя бы иметь  В плане должны быть чётко обозначенные даты и вехи (milestones)  Вехи — это конкретные достижения  Задача занимает всё отведённое под неё время 15
  16. 16. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Планирование Критические пути Диаграмма Ганта — график с критическими путями  Последовательность действий  Планирование рисков 16 http://en.wikipedia.org/wiki/Gantt_chart
  17. 17. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Планирование Планирование рисков Закон Мёрфи: «Anything that can go wrong will go wrong» Если при планировании проблеме было уделено мало внимания — она обязательно возникнет Должны быть предусмотрены:  Пути смягчения последствий неразрешимых проблем  Минимальный гарантированный результат при каждой из таких проблем 17
  18. 18. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Планирование Планирование усилий Правило Парето: 20% усилий обеспечивают 80% результата При разработке ПО:  Проектирование — 30%  Написание кода — 20%  Тестирование компонентов — 25%  Системное тестирование — 25% 18
  19. 19. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Планирование Планирование усилий  Превращение программы в продукт — увеличение времени втрое  Объём работ растёт как степенная функция размера программы va По разным оценкам a = 1,05−1,2 или 1,5 v — некая метрика размера программы 19
  20. 20. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Планирование  Проектирование  Реализация  Невыполнение плана  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 20
  21. 21. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Проектирование  Качественное проектирование сокращает затраты на кодирование и тестирование  Ошибки, возможные на этом этапе — самые дорогие 21
  22. 22. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Проектирование  Концептуальная целостность — самое важное для получения качественного продукта  Продукт должен позволять решать задачи, а не просто предоставлять набор функций  Ответственность за концептуальную целостность на одном человеке или группе единомышленников (аристократизм)  Отделить архитектуру от реализации (варианты реализации должны быть предложены) 22
  23. 23. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Проектирование Спецификации  Описание 20% компонентов обозначает 80% требований  Необходимо и формальное, и текстовое описание проекта (одно из них выбирается основным)  Вместе со структурой проекта планируется структура документации 23
  24. 24. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Проектирование Спецификации Для каждого модуля должны быть описаны:  Требуемый функционал  Ожидаемые и допустимые характеристики (память, скорость)  Взаимодействие с другими модулями 24
  25. 25. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Планирование  Проектирование  Реализация  Невыполнение плана  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 25
  26. 26. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Документация  Причина плохой документации — не только лень, но и неуверенность в текущих решениях (недостаток проектирования)  Документации часто не хватает обзорности  Важно отвечать не только на вопрос «как?», но и «почему?» 26
  27. 27. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Тестирование  После любого изменения нужно проводить серию регрессионных тестов  Для каждого компонента должны быть отдельные тесты  При интегральном тестировании компоненты должны добавляться по одному 27
  28. 28. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Сопровождение  Сопровождение — это исправление ошибок и усовершенствование функционала  Возможность внесения изменений необходимо предусматривать  Зависимость числа модулей от номера версии — линейная, числа затронутых изменениями модулей — экспоненциальная  Исправления имеют тенденцию к разрушению структуры системы 28
  29. 29. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Сопровождение Выявление ошибок  Чем больше пользователей, тем больше найденных ошибок  Значительная часть ошибок выявляется сразу после выпуска продукта; очередной всплеск происходит по прошествии некоторого времени  При исправлении одной ошибки с вероятностью 20−50% вносится другая 29
  30. 30. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Сопровождение Выявление ошибок 30
  31. 31. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Планирование  Проектирование  Реализация  Невыполнение плана  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 31
  32. 32. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Невыполнение плана — Как оказывается, что проект запаздывает на год? — Сначала он запаздывает на один день. Фредерик Брукс 32 « »
  33. 33. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Невыполнение плана  Одна из основных причин срыва сроков — неполнота или противоречивость информации о текущем состоянии  Полезно иметь две оценки текущего состояния:  от ответственного  от исполнителей 33
  34. 34. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Невыполнение плана С точки зрения программиста  Не бойтесь сообщать о том, что не укладываетесь в сроки  По закону Мёрфи ситуация имеет свойство развиваться от плохого к худшему  Нормальный руководитель подобную ситуацию уже предусмотрел 34
  35. 35. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Невыполнение плана С точки зрения руководителя  Нехватка календарного времени — основной тип провалов  Добавление людей в проект только затягивает сроки  Нарушение работы  Перекраивание задач  Обучение  Дополнительное общение 35
  36. 36. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Брукс: выводы  За 36 лет устарели только технологии, идеи и принципы по-прежнему актуальны  Произошла микрокомпьютерная революция  Значительно вырос рынок, изменился его характер  Несмотря на большое количество исследований и накопленного опыта, кризис разработки ПО продолжается 36
  37. 37. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 37
  38. 38. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  О книге  Эдвард Йордон  Учёный в области теории вычислительных систем  Независимый консультант  «Путь камикадзе» — 1997 год  Оригинальное название: «Death March. The Complete Software Developer’s Guide to Surviving Mission Impossible Projects» 38 http://ru.wikipedia.org/wiki/Йордан,_Эдвард
  39. 39. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Когда совсем всё плохо  Один из параметров проекта как минимум вдвое отличается от нормы  Календарные сроки  Количество разработчиков  Бюджет или ресурсы  Требуемые функции или технические характеристики  Вероятность провала выше 50% 39
  40. 40. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Откуда они берутся  Неверное планирование  Желание перехватить заказ у более крупной компании  Переоценка собственных способностей  Политика и маркетинг  Стремление захватить мир 40
  41. 41. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Причины участия  Большое вознаграждение  Синдром покорителей Эвереста  Глупость  Перспективность  Безальтернативность  Оптимизм 41
  42. 42. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Характеристика проекта 42
  43. 43. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Роль менеджера Два типа менеджеров, ответственных за проект:  Тот, кто выжимает команду  Мотивирован на деньги  Не планирует в будущем продолжать работу с командой  Тот, кто защищает команду  Мотивирован на деньги и результат  Рассчитывает сохранить нормальные отношения с командой 43
  44. 44. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Переговоры При обсуждении условий проекта есть три переменных:  Календарные сроки  Ресурсы (в основном: люди и бюджет)  Качество (функционал, требования, условия эксплуатации) 44
  45. 45. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Переговорные игры  Удвой и добавь ещё  Обратное удвоение  Угадай число, которое я задумал  Игра на понижение  Туманы и миражи  Фиктивное качество 45
  46. 46. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Формирование требований  Формулировка требований и расстановка приоритетов  Прояснение качества «достаточно хороший»  Правило 20/80 46
  47. 47. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Использование новых технологий Риски:  Несовершенство технологии  Затраты на обучение  Для оценки эффективности нужно создавать прототип  Нужно иметь оценку сроков/ресурсов с использованием уже изученных технологий 47
  48. 48. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Безнадёжные проекты Выводы  Избегайте безнадёжных проектов  Ввязавшись, адекватно оценивайте свои силы 48
  49. 49. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 49
  50. 50. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Agile Гибкие методики разработки (XP, Scrum)  Минимизация бюрократии  Нацеленность на результат  Организация процессов в небольших командах 50
  51. 51. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Agile  Люди и взаимодействие важнее процессов и инструментов  Работающий продукт важнее исчерпывающей документации  Сотрудничество с заказчиком важнее согласования условий контракта  Готовность к изменениям важнее следования первоначальному плану 51 http://agilemanifesto.org/iso/ru/
  52. 52. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Agile Некоторые особенности  Взаимодействие команды и заказчика  Release early, release often  Самоорганизация команды  Гибкость требований 52 http://agilemanifesto.org/iso/ru/
  53. 53. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Брукс: Мифический человеко-месяц  Йордон: Путь камикадзе  Пара слов про Agile  Заключение 53
  54. 54. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Заключение  «Проектируй! @ Документируй!»  Будьте ответственны  Помните про конечный результат  Помните про пользователя и его задачи 54
  55. 55. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Литература 1. Фредерик Брукс, «Мифический человеко-месяц или как создаются программные системы», Символ-Плюс, СПб., 2010. 2. Эдвард Йордон, «Путь камикадзе. Как разработчику программного обеспечения выжить в безнадёжном проекте», Лори, 2003. 3. http://agilemanifesto.org/ 55
  56. 56. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  56
  57. 57. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Лаборатория компьютерной графики и мультимедиа Видеогруппа — это:  Выпускники в аспирантурах Англии, Франции, Швейцарии (в России в МГУ и ИПМ им. Келдыша)  Выпускниками защищено 5 диссертаций  Наиболее популярные в мире сравнения видеокодеков  Более 3 миллионов скачанных фильтров обработки видео 57

×