• Like
Разработка веб-сервисов осень 2013 лекция 2
Upcoming SlideShare
Loading in...5
×

Разработка веб-сервисов осень 2013 лекция 2

  • 62 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
62
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Разработка веб-сервисов Беседа 2: Методологии разработки
  • 2. План занятия  Обзор основных методологий разработки  Практика работы по этим методологиям  Инструменты для управления процессом разработки 2
  • 3. Этапы создания проекта Этапы: 1. Анализ предметной области и постановка задачи 2. Проектирование, уточнение ТЗ 3. Разработка 4. Анализ разработанного продукта (ревью, тесты) 5. Ввод в эксплуатацию 3
  • 4. Модель жизненного цикла Модель жизненного цикла — обобщенное описание процесса развития Принципиально разные подходы:  Интенсивное планирование  Гибкая разработка 4
  • 5. Модели разработки  Водопадная (каскадная) модель  Прототипирование  Итерационная модель  Спиральная модель 5
  • 6. Модели разработки Водопадная (каскадная) модель  Первая описанная модель (1970 год)  Каждый этап — строго последовательно  Фаза начинается только после завершения предыдущей  Результат каждой фазы документируется 6
  • 7. Модели разработки Водопадная (каскадная) модель 7
  • 8. Модели разработки Водопадная (каскадная) модель  Определение требований (анализ)  Планирование (проектирование) ПО (структуры данных, архитектура, алгоритмистика)  Реализация и тестирование модулей  Интеграция и тестирование системы  Эксплуатация и сопровождение 8
  • 9. Модели разработки Водопадная (каскадная) модель Минусы:  Недостаточная гибкость  Формальное (документоориентированное) управление проектом  Задержка в получении результатов Плюсы  Подходит для больших проектов и команд  Снижает риски, делает проект прозрачным  Предсказуемость 9
  • 10. Модели разработки V-модель Левая сторона: задачи разработки Правая: задачи тестирования Преимущества и недостатки те же, что и у каскадной 10
  • 11. Модели разработки Прототипирование прототипирование — создание макетов 1. Определение требований 2. Создание первого прототипа 3. Изучение прототипа заказчиком, обратная связь 4. Улучшение прототипа 5. goto 3 11
  • 12. Модели разработки Прототипирование  Быстрое — макет выбрасывается  Эволюционное — макет дорабатывается 12
  • 13. Модели разработки Прототипирование Минусы  недостаточный анализ  смешение прототипа и готовой системы  чрезмерное время на создание прототипа Плюсы  уменьшение времени, стоимости и рисков  вовлечение заказчика, обратная связь 13
  • 14. Модели разработки Итерационная модель  Работы параллельно с анализом результатов  Повторяющийся цикл  Планирование  Реализация  Проверка  Оценка 14
  • 15. Модели разработки Итерационная модель Плюсы  Эффективная обратная связь  Акцент на важные задачи  Непрерывное тестирование  Реальная оценка состояния  Затраты распределены равномерно 15
  • 16. Модели разработки Спиральная модель  Описана в 1986 году  Упор на риски, влияющие на жизненный цикл  Виток — создание прототипа (или версии) ПО 16
  • 17. Модели разработки Спиральная модель 17
  • 18. Модели разработки Спиральная модель Секторы спирали:  Постановка задач  Оценка и сокращение рисков  Разработка и тестирование  Планирование 18
  • 19. Модели разработки Спиральная модель Риски  Дефицит специалистов  Разная квалификация специалистов  Нереалистичные сроки и бюджет  Реализация несоответствующей функциональности  Разработка неправильного пользовательского интерфейса 19
  • 20. Модели разработки Спиральная модель Риски  Перфекционизм, ненужная оптимизация и оттачивание деталей  Непрекращающийся поток изменений  Нехватка информации о внешних компонентах  Недостатки в работах, выполняемых внешними ресурсами  Недостаточная производительность сисоемы 20
  • 21. Методологии разработки Примеры методологий RUP — Rational Unified Process RAD — Rapid Application Development Agile — гибкие методологии 21
  • 22. Методологии разработки RAD — Rapid Application Development Принципы:  Инструментарий должен минимизировать время (3-4 месяца)  Управление проектом — тоже  Цикличность разработки  Создание прототипов (инкрементных)  Минимизация времени разработки за счет переноса кода  Небольшая команда (2-10 человек) 22
  • 23. Гибкие методологии Основные идеи  люди и взаимодействие важнее процессов и инструментов  работающий продукт важнее исчерпывающей документации  сотрудничество с заказчиком важнее согласования условий контракта  готовность к изменениям важнее следования первоначальному плану 23
  • 24. Гибкие методологии Примеры методологий  Экстремальное программирование  Scrum  Канбан  Feature driven development 24
  • 25. Гибкие методологии Экстремальное программирование (XP)  Короткий цикл обратной связи  Непрерывный процесс  Понимание и простота  Социальная защищенность 25
  • 26. Гибкие методологии Экстремальное программирование (XP)  Короткий цикл обратной связи  Разработка через тестирование (TDD)  Игра в планирование  Заказчик рядом  Парное программирование  Непрерывный процесс  Понимание и простота  Социальная защищенность 26
  • 27. Гибкие методологии Экстремальное программирование (XP)  Короткий цикл обратной связи  Непрерывный процесс  Непрерывная интеграция  Рефакторинг  Частые небольшие релизы  Понимание и простота  Социальная защищенность 27
  • 28. Гибкие методологии Экстремальное программирование (XP)  Короткий цикл обратной связи  Непрерывный процесс  Понимание и простота  Простота дизайна  Архитектура (метафора) системы  Стандарты кодирования  Коллективная ответственность за код  Социальная защищенность 28
  • 29. Гибкие методологии Экстремальное программирование (XP)  Короткий цикл обратной связи  Непрерывный процесс  Понимание и простота  Социальная защищенность  40-часовая рабочая неделя 29
  • 30. Гибкие методологии Scrum  Небольшие многофункциональные команды  Хорошо декомпозированный список задач с приоритетами (бэклог продукта и спринта)  Контроль выполнения спринта  Итерации с итоговой демонстрацией  Ретроспектива процесса 30
  • 31. Гибкие методологии Scrum Этапы «спринта»:  Планирование  Ежедневное совещание (короткое)  Обзор и демонстрация итогов  Ретроспективное совещание 31
  • 32. Гибкие методологии Scrum Задачи совещаний Ежедневное  Что сделано за день?  Что будет сделано за день?  Какие возникли проблемы? Ретроспективное  Что было сделано хорошо?  Что нужно улучшить? 32
  • 33. Гибкие методологии Канбан Особенности:  визуализация разработки  ограничение текущего объема работы на каждом этапе  измерение времени выполнения и его уменьшение 33
  • 34. Гибкие методологии Feature driven development Особенности:  планирование набора фич  разделение разработчиков на два вида (старшие программисты и владельцы классов)  персональная ответственность за код 34
  • 35. Гибкие методологии Длина итерации XP — 1-3 недели Scrum — 2-4 недели Канбан — без ограничений FDD — 2 недели Чем меньше длина итерации, тем проще реагировать на изменения 35
  • 36. Гибкость или предсказуемость Гибкость     Неясные или изменяющиеся требования к системе Разработчики недостаточно знакомы с предметной областью Ответственные и квалифицированные разработчики Понимающий заказчик, участвующий в разработке Предсказуемость  Требования стабильны, объем фиксирован  Большая команда разработчиков  Разработчики знакомы с предметной областью 36
  • 37. Выбор методологии Какая бы методология ни была бы выбрана, поначалу она не совсем вам подойдет Вы должны контролировать процесс, отслеживать его и подстраивать под ваши конкретные нужды 37
  • 38. Выбор методологии  Разные проекты — разные методологии  Разные этапы проекта — разные методологии  Можно комбинировать  Можно изменять (на то они и гибкие) 38
  • 39. Выбор методологии Методология Денег  Заказчиков много, владелец бэклога — один  Бэклог продукта – смесь приоритетов и рангов  Бэклог итерации – группировка по важности  Длина итерации — неделя 39
  • 40. Выбор методологии Методология Денег Этапы и особенности:  постановка задач в план итерации  оценка сроков  формирование итогового списка задач  определение приоритетов  распределение задач и контроль выполнения  визуализация 40
  • 41. Инструменты для управления  Множество систем управления задачами  Mail.Ru: изначально своя, сейчас — Jira  Классическая система Рабочих столов  Scrum-стиль  Канбан-стиль 41
  • 42. Инструменты для управления Jira, классическая система Рабочих столов 42
  • 43. Инструменты для управления Jira, scrum-стиль 43
  • 44. Инструменты для управления Jira, канбан-стиль 44
  • 45. Инструменты для управления Jira, классическая система Основные элементы:  Рабочие столы (Dashboards)  Гаджеты (фильтры, диаграммы, графики) 45
  • 46. Инструменты для управления Jira, классическая система Гаджеты: фильтры 46
  • 47. Инструменты для управления Jira, классическая система Гаджеты: диаграммы 47
  • 48. Инструменты для управления Jira, классическая система Гаджеты: отчет о времени 48
  • 49. Инструменты для управления Jira, классическая система Гаджеты: не только списки задач! 49
  • 50. Инструменты для управления Методология Денег. Бэклог продукта 50
  • 51. Инструменты для управления Методология Денег. Недельный план 51
  • 52. Инструменты для управления Методология Денег. Текущая итерация 52
  • 53. Инструменты для управления Методология Денег. Текущая итерация 53
  • 54. Резюме  В веб-разработке наиболее актуальна итерационная модель  Гибких методологий много, на любой вкус  Методологии нужно пробовать и менять под себя  Технические средства упрощают управление 54
  • 55. Вопросы? Максим Бабич tpark@maxbabich.ru +7 916 9415275