Laws of Software Engineering

Laws of Software EngineeringA collection of principles and patterns that shape software systems, teams, and decisions.56 laws • Click any card to learn more All Architecture Teams Planning Quality Scale Design DecisionsTeamsConway’s LawOrganizations design systems that mirror their own communication structure.PlanningPremature Optimization (Knuth’s Optimization Principle)Premature optimization is the root of all evil.ArchitectureHyrum’s LawWith a sufficient number of API users, all observable behaviors of your system will be depended on by somebody.QualityThe Boy Scout RuleLeave the code better than you found it.DesignYAGNI (You Aren’t Gonna Need It)Don’t add functionality until it is necessary.TeamsBrooks’s LawAdding manpower to a late software project makes it…

Read more on Hacker News