Categorías: Todo - software - excellence - design - interaction

por Alex Ostreiko hace 2 años

110

Agile Manifesto

The Agile Manifesto emphasizes several core principles, including the importance of working software as the main indicator of progress, and how solving customer problems is key. It values individuals and interactions over processes and tools, highlighting the significance of team dynamics and collaboration in creating effective solutions.

Agile Manifesto

Agile Manifesto

Principle 12

Reflect and adjust at regular intervals
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly

then tunes and adjusts its behaviour accordingly

empowers team

in Scrum implemented as retro resolutions

the "adapt" part of inspect-adapt

the team reflects on how to become more effective

the team, not the manager

continuous improvement

retrospectives

the "inspect" part of inspect-adapt

requires transparency, which requires safety

At regular intervals

product management is a continous effort

focus on team getting skills, not on a short-term project

iterative everything

plan to ride a bike around the building

iterative, continuous post mortems/lessons learned

Principle 11

The best architectures, requirements, and designs emerge from self-organizing teams

from self-organizing teams

not order-takers

escape room

must collaborate to make sense of multiple clues

similarity to emergencies when the whole team works together

quote from Gen. Patton

“Never tell people how to do things. Tell them what to do and they will surprise you with their ingenuity.”

have all the skills to deliver the complete solution

motivated

self-directing

autonomous

trust

flat

emerge

shared purpose

for a solution to emerge, there needs to be alignment

each User Story tacitly points towards the goal

shared ownership

shared responsibility

your opinion matters

evolutionary

experimentation

incremental

The best architectures, requirements, and designs

involved in every aspect (phase) from the beginning

solutions

ideas

Principle 10

Simplicity--the art of maximizing the amount of work not done--is essential
maximize the stakeholders' return on investment
focus on goals

is essential

essence of what creates value

the art of maximizing the amount of work not done

output vs outcome

pathological

looking busy

gold plating

finish sooner and get the feedback faster

then iterate

what is unnecessary?

Simplicity

clarity

understood by all

easily communicated

no obfuscation

Principle 9

Continuous attention to technical excellence and good design enhances agility
quality & speed

high quality allows to go faster

enhance agility

necessary to react to change

good design

product management

technical excellence

technology is changing

sharpen the saw

Continuous attention

always learning

safe to be a novice

state of flow

ideal time

Principle 8

Maintain a sustainable pace
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain constant pace indefinitely.

indefinitely

game theory

finite vs infinite games

we want to stay in business indefinitely

regardless of a "phase"

ther are no phases

should be able to maintain a constant pace

explore vs exploit

allocate time for

rest

learning

consider accumulation of tech debt

variability

flow

The sponsors, developers, and users

harmony

cross-functional

systemic view

optimizing the whole

Agile processes promote sustainable development

respect for people

understanding needs of stakeholders

social responsibility for teams

overtime

burnout

Principle 7

Working software is the primary measure of progress

is the primary measure of progress

matter

outcome

Done work

don't matter

acting busy

output

number of tickets

hours

effort

Working software

Iteration Review

Acceptance tests

plans and promises don't count

delivered functionality

solved problems

the only thing that really counts is that problems are resolved for customers

Principle 6

Face-to-face conversation is the most efficient and effective method of conveying information
The most efficient and effective way of conveying information to and within a development team is face-to-face conversation

is face-to-face conversation

whiteboard

full bandwidth

93% non-verbal

details about future direction

to and within a development team

frequent and efficient validation

effective communication with stakeholders

understanding and alignment with business

The most efficient and effective method of conveying information

ownership and responsibility to communicate well

active role in creating and directing information

bring authority of decision-making to information

Principle 5

Trust motivated individuals to do their jobs
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
intrinsic motivation factors

Purpose

Mastery

Autonomy

Plot Productivity by Fear/Indifference - Love/Concern

x/y axes

inverse

productivity

mutual vs individual responsibility

love

concern

"too soft"

ignore bad behaviour

allow people to get away with stuff

neglect is not love

commitment low/high not related to love

low commitment leads to permissiveness

logical flaw

agape ~ charity

y

commitment

mutual responsibility (hi love)

compliance (hi fear)

x

fear & indifference vs love & safety

Marc Bless

Drive-driven personality

Scott Ambler (DA)

trust them to get the job done

focus on why and what, the team will focus on how

aligned on the objectives

and support they need

equipment

training

cross-functional teams

The environment

recognize need for flow

flow of work

psychological

healthy vs unhealthy climate

behaviour is a function of the system, not individuals

e.g. Stanford prison experiment

Give them

supporting structure vs reporting structure

respect for the people

Build projects around motivated individuals

help people grow

intrinsic motivation is stronger

find passionate people who love their jobs

Principle 4

Business people and developers must work together
Business people and developers must work together daily throughout the duration of the project
duration of the projects
daily

good communication allows to manage threats and opportunities

work together

break silos

avoid feature factory

savoir la direction a prendre

developers

everyone involved in development of the product

business people

BA and PO

translate from/to the business language

students

clients

stakeholders

Principle 3

Deliver working software frequently
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for shorter scale
OODA loop

observe orient decide act

couple of weeks

easy to experiment

easy to adjust

frequently

feedback

working software

tangible

quality

mettre en production ce que l'on fait

plus besoin de travailler

on ne le saura pas jusqu'au c'est deploye

Deliver

have something finished

Principle 2

Welcome changing requirements
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
discussion

LRM

welcoming change requires modern dev techniques

e.g.

agility

automated testing

get feedback form customers

development processes must be flexible to change direction

Sprint Reviews with guests allow to pivot

Principle 1

Deliver early and often to satisfy the customer
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
dissect

valuable software

prioritize

continuous delivery

maintain relationship

early delivery

rapid feedback

customer

personas

user of product

PO

satisfy

DoD

highest priority

Our

agile team

comments

Agile Manifesto Value 4

Responding to change over following a plan
OODA Loop

Act

Decide

Orient

Observe

The VUCA World

Ambiguous

Complex

Uncertain

Volatile

travailler sur des taches qui ne sont plus important
reactif rapidement selon les besoins du client qui changent tout le temps

Agile Manifesto Value 3

Customer collaboration over contract negotiation
not a zero sum game
involve customer in the process

visuals can help understand requirements better

mockups that we can show and give feedback

e.g. provide a prototype to discover requirements

involve customer more during the process
it's good to discuss reqirements

find better ways

contracts do not replace communication
enable collaboration
what if you discover a better way
list of requirements over discussion with stakeholders to understand requirements

Agile Manifesto Value 2

Working software over comprehensive documentation
understanding the why helps to create the right product
we have to have balance

good documentation can help to avoid re-learning

focus on value

customers pay for working products, not for documentation

the right amount of documentation where needed, when needed
context

people thought that analysis must be done 100% before work begins

documentation was too complicated before starting to code

Agile Manifesto Value 1

Individuals and interactions over processes and tools
team creates and adjusts the process to help it to work better
both go hand in-hand
teams vs group
tooling is secondary

what is important is that people can work together well

reality changed: bring your whole self to work
ideas between individuals will help create better solutions for clients