Методологии разработки ПО
О чем сегодня пойдет речь
 Эволюция процессов разработки: от «сели
и наколбасили» до промышленных
стандартов
 Методологии разработки — что это такое?
 Что на самом деле скрывается под словами
scrum и agile.
Хранение исходного кода
 Удобнее всего, конечно работать над
проектом в одиночку
 Как только появляется второй
разработчик, сразу возникает проблема
передачи изменений в коде
 Всё уже придумано до нас: системы
контроля версий (SVN, CVS, git, Mercurial)
Системы контроля версий
Системы контроля версий
 Без системы контроля версий разработка
более-менее серьезных проектов
немыслима
 Они совсем не лишние и для учебных и
собственных проектов
Системы контроля версий
 SVN: требует центрального сервера.
Можно поставить свой, а можно
воспользоваться code.google.com
 git, Mercurial: не требуют сервера, можно
пользоваться локально
Отслеживание задач
 Процесс разработки не всегда линеен
 Решения типа «продолжить делать новые
фичи или поправить дефекты в старых?»
 «Я нашел у себя в проекте 25 багов, в каком
порядке мне их делать? Как удержать их в
голове?»
Отслеживание задач
Багтрекер (bugtracker), система
отслеживания дефектов
Багтрекер
Багтрекер
Багтрекеры
 Нашли баг в программе? Заведите новый
тикет в багтрекере
 Укажите последовательность действий,
приводящую к ошибке, какое поведение
ожидалось, и что происходит на самом
деле
Багтрекеры
 Статусы тикетов (недавно открытый, в
прогрессе, закрытый…)
 Смена владельца тикета (разработчик,
тестировщик)
Багтрекеры
 Если вы хостите свой проект на
code.google.com или GitHub, то багтрекер
входит в комплект
 Бесплатный багтрекер можно поднять на
своем сервере (Trac, Bugzilla, Redmine)
Багтрекеры
 Как это ни смешно, есть компании, не
использующие ни багтрекеры, ни системы
контроля версий
 По возможности, избегайте их
 Joel Spolsky, “The JoelTest”
Ведение проекта — разноплановый
процесс
 Выяснение требований перед началом
разработки
 Очередность фич и представление
промежуточных релизов заказчику
 Процессы тестирования и code review
 Документирование написанного кода
Понятие методологии разработки
Методология — алгоритм разработки
программных проектов
Понятие методологии разработки
 Исторически разработка ПО считалась
разновидностью инженерных процессов
 Первые методологии разработки ПО (70-е
годы) напоминают производственные
инструкции
Классическая модель: waterfall
Классическая модель: waterfall
1. «Пока не зафиксируем все требования — дальше не
пойдем!»
Классическая модель: waterfall
2. «Пока не закончим проектирование — реализацию не
начнем»
Недостатки waterfall
 Очень сложно адаптируема к проектам с
нечеткими требованиями
 Очень грустно, когда заказчик в середине
проекта придумывает что-то новое
 Первоначальное проектирование и
написание документации может занять
очень много времени (иногда больше, чем
создание первого прототипа)
Новое веяние:
agile methodologies
 «Гибкие методологии»
 Методологии, диктующие менее жесткие
правила разработки
 Начали появляться в середине 90-х,
окончательно оформились в 2001 в “Agile
Manifesto”
Agile Manifesto
We value:
Individuals and interactions over processes and
tools
Working software over comprehensive
documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Гибкие методологии, основные
принципы
 Разработка итерациями: сделали набор
функциональности, протестировали, показали
заказчику, перешли к следующему набору фич
 Меньший акцент на проектировании и
документировании
 Уход от жесткой организационной структуры
(команда может работать вообще без менеджера)
Гибкие методологии, основные
принципы
И что, сработало?
Плюсы для разработчиков
 Снижение уровня бюрократии (изменение
архитектуры или новую фичу не нужно
согласовывать)
 Значительно меньше документации
 «Садимся и делаем»
А с точки зрения бизнеса?
 Для слабо специфицированных проектов —
самое оно! (да и для всех остальных вполне
неплохо)
 Снижение затрат на документацию почти не
