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


Agile @ Spotify

  1. Squad - team
  2. Tribe - stam (squad grouped by a business capability)
  3. Chapter - Knowledge sharing & personal development (inside a tribe a cross squads...)
  4. Guild - skrå - area of interest inside the company a cross tribes

Org Patterns


More on Software Development


Architecture


Design


Requirements


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

  1. Componentization via Services
  2. Organized around Business Capabilities
  3. Products not Projects
  4. Smart endpoints and dumb pipes ...

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
  • Query - I want to know something

Kanban

Scrum


Book

Videos