QA Engineer
  • Введение
  • FAQ
    • Качества и навыки, которыми нужно обладать тестировщику?
    • Что должен знать и уметь Midle? Что спросят на собеседовании?
    • Как происходит процесс найма?
    • Как проходить собеседование?
    • Ошибки в работе у начинающих тестировщиков
    • Как взаимодействовать с коллегами?
  • МОДУЛЬ 1. ТЕОРИЯ ТЕСТИРОВАНИЯ
    • Общее понимание тестирования
  • Виды тестирования
    • Функциональное тестирование
    • Нефункциональное тестирование
    • Тестирование связанное с изменениями
  • Уровни тестирования
  • Методы тестирования
    • Black box testing
    • White Box Testing
    • Grey box testing
  • Тест-Дизайн
  • Тестовая документация
    • Требования
      • Тестирование требований
    • Тест-план
    • Чек-лист
    • Тест-кейс
    • Баг-репорт
  • ЗАДАНИЕ. ТЕСТ
  • МОДУЛЬ 2. API (BackEnd)
    • API. Что это?
  • Архитектуры ПО
    • Монолитная архитектура
    • Микросервисная архитектура
  • Брокеры сообщений
    • Kafka
  • Клиент-серверное взаимодействие
  • Тестирование API (BackEnd)
    • REST и SOAP
    • jRPC
    • JSON
    • XML
    • Протоколы
    • Коды состояния ответов HTTP(S)
    • Логирование (Logs)
  • Swagger
  • Postman
  • ЗАДАНИЕ. ТЕСТИРОВАНИЕ API
  • МОДУЛЬ 3. FRONTEND и WEB
    • Теория FrontEnd
    • Элементы интерфейса сайта
  • Верстка
  • Основы HTML
  • CSS
  • Сети и около них
    • Идентификация ресурсов в сети (Identifying resources on the Web)
    • Веб-сервис (WS - Web service)
    • Сокет/веб-сокет (socket/websocket)
    • Рендеринг в интернете (Rendering on the Web)
  • DevTools
    • Network
    • Application
    • Source
    • Elements
    • Console
    • Performances
  • Кроссбраузерность
  • Сетевые данные
    • Сache
    • Сookie
  • МОДУЛЬ 4. SDLC и STLC
    • Жизненный цикл разработки SDLC
    • Жизненный цикл тестирования STLC
    • Модели разработки ПО
      • «V-Model»
      • «Waterfall Model» (каскадная модель или «водопад»)
      • «Agile Model» (гибкая методология разработки)
    • Agile
    • Scrum
    • Подходы к разработке/тестированию
  • МОДУЛЬ 5. БАЗЫ ДАННЫХ.
    • Теория
    • Типы БД
      • Реляционные
      • Нереляционные
    • SQL. ОСНОВЫ
      • Работа с Select * From
      • JOIN
    • Задание
  • ALL SOFT (Ознакомление)
    • Jira и Confluence
    • SOAP UI
    • Git
    • Kibana
    • Docker
    • Jenkins
Powered by GitBook
On this page
  • Типы Agile-методологий
  • Как устроена Agile-команда
  • Как внедрить Agile-подход
  • Коротко о главном
  1. МОДУЛЬ 4. SDLC и STLC
  2. Модели разработки ПО

«Agile Model» (гибкая методология разработки)

Previous«Waterfall Model» (каскадная модель или «водопад»)NextAgile

Last updated 1 year ago

Agile — это группа методик для гибкого управления проектами в команде разработки. Рабочий процесс при таком подходе разбивается на небольшие временные промежутки, их еще называют спринтами (от английского sprint — бег на короткую дистанцию) или итерациями. Во время каждого спринта команда разработки создает часть продукта, которую можно протестировать и оценить. Такой подход позволяет вносить существенные изменения в проект, даже когда разработка в самом разгаре.

Например, команда уже спроектировала интерфейс нового онлайн-кинотеатра, в котором есть плеер, загружен каталог фильмов, есть подборки по истории просмотра пользователей и даже технология распознавания актеров по лицам. Когда начинается новая итерация, выясняется, что пользователям не хватает возможности распознавания саундтреков прямо внутри плеера, потому что во время просмотра фильма не хочется открывать Shazam. Уже на следующем этапе разработки команда начинает разработку и внедрение этой функции.

Принципы работы Agile — это полная противоположность другому подходу в разработке — Waterfall (водопад). В ней работа над продуктом строится по другой логике:

  • составление полного технического задания;

  • проектирование;

  • разработка;

  • тестирование;

  • итоговый результат.

Процессы разработки в этой методологии не получится откатить назад, команда возвращается к предыдущим этапам, только если что-то работает неправильно и работает по техническому заданию. Из-за этого проблемы в работе продукта (приложения, сайта, ПО) выявляются довольно поздно — только на этапе тестирования, — а на выходе может получиться продукт, который совершенно не соответствует ожиданиям клиента или работает не так, как нужно.

Типы Agile-методологий

