arrow-left arrow-right brightness-2 chevron-left chevron-right circle-half-full facebook-box facebook loader magnify menu-down rss-box star twitter-box twitter white-balance-sunny window-close
Principles and Philosophy for Engineering Teams
2 min read

Principles and Philosophy for Engineering Teams

Software Engineering is not Computer Science,
Computer Science is not programming;

Good engineering practices improve predictability of costs and schedules,
provide early warning of problems,
support better management,
and reduce risk of overruns.

1. Camaraderie

  • We have mutual respect, trust and friendship.
  • We cover for each other.
  • We show appreciation and build each other up.

2. Non-Violent Communication

  • We use non-violent communication.
  • Observe: "What I hear you say...". We practice active listening. We hear, before we are heard.
  • Feelings: "...makes me feel... love/peace/confusion/anger". We share how we feel.
  • Needs: "because my needs for... order/focus/autonomy/silence/reflection/enjoyment". We are open about our needs.
  • Request: "...are you willing to...". We request for action.

3. Radical Candour

  • We show that we care personally.
  • We aren't afraid to challenge directly.
  • Both aren't mutually exclusive.

4. Technical Excellence

  • We do not ship poor code - it only slows us down.
  • We do not implement Dark Patterns.
  • We ensure inexpensive adaptability - ease of change.
  • We display fearless competence - aren't afraid of change.
  • We do not build rigid and fragile systems - we build flexible and robust systems.
  • We ensure stable productivity - do not optimise for the short term.
  • We understand the Agile development principles and strive for continuous improvement.
  • We understand the DevOps principles and automate repetitive work.

5. We are always ready

  • We value predictability of costs and schedules.
  • We understand that scope is flexible but schedules are not.
  • We make small iterations and release frequently.
  • We are ready to deploy at the click of a button - at short notice.

6. Extreme Ownership

  • Done and gets things smart - we take ownership for continuous improvement.
  • We never blame others - we blame the faulty process, then improve the faulty process.
  • We expect conflicts to arise and aim for swift resolution.
  • We do blameless postmortems.

Inspiration

Engineering Playbook - Obvious
The Scribe's Oath - Robert "Uncle Bob" Martin