Quality assurance. Итеративная разработка Карпов М. А., 5241/1
QA ( quality assurance ) <ul><li>На русский язык это можно перевести как &quot;проверка качества&quot;, хотя обычно говоря...
 
Проектирование <ul><li>Мы пытаемся построить работающую систему, которая должна что-то выдавать на выходе, а именно — прог...
Ещё варианты? <ul><li>Надо уменьшить размер команды.  </li></ul><ul><li>Почему? За счет этого вы повышаете КПД её отдельны...
Тенденции <ul><li>Переход к итерациям </li></ul><ul><li>Процессный менеджмент </li></ul><ul><li>Маленькие команды </li></ul>
<ul><li>Самоуправляемая команда это небольшая группа людей с дополняющими навыками, с общей целью, стремящаяся улучшить св...
Rational Unified Process (RUP) <ul><li>В основе RUP лежат следующие принципы: </li></ul><ul><li>Ранняя идентификация и неп...
Динамическая структура
Статическая структура RUP  <ul><li>Для описания осмысленной последовательности выполнения работ и задач используются рабоч...
Этап проектирования в  RUP <ul><li>На этапе проектирования производится анализ предметной области и построение исполняемой...
Agile, Scrum  (1) <ul><li>Удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО </li></ul><ul><li>Прив...
Agile, Scrum  (2) <ul><li>Работающее ПО — лучший измеритель прогресса </li></ul><ul><li>Спонсоры, разработчики и пользоват...
 
Двенадцать основных приёмов  XP  (1) <ul><li>Короткий цикл обратной связи ( Fine scale feedback)  </li></ul><ul><ul><li>Ра...
Двенадцать основных приёмов  XP  (2) <ul><li>Понимание, разделяемое всеми  </li></ul><ul><ul><li>Простота ( Simple design)...
 
 
Проблемы <ul><li>«Программисты не тестируют!» </li></ul><ul><li>«А у меня на машине всё работает!» </li></ul><ul><li>«Наст...
Чем раньше находится ошибка, тем она дешевле обходится <ul><li>Парное программирование </li></ul><ul><li>Ревью кода до ком...
Исправление ошибок и автоматизация <ul><li>Непрерывная интеграция </li></ul><ul><li>Юнит-тесты </li></ul><ul><li>Разработк...
Проблемы управления качеством в  Agile <ul><li>Недостаток мотивации </li></ul><ul><li>Недостаток дисциплины </li></ul><ul>...
Инструментарий <ul><li>Definition of Done  - Что значит «ГОТОВО»? </li></ul><ul><li>Доска </li></ul><ul><li>Технический до...
Спасибо за внимание! “ Getting Real”, 37signals Фредерик Брукс «Мифический человеко-месяц или Как создаются программные си...
Upcoming SlideShare
Loading in …5
×

Quality assurance

