SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Методологии разработки ПО
О чем сегодня пойдет речь
 Эволюция процессов разработки: от «сели
и наколбасили» до промышленных
стандартов
 Методологии разработки — что это такое?
 Что на самом деле скрывается под словами
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

Contenu connexe

Tendances

Развитие интерфейса через гайдлайны
Развитие интерфейса через гайдлайныРазвитие интерфейса через гайдлайны
Развитие интерфейса через гайдлайны
tfmailru
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
Gleb Rybalko
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
Ontico
 
Разработка веб-сервисов осень 2013 лекция 2
Разработка веб-сервисов осень 2013 лекция 2Разработка веб-сервисов осень 2013 лекция 2
Разработка веб-сервисов осень 2013 лекция 2
Technopark
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
ScrumTrek
 

Tendances (20)

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

En vedette

Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция Java
Tech Talks @NSU
 
Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
Tech Talks @NSU
 
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU: Back to the Future: Функциональное программирование вчера и ...
Tech Talks @NSU
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU
 
Xtext project and PhDs in Gemany
Xtext project and PhDs in GemanyXtext project and PhDs in Gemany
Xtext project and PhDs in Gemany
Tech Talks @NSU
 

En vedette (17)

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

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

Управление проектами в системной инженерии. Теории, технологии, инструменты.
Управление проектами в системной инженерии. Теории, технологии, инструменты.Управление проектами в системной инженерии. Теории, технологии, инструменты.
Управление проектами в системной инженерии. Теории, технологии, инструменты.
Anatoly Levenchuk
 
Системный анализ в процессе разработки ПО
Системный анализ в процессе разработки ПОСистемный анализ в процессе разработки ПО
Системный анализ в процессе разработки ПО
Maxim Galimov
 
C++ осень 2012 лекция 12
C++ осень 2012 лекция 12C++ осень 2012 лекция 12
C++ осень 2012 лекция 12
Technopark
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
Dima Dzuba
 

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

Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1Семинар ФКН: современные подходы к разработке ПО - часть 1
Семинар ФКН: современные подходы к разработке ПО - часть 1
 
Вебинар "Введение в процесс разработки ПО"
Вебинар "Введение в процесс разработки ПО"Вебинар "Введение в процесс разработки ПО"
Вебинар "Введение в процесс разработки ПО"
 
Введение в методы agile
Введение в методы agileВведение в методы agile
Введение в методы agile
 
Course User interface — Lesson 11
Course User interface — Lesson 11Course User interface — Lesson 11
Course User interface — Lesson 11
 
Юрий Ветров "Как планируется работа команды проектирования и дизайна интерфей...
Юрий Ветров "Как планируется работа команды проектирования и дизайна интерфей...Юрий Ветров "Как планируется работа команды проектирования и дизайна интерфей...
Юрий Ветров "Как планируется работа команды проектирования и дизайна интерфей...
 
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.RuФорум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с Agile
 
Проблемы тестирования 64-битных приложений
Проблемы тестирования 64-битных приложенийПроблемы тестирования 64-битных приложений
Проблемы тестирования 64-битных приложений
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
Ответственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектахОтветственность за качество в разных ИТ-проектах
Ответственность за качество в разных ИТ-проектах
 
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделятьОтветственность за качество в разных ИТ-проектах: в чем она и как ее разделять
Ответственность за качество в разных ИТ-проектах: в чем она и как ее разделять
 
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
 
Управление проектами в системной инженерии. Теории, технологии, инструменты.
Управление проектами в системной инженерии. Теории, технологии, инструменты.Управление проектами в системной инженерии. Теории, технологии, инструменты.
Управление проектами в системной инженерии. Теории, технологии, инструменты.
 
Системный анализ в процессе разработки ПО
Системный анализ в процессе разработки ПОСистемный анализ в процессе разработки ПО
Системный анализ в процессе разработки ПО
 
C++ осень 2012 лекция 12
C++ осень 2012 лекция 12C++ осень 2012 лекция 12
C++ осень 2012 лекция 12
 
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...Room8: Внедрение практик code review как важная составляющая успеха мобильног...
Room8: Внедрение практик code review как важная составляющая успеха мобильног...
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 

Plus de Tech Talks @NSU

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

Plus de Tech Talks @NSU (19)

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