====== The Five Ideals ====== The Five Ideals summarized from the book "The Unicorn Project". ---- ====== Locality and Simplicity ====== * Development teams should be able to make changes to their code base and deploy, without impacting or coordinating with others. * Decouple applications and create abstractions to achieve locality. * Simplify code bases through abstractions as well. * The easier the code is to reason about, the easier changes are, and the less it breaks. ---- ====== Focus, Flow, Joy ====== * Remove distractions, dependencies, and other road blocks that prevent developers from doing development work. * With the above removed, developers will be able to focus and enjoy the work, producing better code. ---- ====== Improvement of Daily Work ====== * Build time into projects/schedules to allow teams to address technical debt and architecture. * These are the brittle things that break in an application/architecture first. * Improve anything that impedes a developer from coding. ---- ====== Psychological Safety ====== * Teams should be able to talk about bugs/problems in an application or architecture, without blame/backlash. * Blame-less postmortems after a production down event or major bug are critical to implementing actual fixes and preventing the same thing from happening. * This should be a learning experience for everyone, not a blame session. ---- ====== Customer Focus ====== * Core focus - everything a customer is willing to pay for. * Example: Web services, APIs, databases, storage. * Context focus - everything else. * Example: Any system that supports employees. (such as HR systems) * While context is important, don't let it take over focus from core customer concerns. ----