1,658 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,658
On SlideShare
0
From Embeds
0
Number of Embeds
384
Actions
Shares
0
Downloads
18
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Quality assurance

  1. 1. Quality assurance. Итеративная разработка Карпов М. А., 5241/1
  2. 2. QA ( quality assurance ) <ul><li>На русский язык это можно перевести как &quot;проверка качества&quot;, хотя обычно говорят просто о тестировании. </li></ul><ul><li>Это процесс, который позволяет проверить соответствие разработанного программного обеспечения стандартам, которые были заданы на этапе проектирования. </li></ul>
  3. 4. Проектирование <ul><li>Мы пытаемся построить работающую систему, которая должна что-то выдавать на выходе, а именно — программный продукт. У нас есть люди, из которых мы вот эту систему строим. </li></ul><ul><li>Что нужно сделать, чтобы система из ненадежных элементов работала? </li></ul><ul><li>Нужно её сделать с огромной избыточностью. </li></ul>
  4. 5. Ещё варианты? <ul><li>Надо уменьшить размер команды. </li></ul><ul><li>Почему? За счет этого вы повышаете КПД её отдельных элементов, вы позволяете им оказывать большее влияние на общий результат работы системы за счет уменьшения количества связей, которые как раз всё это КПД гасят. </li></ul><ul><li>Для повышения КПД мы делаем ненадёжную систему, но зато она даёт очень эффективный результат. </li></ul>
  5. 6. Тенденции <ul><li>Переход к итерациям </li></ul><ul><li>Процессный менеджмент </li></ul><ul><li>Маленькие команды </li></ul>
  6. 7. <ul><li>Самоуправляемая команда это небольшая группа людей с дополняющими навыками, с общей целью, стремящаяся улучшить свою производительность и чувствующая ответственность по отношению к друг другу… </li></ul>
  7. 8. Rational Unified Process (RUP) <ul><li>В основе RUP лежат следующие принципы: </li></ul><ul><li>Ранняя идентификация и непрерывное (до окончания проекта) устранение основных рисков. </li></ul><ul><li>Концентрация на выполнении требований заказчиков к исполняемой программе (анализ и построение модели прецедентов (вариантов использования)). </li></ul><ul><li>Ожидание изменений в требованиях, проектных решениях и реализации в процессе разработки. </li></ul><ul><li>Компонентная архитектура, реализуемая и тестируемая на ранних стадиях проекта. </li></ul><ul><li>Постоянное обеспечение качества на всех этапах разработки проекта (продукта). </li></ul><ul><li>Работа над проектом в сплочённой команде, ключевая роль в которой принадлежит архитекторам. </li></ul>
  8. 9. Динамическая структура
  9. 10. Статическая структура RUP  <ul><li>Для описания осмысленной последовательности выполнения работ и задач используются рабочие процессы. Они описывают кто, что, как и когда выполняет в процессе. </li></ul><ul><li>В RUP входят 6 основных дисциплин: — Бизнес-моделирование (Business modeling); — Управление требованиями (Requirements); — Анализ и Проектирование (Analysis and Design); — Реализация (Implementation); — Тестирование (Test); — Развертывание (Deployment). </li></ul><ul><li>И три вспомогательные: — Управление проектом (Project management); — Управление изменениями (Change management); — Среда (Environment). </li></ul>
  10. 11. Этап проектирования в RUP <ul><li>На этапе проектирования производится анализ предметной области и построение исполняемой архитектуры. Это включает в себя: </li></ul><ul><li>Документирование требований (включая детальное описание для большинства прецедентов). </li></ul><ul><li>Спроектированную, реализованную и оттестированную исполняемую архитектуру. </li></ul><ul><li>Обновленное экономическое обоснование и более точные оценки сроков и стоимости. </li></ul><ul><li>Сниженные основные риски. </li></ul>
  11. 12. Agile, Scrum (1) <ul><li>Удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО </li></ul><ul><li>Приветствие изменения требований, даже в конце разработки. Это может повысить конкурентоспособность полученного продукта </li></ul><ul><li>Частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще) </li></ul><ul><li>Тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта </li></ul><ul><li>Проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием. </li></ul><ul><li>Рекомендуемый метод передачи информации это личный разговор (лицом к лицу) </li></ul>
  12. 13. Agile, Scrum (2) <ul><li>Работающее ПО — лучший измеритель прогресса </li></ul><ul><li>Спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок </li></ul><ul><li>Постоянное внимание на улучшение технического мастерства и удобный дизайн </li></ul><ul><li>Простота — искусство НЕ делать лишней работы </li></ul><ul><li>Лучшие архитектура, требования и дизайн получаются у самоорганизованной команды </li></ul><ul><li>Постоянная(Частая) адаптация(улучшение эффективности работы) к изменяющимся обстоятельствам </li></ul>
  13. 15. Двенадцать основных приёмов XP (1) <ul><li>Короткий цикл обратной связи ( Fine scale feedback) </li></ul><ul><ul><li>Разработка через тестирование ( Test driven development) </li></ul></ul><ul><ul><li>Игра в планирование ( Planning game) </li></ul></ul><ul><ul><li>Заказчик всегда рядом ( Whole team, Onsite customer) </li></ul></ul><ul><ul><li>Парное программирование ( Pair programming) </li></ul></ul><ul><li>Непрерывный, а не пакетный процесс </li></ul><ul><ul><li>Непрерывная интеграция ( Continuous Integration) </li></ul></ul><ul><ul><li>Рефакторинг ( Design Improvement, Refactor) </li></ul></ul><ul><ul><li>Частые небольшие релизы ( Small Releases) </li></ul></ul>
  14. 16. Двенадцать основных приёмов XP (2) <ul><li>Понимание, разделяемое всеми </li></ul><ul><ul><li>Простота ( Simple design) </li></ul></ul><ul><ul><li>Метафора системы ( System metaphor) </li></ul></ul><ul><ul><li>Коллективное владение кодом ( Collective code ownership) или выбранными шаблонами проектирования ( Collective patterns ownership) </li></ul></ul><ul><ul><li>Стандарт кодирования ( Coding standard or Coding conventions) </li></ul></ul><ul><li>Социальная защищенность программиста ( Programmer welfare): </li></ul><ul><ul><li>40- часовая рабочая неделя ( Sustainable pace, Forty hour week) </li></ul></ul>
  15. 19. Проблемы <ul><li>«Программисты не тестируют!» </li></ul><ul><li>«А у меня на машине всё работает!» </li></ul><ul><li>«Настоящий мужик свои проблемы решает сам!» </li></ul><ul><li>Проблема ответственности </li></ul><ul><li>Проблема прозрачности </li></ul>
  16. 20. Чем раньше находится ошибка, тем она дешевле обходится <ul><li>Парное программирование </li></ul><ul><li>Ревью кода до коммита </li></ul><ul><li>Рефакторинг </li></ul>
  17. 21. Исправление ошибок и автоматизация <ul><li>Непрерывная интеграция </li></ul><ul><li>Юнит-тесты </li></ul><ul><li>Разработка через тестирование ( TDD) </li></ul><ul><li>Автоматизиро- ванное приёмочное тестирование </li></ul>
  18. 22. Проблемы управления качеством в Agile <ul><li>Недостаток мотивации </li></ul><ul><li>Недостаток дисциплины </li></ul><ul><li>Унаследованный код </li></ul><ul><li>… </li></ul>
  19. 23. Инструментарий <ul><li>Definition of Done - Что значит «ГОТОВО»? </li></ul><ul><li>Доска </li></ul><ul><li>Технический долг </li></ul><ul><li>Daily scrum, product backlog, нет назначений </li></ul>
  20. 24. Спасибо за внимание! “ Getting Real”, 37signals Фредерик Брукс «Мифический человеко-месяц или Как создаются программные системы» Том Демарко и Тимоти Листер «Человеческий фактор. Успешные проекты и команды» Джо Мараско «IT-проекты: фронтовые очерки»

×