Agile - unders/mywiki GitHub Wiki
Agility - What to do
Apply this 4 steps:
- Find out where you are
- Take small steps towards your goal
- Adjust your understanding based on what you learned
- Repeat
And of course, you have to apply this recursively all the way down to everything you do; from the highest organisational structure stuff and right down to how you name your variables.
Agility - How to Do It
- When faced with two or more alternatives that deliver roughly the same value, take the path that makes future changes easier
The fix
Use one of Kent Beck most important values:
Courage
- Stand up to fear-mongers
- You already have the values - use them to create practices
- Get feedback, refine, repeat...
Note
- Agile is not what you do.
- Agility is how you do it.
Let’s develop with agility
- You aren’t an agile programmer—you’re a programmer who programs with agility.
- You don’t work on an agile team—your team exhibits agility.
- You don’t use agile tools—you use tools that enhance your agility.
Source
- Dave Thomas @ GOTO Conference 2014
- Agile is Dead (Long Live Agility)
- Principles - Manifesto for Agile Software Development
Agile @ Spotify
- Squad - team
- Tribe - stam (squad grouped by a business capability)
- Chapter - Knowledge sharing & personal development (inside a tribe a cross squads...)
- Guild - skrå - area of interest inside the company a cross tribes
Org Patterns
More on Software Development
- E Manifesto - Software Development
- SOLID Principles
- gopresentation.slide
- Architecture
- Architectue - John Lewis IT Software Engineering Principles
- Go Proverbs
- Links about good software development
- Law of Demeter
Architecture
Design
Requirements
- Agile Requirements Modeling
- Requirements Envisioning: An Agile Core Practice
- Business Rules
- Technical (Non-Functional) Requirements
- Constraints
- Essential (Abstract) Use Cases: An Agile Introduction
- System Use Cases: An Agile Introduction
- UML 2 Use Case Diagrams: An Agile Introduction
- Personas
Testing
Microservices
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. -- Melvyn Conway, 1967
- Componentization via Services
- Organized around Business Capabilities
- Products not Projects
- Smart endpoints and dumb pipes ...
- Microservices Resource Guide
- VIDEO: YOW! Nights March 2016 Martin Fowler - Microservices
- microservices
Component
- independently replaceable
- independently upgradable
How to achieve this
- via a library
- via a service
API
Reason to send a message
- Event - Something has happened
- data change
- deadline passing
- or anything else that is relevant in the domain
- Command - I want the system to do something
- Request a side effect
- change application state
- send email
- Exactly one destination
- OK / NOK reply
- Maybe some data
- Request a side effect
- Query - I want to know something