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.
- 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.