сказывается на качестве
 Команде разработчиков действительно не
нужно жесткое руководство
Интересные приемы из agile
 Экстремальное программирование
(Extreme Programming, XP) и, в частности,
парное программирование
 Test Driven Development,TDD: сначала
пишем юнит-тесты, и только потом код
Зрелые методологии на идеях agile
 Scrum, полноценная методология оценки и
ведения проектов
 Kanban, удобный способ организации
потока задач
Kanban

More Related Content

PPTX
Алексей Аникутин
PDF
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
PPTX
Agile testing
PPT
Методологии разработки по
PDF
C# Web. Занятие 14.
PDF
Кризисное управление проектами: проблемы, компромиссы, решения
PDF
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
PPTX
Длинный путь к DevOps?
Алексей Аникутин
Особенности внедрения KPI или как доказать, что Ваш «зеленый» проект реально ...
Agile testing
Методологии разработки по
C# Web. Занятие 14.
Кризисное управление проектами: проблемы, компромиссы, решения
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Длинный путь к DevOps?

What's hot (20)

PPTX
Развитие интерфейса через гайдлайны
PDF
Agile и госконтракт (2016-01 SPM MEETUP)
PDF
Вебинар "Культура DevOps: основы эффективного взаимодействия IT-команд"
PPTX
Agile и тестирование
PPTX
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
PPTX
IT-шная история игрушек или feature-driven тестирование в действии
PPTX
Гибкая разработка пользовательской документации
PPTX
Учебный день конференции HighLoad++ 2013
PDF
Алексей Лустин. Непрерывная проверка качества кода.
PDF
Разработка веб-сервисов осень 2013 лекция 2
PPTX
Roles happy dev-2013-tsepkov
PDF
Гибкие методологии при создании ИТ продукта.
PPTX
от каждого по потребностям, каждому — по Agile
PPTX
гибкая методология разработки по
PDF
Технологии разработки ПО
PPTX
Денис Тучин - Почему всегда не успеваем QA? Как могут помочь гибкие методы в ...
PDF
Юлия Викторова; Александр Тарасов. DevOps без булшита.
PDF
Разработка ПО - методология жизненного цикла
PPTX
Лекция 2 тестирование и жизненный цикл ПО
PPTX
Переписать нельзя рефакторить
Развитие интерфейса через гайдлайны
Agile и госконтракт (2016-01 SPM MEETUP)
Вебинар "Культура DevOps: основы эффективного взаимодействия IT-команд"
Agile и тестирование
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
IT-шная история игрушек или feature-driven тестирование в действии
Гибкая разработка пользовательской документации
Учебный день конференции HighLoad++ 2013
Алексей Лустин. Непрерывная проверка качества кода.
Разработка веб-сервисов осень 2013 лекция 2
Roles happy dev-2013-tsepkov
Гибкие методологии при создании ИТ продукта.
от каждого по потребностям, каждому — по Agile
гибкая методология разработки по
Технологии разработки ПО
Денис Тучин - Почему всегда не успеваем QA? Как могут помочь гибкие методы в ...
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Разработка ПО - методология жизненного цикла
Лекция 2 тестирование и жизненный цикл ПО
Переписать нельзя рефакторить
Ad

Viewers also liked (17)

PDF
Tech Talks @NSU: Работа в инвестбанкинге
PDF
Tech Talks @NSU: О качестве программного обеспечения
PDF
Tech Talks @NSU: Чему стоит учиться в университете, а также немного про олимп...
PDF
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
PDF
AOT-компиляция Java
PDF
Tech Talks @NSU: Что есть QA и как в него попасть
PDF
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
PDF
Tech Talks @NSU: Путь студента в IT-бизнес
PDF
Тестировщик: ожидание vs. реальность
PDF
Как приручить дракона: введение в LLVM
PDF
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
PDF
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
PDF
Tech Talks @NSU: Мир open source — мир возможностей
PDF
Tech Talks @NSU: Что стоит знать о информационной безопасности при проектиров...
PDF
Tech Talks @NSU: Как работать в калифорнийском стартапе, не уезжая из России
PDF
Tech Talks @NSU: Как приручить дракона: введение в LLVM
PDF
Xtext project and PhDs in Gemany
Tech Talks @NSU: Работа в инвестбанкинге
Tech Talks @NSU: О качестве программного обеспечения
Tech Talks @NSU: Чему стоит учиться в университете, а также немного про олимп...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
AOT-компиляция Java
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Теоретические основы программирования: проекции Футамуры-Тур...
Tech Talks @NSU: Путь студента в IT-бизнес
Тестировщик: ожидание vs. реальность
Как приручить дракона: введение в LLVM
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Что стоит знать о информационной безопасности при проектиров...
Tech Talks @NSU: Как работать в калифорнийском стартапе, не уезжая из России
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Xtext project and PhDs in Gemany
Ad

