-
Values, Practices & Principles
-
Values (bring purpose to practices)
- Respect
-
Courage
- Recognizing fears & taking effective actions
-
Feedback
- Short feedback cycles
-
Simplicity
- Look for simplest solution
-
Communication
- Motion without communication is not progress
- Importance to create a sense of team & effective cooperation
-
Practices (bring accountability to values)
-
Primary Practices
- Sit together
- Whole Team
-
Informative workspace
- Charts
- Stories or story cards on walls
- Categorised in Done, This week, This release, To be estimated, Future, etc
-
Energized work
- Work only as many hours as you can be productive
- InSight comes to the prepared, retested and relaxed mind
- Incremental improvements in work hours
- Manage time better
- Pair programming
-
Stories
- Give stories short names and a short prose or graphical description
- Write them on index cards
- Put them on a frequently passed wall
- Weekly cycle
- Quarter cycle
- Slack
- Ten minute build
-
Continuous Integration
- Integrate & test changes after no more than a couple of hours
- The longer you wait to integrate, the more it costs and the more unpredictable to cost becomes
- Test-first programming
-
Incremental Design
- Invest in the design of system every day
-
Corollary Practices
- Real customer involvement
- Incremental deployment
- Team continuity
- Shrinking teams
- Root cause analysis
- Shared code
- Code and tests
- Single code base
- Daily deployment
- Negotiated Scope contract
- Pay per use
-
Principles (domain specific guidelines)
Techniques to translate values into practices
- Traceability
(for development safely-critical systems)
- Humanity
-
Economics
- Solving highest priority business need first maximises the project value
- Time value of money, i.e. a dollar today is worth more than a dollar tomorrow
- S/w development is more valuables when it earns money sooner and spends money later
- Value of software as options for the future
-
Mutual Benefit
- Every activity should benefit all concerned
- Follow TDD/BDD rather than documentation
- Solve more problems than you create
- Search for practices that benefit me now, later and the customer as well
- Self-Similarity
-
Improvement
- Best is the enemy of good enough
(Mediocrity is preferable to waiting)
- Do not wait for prefection in order to begin
- Start an activity right away but refine the results over time
- Incremental design
-
Reflection
- Don't try to hide mistakes but expose them & learn from them
-
Diversity
- Teams need to bring together a variety of skills,
attitudes & perspectives to see problems and multiple ways of solving them
- Two ideas about a design or problem present an opportunity not a problem
-
Flow
- Continuous flow of activities rather than discrete phases
-
Opportunity
- Turn problems into opportunities for learning & improvement, not just survival
- Redundancy
-
Failure
- Fail to learn something valuable
- Try all options
- Failure isn't waste if it impacts knowledge
- Quality
- Baby steps
- Accepted Responsibility
-
Main Idea
- Stay aware
- Change
- Adapt
-
Whole Team
- Testers
- Interaction designers
- Architects
- Project managers
- Product managers
- Executives
- Technical writers
- Users
- Programmers
- Human resources
- Roles
-
Theory of Constraints
- If any system there is on constraint at a time
(occasionally two). To improve overall system
throughput first find the constraint; make sure
it is working full speed; then find ways of either
increasing some of the work onto non-constraints
or eliminating the constraints entirely.