Добрый день, дорогие подписчики! Agile. Этим словом любят «освещать» много требований в вакансиях на должность тестировщиков/разработчиков. В данной статье мы попытаемся разобраться: что это такое и с чем его едят. Agile (гибкая методология разработки) – это концептуальный подход к разработке программного обеспечения, суть которого заключается в развитии коммуникаций внутри команды, итерационный подход к разработке, прямое и постоянное общение с заказчиком. Это позволяет минимизировать количество рисков, безболезненно вносить изменения в задачи и продуктивно использовать человеческие ресурсы и время. Agile-манифест гласит: • Личности и их взаимодействие важнее, чем процессы и средства. • Работающее ПО – важнее, чем исчерпывающая документация. • Сотрудничество с заказчиком – важнее обязательств по контракту. • Реагирование на изменения - важнее, чем следование плану. Данная методология содержит в себе несколько подходов, с основными из которых, мы сегодня познакомимся. Это: Scrum, Kanban и XP. Scrum. Это самая популярная методология гибкой разработки, т.к. ее суть проста. Scrum акцентирует свое внимание на качественном контроле процесса разработки. Суть методологии заключается в хорошей самоорганизованности команды, которая постоянно взаимодействует с заказчиком, выпуская программный продукт на каждой итерации разработки. В этом подходе есть 3 роли: • Scrum Master. • Product Owner. • Team. Scrum Master - главное действующее лицо методологии. Является главным организатором, ведущим и судьей единолично во всех Scrum-процессах. От него зависит успех проекта. Обычно, ScrumMaster – это менеджеры проекта или тимлид. Product Owner – лицо, представляющее интересы заказчика. Принимает окончательные решения для команды (поэтому это один человек), но не может давать задания кому-либо персонально. Также, является связной структурой между заказчиком и командой. Team - это, как Вы уже догадались, команда. В Scrum-методологии команда самоорганизуется и самоконтролируется. В нее входят люди с разными профессиональным навыками (разработчики, тестировщики, аналитики, менеджеры). Организация команды в Scrum - очень гибкий процесс, т.к. задачи и роли распределяются в зависимости от ситуации, что позволяет реагировать на любые задачи и проблемы наиболее эффективно. Scrum – очень интересная и обширная тема, поэтому более подробно ее рассмотрим в следующих статьях. Kanban. Этот термин пришел к нам из далекой и таинственной Японии, с производственной системы Toyota. Главными принципами работы Kanban являются: • Визуализация потока работы – разработка делится на подробные пункты, которые выписываются на карточки и крепятся к стене. Стена разбита на столбцы, каждый из которых соответствует определенному этапу разработки. Таким образом, мы видим на каком этапе находится каждое задание. • На каждом этапе разработки необходимо ограничивать число незавершенных пунктов. • Измерение времени выполнения каждой задачи. Это позволит в будущем четко определять необходимое количество времени для каждой задачи и максимально оптимизировать процесс выполнения задач. XP. Extreme Programming (экстремальное программирование) – еще один подход в гибкой методологии. Хорошо подходит для небольших и средних команд разработчиков, работающих в условиях неопределенных условий и часто меняющихся задач. В команде разработчиков должно быть хорошо развито общение, как между членами команды, так и с заказчиком. Члены команды должны уважать друг друга, доверять и быть смелыми при реагировании на любые изменения. Так же, как и в Scrum, в XP разработка ведется достаточно короткими итерациями (2-3 недели), при завершении которой, команда должна представить необходимый рабочий функционал. Решения принимаются самые простые, т.к. у команды есть жесткие сроки выполнения заданий, но это сопровождается весьма большим количеством рисков. Сначала реализуется минимальный функционал, который, в течение итерации, постоянно увеличивается. По этим причинам архитектура приложений также проектируется не сложная. Особое внимание уделяется коду программы. Программисты работают попарно: один пишет – другой проверяет, что позволяет сразу создавать «правильный» код. Также, уделяется внимание рефакторингу - оптимизации написанного кода. А доступ ко всему коду имеют все члены команды и каждый может вносить свои изменения (поэтому важно доверие в команде). Программисты должны работать по 8 часов в день, не больше, т.к. сверхурочное время будет означать наличие проблем на данном этапе. Тестирование в XP играет очень важную роль. Тесты пишутся до написания кода, и именно тесты определяют код, а не наоборот. Пишутся они также программистами. Постоянно используется модульное тестирование (тестирование каждого модуля приложения) и регрессионное тестирование, что позволяет контролировать качество продукта на каждой итерации. Все эти методы очень интересны и имеют свои особенности. С каждым из них мы еще познакомимся в следующих статьях, так как каждый тестировщик, и разработчик обязан знать обо всех методиках разработки программного обеспечения.
QALight
AGILE: SCRUM, KANBAN, XP
Добрый день, дорогие подписчики!
Agile. Этим словом любят «освещать» много требований в вакансиях на должность тестировщиков/разработчиков. В данной статье мы попытаемся разобраться: что это такое и с чем его едят.
Agile (гибкая методология разработки) – это концептуальный подход к разработке программного обеспечения, суть которого заключается в развитии коммуникаций внутри команды, итерационный подход к разработке, прямое и постоянное общение с заказчиком. Это позволяет минимизировать количество рисков, безболезненно вносить изменения в задачи и продуктивно использовать человеческие ресурсы и время.
Agile-манифест гласит:
• Личности и их взаимодействие важнее, чем процессы и средства.
• Работающее ПО – важнее, чем исчерпывающая документация.
• Сотрудничество с заказчиком – важнее обязательств по контракту.
• Реагирование на изменения - важнее, чем следование плану.
Данная методология содержит в себе несколько подходов, с основными из которых, мы сегодня познакомимся. Это: Scrum, Kanban и XP.
Scrum. Это самая популярная методология гибкой разработки, т.к. ее суть проста. Scrum акцентирует свое внимание на качественном контроле процесса разработки. Суть методологии заключается в хорошей самоорганизованности команды, которая постоянно взаимодействует с заказчиком, выпуская программный продукт на каждой итерации разработки.
В этом подходе есть 3 роли:
• Scrum Master.
• Product Owner.
• Team.
Scrum Master - главное действующее лицо методологии. Является главным организатором, ведущим и судьей единолично во всех Scrum-процессах. От него зависит успех проекта. Обычно, ScrumMaster – это менеджеры проекта или тимлид.
Product Owner – лицо, представляющее интересы заказчика. Принимает окончательные решения для команды (поэтому это один человек), но не может давать задания кому-либо персонально. Также, является связной структурой между заказчиком и командой.
Team - это, как Вы уже догадались, команда. В Scrum-методологии команда самоорганизуется и самоконтролируется. В нее входят люди с разными профессиональным навыками (разработчики, тестировщики, аналитики, менеджеры). Организация команды в Scrum - очень гибкий процесс, т.к. задачи и роли распределяются в зависимости от ситуации, что позволяет реагировать на любые задачи и проблемы наиболее эффективно.
Scrum – очень интересная и обширная тема, поэтому более подробно ее рассмотрим в следующих статьях.
Kanban. Этот термин пришел к нам из далекой и таинственной Японии, с производственной системы Toyota. Главными принципами работы Kanban являются:
• Визуализация потока работы – разработка делится на подробные пункты, которые выписываются на карточки и крепятся к стене. Стена разбита на столбцы, каждый из которых соответствует определенному этапу разработки. Таким образом, мы видим на каком этапе находится каждое задание.
• На каждом этапе разработки необходимо ограничивать число незавершенных пунктов.
• Измерение времени выполнения каждой задачи. Это позволит в будущем четко определять необходимое количество времени для каждой задачи и максимально оптимизировать процесс выполнения задач.
XP. Extreme Programming (экстремальное программирование) – еще один подход в гибкой методологии. Хорошо подходит для небольших и средних команд разработчиков, работающих в условиях неопределенных условий и часто меняющихся задач. В команде разработчиков должно быть хорошо развито общение, как между членами команды, так и с заказчиком. Члены команды должны уважать друг друга, доверять и быть смелыми при реагировании на любые изменения.
Так же, как и в Scrum, в XP разработка ведется достаточно короткими итерациями (2-3 недели), при завершении которой, команда должна представить необходимый рабочий функционал. Решения принимаются самые простые, т.к. у команды есть жесткие сроки выполнения заданий, но это сопровождается весьма большим количеством рисков. Сначала реализуется минимальный функционал, который, в течение итерации, постоянно увеличивается. По этим причинам архитектура приложений также проектируется не сложная.
Особое внимание уделяется коду программы. Программисты работают попарно: один пишет – другой проверяет, что позволяет сразу создавать «правильный» код. Также, уделяется внимание рефакторингу - оптимизации написанного кода. А доступ ко всему коду имеют все члены команды и каждый может вносить свои изменения (поэтому важно доверие в команде). Программисты должны работать по 8 часов в день, не больше, т.к. сверхурочное время будет означать наличие проблем на данном этапе.
Тестирование в XP играет очень важную роль. Тесты пишутся до написания кода, и именно тесты определяют код, а не наоборот. Пишутся они также программистами. Постоянно используется модульное тестирование (тестирование каждого модуля приложения) и регрессионное тестирование, что позволяет контролировать качество продукта на каждой итерации.
Все эти методы очень интересны и имеют свои особенности. С каждым из них мы еще познакомимся в следующих статьях, так как каждый тестировщик, и разработчик обязан знать обо всех методиках разработки программного обеспечения.