Fundamentals

Fundamentals of software architecture for big data

All problems in computer science can be solved by another level of indirection - David Wheeler

Rapid application development: deploy first, test second, develop third. Do all this daily. Cultivate environment where mistakes are cheap and encouraged. Cadence should be daily.

Stand ups should be about coordination and exploring pivot opportunities.

Stand up to noon should be sacred focus time. After work is sacred replenish time. This gets things done quickly and is sustainable and predictable. Goal is to "go fast forever".

Small teams - 4 to 8 people Small stories is key - great engineers force stories into small chunks against all push back.

Test as early as possible. Red, green, refactor.

CI - run tests every time you push code. CD - deploy built and tested artifact at the push of a button.

Recommended: Extreme Programming Explained, Kent Beck

Variables:

  • cost
  • time
  • quality
  • scope

Flow of work, fast feedback loops, culture of experimentation and ownership

There's no silver bullet

no silver bullet

Software is not Ford cars, the essence is not duplicated and each project has unique complexity.

Nothing has moved the needle of productivity by an order of magnitude in the last decade.

Topics