KISS
KeepItSimpleStupid
Strive for clear, concise, and easy to understand & to use solutions. Avoiding unnecessary complexity will make Ur system more robust, easier to maintain & to extend
If it looks like a duck, quacks like a duck, but needs batteries - U have the wrong abstraction
“Give me six hours to chop down a tree and I will spend the first four sharpening the axe” – Abraham Lincoln 🪓
KISS
KeepItSimpleStupidStrive for clear, concise, and easy to understand & to use solutions. Avoiding unnecessary complexity will make Ur system more robust, easier to maintain & to extend
DRY
Don’tRepeatYourselfAvoid constant copy-paste. Create reusable entities to reduce redundancy
YANGI
YouAreNotGonnaNeedItDon’t implement features or functionalities unless there’s a clear need for them. This reduces the system complexity and maintenance overhead
WOMBAT
WasteOfMoneyBrainsAandTimeAvoid projects that drain resources without yielding the desired results
SMART
SpecificMeasurableAchievableRelevantTime boundCreate effective goals to increase the chances of success
SYSTEMS
SaveYourSelfTimeEnergyMoneyStress”The Purpose Of a System Is What It Does” should be understandable by observing its actual behavior, rather than just its intended purpose
INVEST
IndependentNegotiableValuableEstimableSmallTestableEnsure that tasks(stories) are clear & actionable. It’ll contribute to the overall project goals
FOCUS
FollowOneCourseUntilSuccessApproach work strategically, prioritize effectively, staying focused on achieving Ur goals
MILE
MaximumImpactMinimumEffortMaximize the impact by leveraging existing resources or via minimizing the effort required. Focus on what’s really brings value (“the vital few”)
SPACE
Satisfaction & wellbeingPerformanceActivityCommunication & collaborationEfficiency & flowIdentify areas for improvement to create a more positive and productive work environment
TDD
TestDrivenDevelopmentWrite the tests for functionality before the actual implementation. Write failing test. Make it pass. Refactor
SOLID
Single Responcibility principle (SRP)Open/Closed principle (OCP)Liskov Substituion principle (LSP)Interface Segregation principle (ICP)Dependency Inversion principle (DIP)4 Object-Oriented Programming Principles
”Composition over Inheritance” suggests it’s better to compose objects (HAS-A) to achieve polymorphic behavior & code reuse rather than inheriting (IS-A) from a parent
Resiliency Principles
Proactive monitoring & alerting are crucial for system’s Availability & fast recovery on the road to zero downtime 🟢
“Imho, regardless of the job title, whole team would benefit from knowing these principles”