Chapter 17: Common Agile Methodologies Flashcards
Agile Methodologies
Lean Product Development (зонтик над agile & kanban)
Знать 7 принципов:
1. Eliminate waste - хорошо выявляются через Value Chain и Value Stream Mapping . E.g.: wait time, incomplete work, extra processess, task switching, defects
2. Amplify learning (расширять) - постоянный фитбек и улучшение. E.g. - daily standup, iteration reviews/retrospectives.
3. Decide as late as possible
4. Deliver as fast as possible
5. Empower the team - trust, trainings
6. Build integrity in - строим не просто хороший продукт, но полезный для клиента. E.g. делаем “Personas” чтоб смотреть глазами клиента
7. See the whole - думать системно и видеть картину целиком
……………………….
Kanban
Отдельная карточка
……………………….
Scrum
Отдельная карточка
……………………….
eXtreme Programming (XP)
Отдельная карточка
……………………….
Crystal
Group of methods that the PM and team tailor to find a situation-specific solution.
См. картинку
……………………….
Dynamic Systems Development Method (DSDM)
More prevalent in the UK. 8 принципов (см. картинку)
……………………….
Scaled Agile Framework (SAFe)
Отдельная карточка
……………………….
Feature-Driven Development (FDD)
Focuses on feature delivery, starting from an overall model.
1. Develop an overall model
2. Build a feature list (аналог backlog-a)
3. Plan by feature
Popularized commulative flow diagrams and parking lot diagrams (one-page summaries of project progress)
—————— НЕ БЫЛО У РИТЫ ———-
Lean
Seven Wastes Of Lean (!): (1) Partially done work (2) Extra processes) (3) Extra features (4) Task switching (5) Waiting (info/resources) (6) Motion (много пыли, делай одно дело одновременно) (7) Defects (especially escaped, пропущенные на тесте)
Feature-Driven Development (FDD)
* Characteristics: (1) domain object modeling, (2) developing by feature, (2) individual class code ownership, (3) feature teams, (4) inspections, (5) configuration management, (6) regular builds, and (7) visibility of progress and results.
Agile Unified Process (AUP)
- .
Kanban
Не agile, а отдельная методология фактически
Знать для экзамена:
- Kanban (pull system) - Low-tech high-touch information radiator,
- Kanban - отдельная методология, может использоваться для ведения проектов, НЕ требует итераций. Но Kanban Boards используются в различых agile методологиях
- 5 принципов:
- Visualize the workflow - любой SH должен мочь увидеть статус в любое время
- Limit WIP (E.g. iteration backlog)
- Manage Flow - следуя первым двум принципам, и фокусируясь на незавершенных задачах до принятия в работу новых, ПМ делает manage flow
- Make process policies explicit - команда должна знать весь продукт и процесс хотя бы на HL уровне. Тогда будут понимать свой вклад и практиковать systems thinking
- Improve collaboratively - приветствуется и поддерживается, как и continuous improvement
Scrum
Знать - Scrum and Generic Agile Terms (like sprint vs iteration) - используются взаимозаменяемо на экзамене.
Виды Backlogs:
- Product - all the known product scope. Features are continuously added and removed as the customer makes decisions about product scope
- Project (не всегда используется, иногда заменяется на “Product Backlog”) - часть Product Backlog, которая будет реализована в конкретном проекте
- Sprint (iteration) - specific increment(-s), selected for the current/next sprint
Core Concepts
- Iterative and incremental development
- Dedicated team - одна и та же команда из проекта в проекта
- Cross-functional team - взаимозаменяемость
-
Pillars
- Transparency - creating a common understanding among all parties. E.g. -creating project/product vision, team charter, DoD.
- Inspection - examination of how the work if going on a regular bases, assessings how the team is progressings, needs for changes to continuously improvement
- Adaptation - making changes appropriate to the findings from inspection. E.g. of Inspection and Adaptation: Sprint Planning, Daily Scrum, Sprint review/retrospective
Daily Scrum (Daily Standup)
-
Вопросы для обсуждения:
- Что я сделал с последней встречи?
- Что буду делать сегодня?
- Есть ли impediments?
-
Правила:
- have something to report? -> must attend
- nothing to report? -> shouldn’t speak
- Talk is restricted to addressing the three questions
- Impediments taken up after the meeting
eXtreme Programming (XP)
-
Values:
- Simplicity - find the simplest thing that could possibly work (no unnecessary design or functional features)
- Communications - all members know what other members are working on, understand big picture
- Feedback - “fast failure”. E.g. delivering prototypes
- Courage - encourages collaboration and transparency. E.g. - pair programming and collective code ownership
- Respect
-
Practices
- Whole team - dedicated cross-functional team
- Planning games - release planning and iteration planning are called planning games
- Small releases - like other agile methodologies
- Simple design - helps enable frequent small releases
- Metaphor - use methaphors and analogies to make tech concepts understandable to customers
- Sustainable pace -overtimes are bad. Цель - sustainable velocity
- Customer tests - use customer description like “When I click the Menu, options X,Y,Z should appear”
- Test-driven development - the code has to be built to pass the tests
- Pair programming - one is coding, another is watching
- Collective code ownership - the team as a whole owns the product. Any pair of programmers can change any code
- Code standarts - строго следовать стандартам
- Continuous integration - постоянно интегрировать новый код в продукт, чтоб точно знать, что он работает
- Refactoring - making code more efficient by removing dublicate or unnecessary code, making design simplification
-
Roles . Team is collocated
- Coach (similar to the ScrumMaster)
- Customer
- Programmer
- Tester
Scaled Agile Framework (SAFe)
Using the agile mindset in a larger context
-
Особенности:
- Agile teams may use Scrum or another approach at the team level. Their work is coordinated under the SAFe Framework
- Каждая команда несет свой кусок delivery
- Agile Release Train (ART) - “team of teams” oversees the work of individual teams
- Release Train Engineer (RTE) - unique role
-
Four core values
- Alignment - all teams are aligned to orga strategy, goals etc. and their work is aligned
- Build-in quality - build to the same quality standarts to fit together (пришло из lean principle “build integrity in”)
- Transparency - honesty, openness, trust. А также understanding of goals and vision
- Program execution - execute in according to the plans and the framework. Must be trained, coached, understand their role
-
Level of work - each larger and more strategic that the prior
- Team - an agile team using Scrum or another agile approach
- Program - group of projects
- Essential SAFe - the team and program levels are combined into it
- Large Solution - a large, organization-wide solution
- Portfolio - programs, projects and operational work supporting strategic business goal
Agile Values (Manifesto), Principles, Mindset
Не зубрить, но понимать
Values
(правая часть тоже важна, но левая - наш фокус)
1. Individials And Interactions Over Processes and Tools (focus on people)
2. Working Software Over Comprehensive Documentation (barely sufficient, and just in time)
3. Customer Collaboration Over Contract Negotiation (we must to be flexible, контракты ограничивают это)
4. Responding to Change Over Following a Plan (we welcome change)
12 Principles
-
Customer Satisfaction
To satisfy customers through early and continuous delivery of products -
Welcome Changes
Welcoming changing req, even late in development to maximize the customer’s competitive advantage. -
Frequent Delivery
Deliver working software frequently, from a couple of week to a couple of months, with a preference for the shorter timescale -
Collocated Team
Business people and devs must work together daily throughout the proj -
Motivated Individuals
Build projects around motivated individuals. Give them the empowerment, environment, support, and trust needed to complete a task successfully. -
Face-to-Face Conversation
The most efficient and effective way to communicate in order to receive direct feedback and influence osmotic communication. -
Working Software
Working sofrware is the primary measure of progress -
Constant Pace
Sustainable development. Sponsors, devs, users should be able to maintain a constant pace indefinitely. -
Continuous Attention
…to technical excellence and good design enhances agility. -
Simplicity
The art of maximizing the amount of work not done - is essential -
Self-Organization
The best architectures, reqs and designs emerge from self-organizing teams -
Regular Reflection
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly
Agile Mindset Key Concepts
Mindset = не просто учим Values and Principles, а меняем образ мышления чтобы адаптировать эти принципы and ways of working
- Welcoming change - в отличие от plan-driven восприятия как “necessary evils”, agile - приветствует change
- Working in Small Value-added Increments
- Using Build and Feedback Loops - iteration review получают быстрый фитбек и changes. Нужно для того, чтобы не убежать далеко в сторону
- Learning through Discovery - экспериментировать важно для новых инновационных продуктов
- Fail Fast with Learning
- Value-driven Development - фокусировка на value, причем самом важное (80% фич клиентом не используется)
- Continuous Delivery - постоянно стремимся что-то показать клиенту, максимально быстро
- Continuous Improvement
Traditional and Agile Triangle of Constraints