Agile

Agile

Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.

 

Manifesto for Agile – click

In software development, agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end-user(s), adaptive planning, evolutionary development, early delivery, continual improvement, and flexible responses to changes in requirements, capacity, and understanding of the problems to be solved.

Agile software development values

Based on their combined experience of developing software and helping others do that, the seventeen signatories to the manifesto proclaimed that they 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 software development principles

The Manifesto for Agile Software Development is based on twelve principles

  1. Customer satisfaction by early and continuous delivery of valuable software. – наивысшим приоритетом признается удовлетворение заказчика за счёт ранней и бесперебойной поставки ценного программного обеспечения;
  2. Welcome changing requirements, even in late development. – изменение требований приветствуется даже в конце разработки (это может повысить конкурентоспособность полученного продукта);
  3. Deliver working software frequently (weeks rather than months) – частая поставка работающего программного обеспечения (каждые пару недель или пару месяцев с предпочтением меньшего периода);
  4. Close, daily cooperation between business people and developers – общение представителей бизнеса с разработчиками должно быть ежедневным на протяжении всего проекта;
  5. Projects are built around motivated individuals, who should be trusted – проекты следует строить вокруг заинтересованных людей, которых следует обеспечить нужными условиями работы, поддержкой и доверием;
  6. Face-to-face conversation is the best form of communication (co-location) – самый эффективный метод обмена информацией в команде — личная встреча;
  7. Working software is the primary measure of progress – работающее программное обеспечение — лучший измеритель прогресса;
  8. Sustainable development, able to maintain a constant pace – спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределённый срок;
  9. Continuous attention to technical excellence and good design – постоянное внимание к техническому совершенству и хорошему проектированию увеличивают гибкость;
  10. Simplicity—the art of maximizing the amount of work not done—is essential – простота как искусство не делать лишней работы очень важна;
  11. Best architectures, requirements, and designs emerge from self-organizing teams – лучшие требования, архитектура и проектные решения получаются у самоорганизующихся команд;
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly – команда регулярно обдумывает способы повышения своей эффективности и соответственно корректирует рабочий процесс.

Advantages of Agile model:

  1. Customer satisfaction by rapid, continuous delivery of useful software.
  2. People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
  3. Working software is delivered frequently (weeks rather than months).
  4. Face-to-face conversation is the best form of communication.
  5. Close, daily cooperation between business people and developers.
  6. Continuous attention to technical excellence and good design.
  7. Regular adaptation to changing circumstances.
  8. Even late changes in requirements are welcomed.

Disadvantages of Agile:

  1. In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
  2. There is lack of emphasis on necessary designing and documentation.
  3. The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
  4. Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.

Agile software development values

Based on their combined experience of developing software and helping others do that, the seventeen signatories to the manifesto proclaimed that they value

 

a. Product Backlog (PB)
 is an ordered (prioritized) list of all product features
 Higher ordered PB items are usually clearer and more detailed than lower ordered ones.
PB can contain business features, defects, technical improvements, non-functional features.
PB is a living artifact, it always changes.
 Product Owner is responsible for PB.
 Product Owner can get feedback from Stakeholders and Scrum Team to create/update PB.
 If multiple scrum teams are working on the same product, they should have one PB.
b. Sprint Backlog (SB)
SP is a list of tasks to be completed during the Sprint.
 During Sprint Planning meeting, Development Team selects items from Product Backlog to
achieve the Sprint Goal.
 Development Team can update the SP during the Sprint.
 Only the Development Team can SP during a Sprint.
c. Increment
 The Increment is the sum of all the Product Backlog items completed during a Sprint and the
value of the increments of all previous Sprints.
<!–EndFragm

а. Бэклог продукта (PB)
 представляет собой упорядоченный (приоритетный) список всех характеристик продукта
 Элементы ПБ более высокого порядка обычно яснее и детальнее, чем элементы более низкого порядка.
 ПБ может содержать бизнес-функции, дефекты, технические улучшения, нефункциональные функции.
 ПБ — живой артефакт, он всегда меняется.
 Владелец продукта отвечает за ПБ.
 Владелец продукта может получать отзывы от заинтересованных сторон и команды Scrum для создания/обновления PB.
 Если несколько скрам-команд работают над одним и тем же продуктом, у них должен быть один ПБ.
б. Бэклог спринта (SB)
 SP — это список задач, которые необходимо выполнить в течение Спринта.
 Во время совещания по планированию спринта команда разработчиков выбирает элементы из журнала невыполненных работ по продукту для
достичь цели спринта.
 Команда разработчиков может обновлять SP во время спринта.
 Только Команда Разработки может делать SP во время Спринта.
в. Увеличение
 Инкремент — это сумма всех элементов Бэклога Продукта, выполненных в течение Спринта, и
значение приращений всех предыдущих спринтов.

 

 

Dictionary

scrum-схватка

time-boxed-ограниченные по времени

terminate-отклонить,прекратить

Planning poker-планирование покера

enforce-обеспечивать соблюдение,проталкивать правила

SM-scrum master(скрам мастера)

PB-product backlog(бэклог продукта)

