tech talks @nsu: Методологии разработки ПО. Что на самом деле...
TRANSCRIPT
![Page 1: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/1.jpg)
Методологии разработки ПО
![Page 2: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/2.jpg)
О чем сегодня пойдет речь
Эволюция процессов разработки: от «сели и наколбасили» до промышленных стандартов
Методологии разработки — что это такое?
Что на самом деле скрывается под словами scrum и agile.
![Page 3: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/3.jpg)
Хранение исходного кода
Удобнее всего, конечно работать над проектом в одиночку
Как только появляется второй разработчик, сразу возникает проблема передачи изменений в коде
Всё уже придумано до нас: системы контроля версий (SVN, CVS, git, Mercurial)
![Page 4: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/4.jpg)
Системы контроля версий
![Page 5: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/5.jpg)
Системы контроля версий
Без системы контроля версий разработка более-менее серьезных проектов немыслима
Они совсем не лишние и для учебных и собственных проектов
![Page 6: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/6.jpg)
Системы контроля версий
SVN: требует центрального сервера. Можно поставить свой, а можно воспользоваться code.google.com
git, Mercurial: не требуют сервера, можно пользоваться локально
![Page 7: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/7.jpg)
Отслеживание задач
Процесс разработки не всегда линеен
Решения типа «продолжить делать новые фичи или поправить дефекты в старых?»
«Я нашел у себя в проекте 25 багов, в каком порядке мне их делать? Как удержать их в голове?»
![Page 8: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/8.jpg)
Отслеживание задач
Багтрекер (bugtracker), система отслеживания дефектов
![Page 9: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/9.jpg)
Багтрекер
![Page 10: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/10.jpg)
Багтрекер
![Page 11: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/11.jpg)
Багтрекеры
Нашли баг в программе? Заведите новый тикет в багтрекере
Укажите последовательность действий, приводящую к ошибке, какое поведение ожидалось, и что происходит на самом деле
![Page 12: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/12.jpg)
Багтрекеры
Статусы тикетов (недавно открытый, в прогрессе, закрытый…)
Смена владельца тикета (разработчик, тестировщик)
![Page 13: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/13.jpg)
Багтрекеры
Если вы хостите свой проект на code.google.com или GitHub, то багтрекер входит в комплект
Бесплатный багтрекер можно поднять на своем сервере (Trac, Bugzilla, Redmine)
![Page 14: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/14.jpg)
Багтрекеры
Как это ни смешно, есть компании, не использующие ни багтрекеры, ни системы контроля версий
По возможности, избегайте их
Joel Spolsky, “The Joel Test”
![Page 15: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/15.jpg)
Ведение проекта — разноплановый процесс
Выяснение требований перед началом разработки
Очередность фич и представление промежуточных релизов заказчику
Процессы тестирования и code review
Документирование написанного кода
![Page 16: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/16.jpg)
Понятие методологии разработки
Методология — алгоритм разработки программных проектов
![Page 17: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/17.jpg)
Понятие методологии разработки
Исторически разработка ПО считалась разновидностью инженерных процессов
Первые методологии разработки ПО (70-е годы) напоминают производственные инструкции
![Page 18: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/18.jpg)
Классическая модель: waterfall
![Page 19: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/19.jpg)
Классическая модель: waterfall
1. «Пока не зафиксируем все требования — дальше не пойдем!»
![Page 20: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/20.jpg)
Классическая модель: waterfall
2. «Пока не закончим проектирование — реализацию не начнем»
![Page 21: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/21.jpg)
Недостатки waterfall
Очень сложно адаптируема к проектам с нечеткими требованиями
Очень грустно, когда заказчик в середине проекта придумывает что-то новое
Первоначальное проектирование и написание документации может занять очень много времени (иногда больше, чем создание первого прототипа)
![Page 22: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/22.jpg)
Новое веяние: agile methodologies
«Гибкие методологии»
Методологии, диктующие менее жесткие правила разработки
Начали появляться в середине 90-х, окончательно оформились в 2001 в “Agile Manifesto”
![Page 23: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/23.jpg)
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
![Page 24: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/24.jpg)
Гибкие методологии, основные принципы
Разработка итерациями: сделали набор функциональности, протестировали, показали заказчику, перешли к следующему набору фич
Меньший акцент на проектировании и документировании
Уход от жесткой организационной структуры (команда может работать вообще без менеджера)
![Page 25: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/25.jpg)
Гибкие методологии, основные принципы
И что, сработало?
![Page 26: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/26.jpg)
Плюсы для разработчиков
Снижение уровня бюрократии (изменение архитектуры или новую фичу не нужно согласовывать)
Значительно меньше документации
«Садимся и делаем»
![Page 27: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/27.jpg)
А с точки зрения бизнеса?
Для слабо специфицированных проектов —самое оно! (да и для всех остальных вполне неплохо)
Снижение затрат на документацию почти не сказывается на качестве
Команде разработчиков действительно не нужно жесткое руководство
![Page 28: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/28.jpg)
Интересные приемы из agile
Экстремальное программирование (Extreme Programming, XP) и, в частности, парное программирование
Test Driven Development, TDD: сначала пишем юнит-тесты, и только потом код
![Page 29: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/29.jpg)
Зрелые методологии на идеях agile
Scrum, полноценная методология оценки и ведения проектов
Kanban, удобный способ организации потока задач
![Page 30: Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за словами "scrum"и "agile"](https://reader034.vdocuments.net/reader034/viewer/2022051708/5880001c1a28ab3a1e8b740f/html5/thumbnails/30.jpg)
Kanban