Similar to Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile" (20)

PPTX
Вебинар "Введение в процесс разработки ПО"
PPTX
Методологии процесса разработки программного обеспечения
PPTX
Methodologies and technologies used in Ukrainian IT companies
PPTX
Agile/Scrum
ODP
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
PDF
Agile Process Wizard или как собрать Agile методологию под конкретный проект
PPTX
Agile/Scrum методологии разработки программного обеспечения
PPTX
Mva stf module 4 - rus
PDF
Гибкие методологии разработки ПО в реальном мире
PPTX
Методологии разработки ПО
PPTX
Разработка корпоративных (бизнес) приложений (лекция 2)
PDF
Технопарк_Управление Web-проектом_3 занятие
PPT
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
PDF
Семинар ФКН: современные подходы к разработке ПО - часть 1
PPTX
Agile. Эвридики
PPTX
Agile testing
PPTX
Проекты и Процессы
PPTX
Практика работы с крупными проектами - от Scrum с XP к Kanban
PDF
Общие темы. Тема 03.
Вебинар "Введение в процесс разработки ПО"
Методологии процесса разработки программного обеспечения
Methodologies and technologies used in Ukrainian IT companies
Agile/Scrum
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
Agile Process Wizard или как собрать Agile методологию под конкретный проект
Agile/Scrum методологии разработки программного обеспечения
Mva stf module 4 - rus
Гибкие методологии разработки ПО в реальном мире
Методологии разработки ПО
Разработка корпоративных (бизнес) приложений (лекция 2)
Технопарк_Управление Web-проектом_3 занятие
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
Семинар ФКН: современные подходы к разработке ПО - часть 1
Agile. Эвридики
Agile testing
Проекты и Процессы
Практика работы с крупными проектами - от Scrum с XP к Kanban
Общие темы. Тема 03.

More from Tech Talks @NSU (18)