SB-sprint backlog(спринт бэклога)

Impediment– препятствие,помеха

Sprint Goal-цель спринта

Removing impediments- устранение проблем

product owner -владелец продукта

coaching the development team-контролирует как работает команда

leading and coaching the organization

burndown chart -диаграмма сгорания

stakeholder -заинтересованное лицо

retrospective-ретроспективный,обратный к

sprint restospective-спринт ретроспективный

Последовательность Фибоначчи

Vision statement– изложении,видение концепции

daily scrum – ежедневный скрам

done – критерии готовности

empicism-метод опыта

acceptance criteria-критерий принятия

crossfunctional team – кроссфункциональная команда

sprint review – обзор спринта

courage-храбрость

focus-сосредоточенность

self organizing-самоорганизация

commitment – ответственность

openness-открытость

sprint planning -планирвоание спринта

transperency- прозрачность

working agreement-рабочее соглашение

sprint retrospective -инспекция проделан работы

scrum team -команда

velocity-производительность

grooming backlog-уточнение бэклога

product backlog item -элемент бэклога продукта

sprint goal-цель спринта

product goal-цель продукта

 

 

 

Definition of “Done” is a checklist of items that must be completed to call an item is
finished;
 Definition of “Done” is used to assess when work is complete on the product Increment;
 Definition of “Done” enhances the transparency of increments;
 When many Development Teams are working on the same product, they should have the
same Definition of “Done”;
 During each Sprint Retrospective, Scrum Team can make changes on the Definition of
“Done” if necessary;
<!–EndF

 

Определение «Готово» — это контрольный список пунктов, которые необходимо выполнить, чтобы назвать пункт выполненным.
законченный;
 Определение «Готово» используется для оценки завершения работы над Инкрементом продукта;
 Определение «Готово» повышает прозрачность приращений;
 Когда несколько команд разработчиков работают над одним и тем же продуктом, они должны иметь
то же определение «Готово»;
 Во время каждой Ретроспективы Спринта Скрам-команда может вносить изменения в Определение
«Готово» при необходимости;

 

 

In software development, agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end-user(s), adaptive planning, evolutionary development, early delivery, continual improvement, and flexible responses to changes in requirements, capacity, and understanding of the problems to be solved.

Agile software development values

Based on their combined experience of developing software and helping others do that, the seventeen signatories to the manifesto proclaimed that they 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 software development principles

The Manifesto for Agile Software Development is based on twelve principles

  1. Customer satisfaction by early and continuous delivery of valuable software. – наивысшим приоритетом признается удовлетворение заказчика за счёт ранней и бесперебойной поставки ценного программного обеспечения;
  2. Welcome changing requirements, even in late development. – изменение требований приветствуется даже в конце разработки (это может повысить конкурентоспособность полученного продукта);
  3. Deliver working software frequently (weeks rather than months) – частая поставка работающего программного обеспечения (каждые пару недель или пару месяцев с предпочтением меньшего периода);
  4. Close, daily cooperation between business people and developers – общение представителей бизнеса с разработчиками должно быть ежедневным на протяжении всего проекта;
  5. Projects are built around motivated individuals, who should be trusted – проекты следует строить вокруг заинтересованных людей, которых следует обеспечить нужными условиями работы, поддержкой и доверием;
  6. Face-to-face conversation is the best form of communication (co-location) – самый эффективный метод обмена информацией в команде — личная встреча;
  7. Working software is the primary measure of progress – работающее программное обеспечение — лучший измеритель прогресса;
  8. Sustainable development, able to maintain a constant pace – спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределённый срок;
  9. Continuous attention to technical excellence and good design – постоянное внимание к техническому совершенству и хорошему проектированию увеличивают гибкость;
  10. Simplicity—the art of maximizing the amount of work not done—is essential – простота как искусство не делать лишней работы очень важна;
  11. Best architectures, requirements, and designs emerge from self-organizing teams – лучшие требования, архитектура и проектные решения получаются у самоорганизующихся команд;
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly – команда регулярно обдумывает способы повышения своей эффективности и соответственно корректирует рабочий процесс.

Advantages of Agile model:

  1. Customer satisfaction by rapid, continuous delivery of useful software.
  2. People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
  3. Working software is delivered frequently (weeks rather than months).
  4. Face-to-face conversation is the best form of communication.
  5. Close, daily cooperation between business people and developers.
  6. Continuous attention to technical excellence and good design.
  7. Regular adaptation to changing circumstances.
  8. Even late changes in requirements are welcomed.

Disadvantages of Agile:

  1. In case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle.
  2. There is lack of emphasis on necessary designing and documentation.
  3. The project can easily get taken off track if the customer representative is not clear what final outcome that they want.
  4. Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it has no place for newbie programmers, unless combined with experienced resources.

5 steps of Agile:

  • Define the work
  • Design – how to build the requirements
  • Build – make the design
  • Test the product and its function
  • Release – give the product to the customer

AGILE QUIZ(5/5)

  1. A blanket term describing several flexible project management approaches
  2. The release step
  3. A document that describes 4 highly valued concepts in agile
  4. Accomodate
  5. Define, design, build, test, release