Agile — это общее название нескольких методик, объединенных идеей гибкости работы. В эту группу входят разные методы, например:

  • Scrum. Работа в этой методике строится по итерациям. Все задачи, необходимые для завершения продукта, формируются в специальный перечень — бэклог, а главная роль отведена заказчику, который определяет вид и функционал продукта.

  • Kanban. В нем упор сделан на визуализации задач на досках и оптимизации рабочего процесса. Kanban-команды стремятся сократить время на реализацию проекта и повысить эффективность.

  • Extreme Programming основывается на таких практиках, как парное программирование, разработка через тестирование и непрерывная интеграция, то есть постоянное добавление новых элементов в основной проект.

Принципы Agile

Agile-подход к разработке строится на нескольких принципах:

  • Люди и взаимодействие важнее процессов и инструментов. Поэтому методология подходит как небольшим стартапам, так и крупным корпорациям. Не важно, где происходит общение и ставятся задачи — в чате Telegram или в таск-менеджере, — главное, чтобы все участники процесса понимали цели проекта и знали, что происходит на текущем этапе.

  • Работающий продукт важнее исчерпывающей документации. Благодаря этому принципу разработка Agile начинается быстрее — уже на первых этапах вместо составления объемного технического задания создаются и тестируются прототипы, на которых проверяются гипотезы.

  • Сотрудничество с заказчиком важнее согласования условий контракта. Работа по методологии Agile предполагает активное участие клиента, поэтому она не подходит заказчикам, которые не готовы вникать в работу, уделять со своей стороны достаточно времени проекту и экспериментировать.

  • Готовность к изменениям важнее следования первоначальному плану. Этот принцип — фундамент гибкой разработки. Невозможно идеально распланировать все заранее, а некоторые светлые идеи приходят именно в процессе работы над продуктом. Agile позволяет концентрироваться на задачах, которые важны сейчас, и не тратить ресурс на продумывание двух-трех шагов наперед.

Как устроена Agile-команда

Работать по методологии Agile значит отказаться от стандартных принципов управления, потому что это не способ руководства, а способ взаимодействия. Это означает, что каждый участник команды имеет равнозначные позиции относительно других. Внутри проектов распределяются роли, которые берут на себя сотрудники из разных отделов. В сфере IT самые необходимые роли в Agile-проекте — это:

  • product owner;

  • project-менеджеры;

  • UX-дизайнеры;

  • технические писатели;

  • разработчики (тип разработчика зависит от профиля проекта);

  • тестировщики.

При этом даже человек на должности product owner формально не является руководителем, он просто берет на себя ответственность за формулировку требований к продукту: доносит до остальной команды видение того, как должен выглядеть продукт и каким функционалом он должен обладать.

Читайте также: Главные профессии в IT

В Agile-командах важна кросс-дисциплинарность. Специалистам недостаточно разбираться только в своей области, для продуктивного взаимодействия необходимо понимание того, как организована работа коллег. Если дизайнеры понимают, как рассчитать объем работы разработчиков, а разработчики без объяснений понимают, для чего в макете нужны определенные элементы, команда работает эффективнее.

По методологии Agile организована работа, например, в Netflix. Огромный коллектив стримингового сервиса разделен на множество команд, и у каждого сотрудника есть своя сфера ответственности, качество которой он обеспечивает. Каждая команда сосредоточена на решении проблем в своей предметной области, но, если нужны дополнительные инструменты, общие для нескольких команд разработчиков, начинается сотрудничество.

Применение методологии Agile в Netflix

Как внедрить Agile-подход

При переходе на новую модель компании могут допустить ошибки:

  • не провести обучение сотрудников;

  • не учесть специфику разработки;

  • не учесть финансовый аспект перестройки компании;

  • использовать только часть методов, которые сами по себе работать не будут.

Чтобы внедрить Agile, можно постепенно тестировать методологию на небольших группах. Сначала запускается первая волна Agile-команд, их работа оценивается с точки зрения финансовых показателей, эффективности и вложений в реорганизацию. Если по всем показателям прослеживается положительная динамика, то эксперимент можно продолжать.

Важно помнить, что реорганизация затронет несколько сторон, поэтому обучающую и подготовительную работу нужно будет проводить не только с командой, но и с клиентами. Бывает, что некоторые не готовы к тому уровню вовлеченности, которого требует Agile.

Коротко о главном

  • Agile — группа методик для гибкого управления проектами в команде разработки.

  • Рабочий процесс при таком подходе разбивается на небольшие временные промежутки, их еще называют спринтами или итерациями.

  • Scrum — методика, в которой все задачи, необходимые для завершения продукта, формируются в специальный перечень — бэклог.

  • Kanban — методика, в которой упор сделан на визуализации задач на досках и оптимизации рабочего процесса.

  • Extreme Programming основывается на таких практиках, как парное программирование, разработка через тестирование и непрерывная интеграция.

  • Agile-подход к разработке строится на принципе «Люди и взаимодействие важнее процессов и инструментов».

  • В Agile-командах важна кросс-дисциплинарность.

  • Чтобы внедрить Agile, можно постепенно тестировать методологию на небольших группах.

Agile-разработка
Пример применения методологии Agile