PDF
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
PDF
Back to the Future: Функциональное программирование вчера и сегодня
PDF
Что такое Highload? Секреты высокой нагрузки
PDF
Автоматическое доказательство теорем
PDF
Защита от атак по сторонним каналам
PDF
Тестировщик: ожидание vs. реальность
PDF
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
PDF
Tech Talks @NSU: DLang: возможности языка и его применение
PDF
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
PDF
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
PDF
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
PDF
Роли и задачи HR в работе IT-компаний
PDF
VM: краткий курс общей анатомии
PDF
Знакомьтесь, Kotlin
PDF
F#: обзорное введение
PDF
Где-то я это уже видел!
PDF
Что такое DevOps
PDF
СОРМ и его зарубежные аналоги
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Back to the Future: Функциональное программирование вчера и сегодня
Что такое Highload? Секреты высокой нагрузки
Автоматическое доказательство теорем
Защита от атак по сторонним каналам
Тестировщик: ожидание vs. реальность
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Роли и задачи HR в работе IT-компаний
VM: краткий курс общей анатомии
Знакомьтесь, Kotlin
F#: обзорное введение
Где-то я это уже видел!
Что такое DevOps
СОРМ и его зарубежные аналоги

Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"

  • 2. О чем сегодня пойдет речь  Эволюция процессов разработки: от «сели и наколбасили» до промышленных стандартов  Методологии разработки — что это такое?  Что на самом деле скрывается под словами scrum и agile.
  • 3. Хранение исходного кода  Удобнее всего, конечно работать над проектом в одиночку  Как только появляется второй разработчик, сразу возникает проблема передачи изменений в коде  Всё уже придумано до нас: системы контроля версий (SVN, CVS, git, Mercurial)
  • 5. Системы контроля версий  Без системы контроля версий разработка более-менее серьезных проектов немыслима  Они совсем не лишние и для учебных и собственных проектов
  • 6. Системы контроля версий  SVN: требует центрального сервера. Можно поставить свой, а можно воспользоваться code.google.com  git, Mercurial: не требуют сервера, можно пользоваться локально
  • 7. Отслеживание задач  Процесс разработки не всегда линеен  Решения типа «продолжить делать новые фичи или поправить дефекты в старых?»  «Я нашел у себя в проекте 25 багов, в каком порядке мне их делать? Как удержать их в голове?»
  • 8. Отслеживание задач Багтрекер (bugtracker), система отслеживания дефектов
  • 11. Багтрекеры  Нашли баг в программе? Заведите новый тикет в багтрекере  Укажите последовательность действий, приводящую к ошибке, какое поведение ожидалось, и что происходит на самом деле
  • 12. Багтрекеры  Статусы тикетов (недавно открытый, в прогрессе, закрытый…)  Смена владельца тикета (разработчик, тестировщик)
  • 13. Багтрекеры  Если вы хостите свой проект на code.google.com или GitHub, то багтрекер входит в комплект  Бесплатный багтрекер можно поднять на своем сервере (Trac, Bugzilla, Redmine)
  • 14. Багтрекеры  Как это ни смешно, есть компании, не использующие ни багтрекеры, ни системы контроля версий  По возможности, избегайте их  Joel Spolsky, “The JoelTest”
  • 15. Ведение проекта — разноплановый процесс  Выяснение требований перед началом разработки  Очередность фич и представление промежуточных релизов заказчику  Процессы тестирования и code review  Документирование написанного кода
  • 16. Понятие методологии разработки Методология — алгоритм разработки программных проектов
  • 17. Понятие методологии разработки  Исторически разработка ПО считалась разновидностью инженерных процессов  Первые методологии разработки ПО (70-е годы) напоминают производственные инструкции
  • 19. Классическая модель: waterfall 1. «Пока не зафиксируем все требования — дальше не пойдем!»
  • 20. Классическая модель: waterfall 2. «Пока не закончим проектирование — реализацию не начнем»
  • 21. Недостатки waterfall  Очень сложно адаптируема к проектам с нечеткими требованиями  Очень грустно, когда заказчик в середине проекта придумывает что-то новое  Первоначальное проектирование и написание документации может занять очень много времени (иногда больше, чем создание первого прототипа)
  • 22. Новое веяние: agile methodologies  «Гибкие методологии»  Методологии, диктующие менее жесткие правила разработки  Начали появляться в середине 90-х, окончательно оформились в 2001 в “Agile Manifesto”
  • 23. Agile Manifesto We value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 24. Гибкие методологии, основные принципы  Разработка итерациями: сделали набор функциональности, протестировали, показали заказчику, перешли к следующему набору фич  Меньший акцент на проектировании и документировании  Уход от жесткой организационной структуры (команда может работать вообще без менеджера)
  • 26. Плюсы для разработчиков  Снижение уровня бюрократии (изменение архитектуры или новую фичу не нужно согласовывать)  Значительно меньше документации  «Садимся и делаем»
  • 27. А с точки зрения бизнеса?  Для слабо специфицированных проектов — самое оно! (да и для всех остальных вполне неплохо)  Снижение затрат на документацию почти не сказывается на качестве  Команде разработчиков действительно не нужно жесткое руководство
  • 28. Интересные приемы из agile  Экстремальное программирование (Extreme Programming, XP) и, в частности, парное программирование  Test Driven Development,TDD: сначала пишем юнит-тесты, и только потом код
  • 29. Зрелые методологии на идеях agile  Scrum, полноценная методология оценки и ведения проектов  Kanban, удобный способ организации потока задач