KISS
K
eepI
tS
impleS
tupid
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
K
eepI
tS
impleS
tupidStrive 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
D
on’tR
epeatY
ourselfAvoid constant copy-paste. Create reusable entities to reduce redundancy
YANGI
Y
ouA
reN
otG
onnaN
eedI
tDon’t implement features or functionalities unless there’s a clear need for them. This reduces the system complexity and maintenance overhead
WOMBAT
W
asteO
fM
oneyB
rainsA
andT
imeAvoid projects that drain resources without yielding the desired results
SMART
S
pecificM
easurableA
chievableR
elevantT
ime boundCreate effective goals to increase the chances of success
SYSTEMS
S
aveY
ourS
elfT
imeE
nergyM
oneyS
tress”The Purpose Of a System Is What It Does” should be understandable by observing its actual behavior, rather than just its intended purpose
INVEST
I
ndependentN
egotiableV
aluableE
stimableS
mallT
estableEnsure that tasks(stories) are clear & actionable. It’ll contribute to the overall project goals
FOCUS
F
ollowO
neC
ourseU
ntilS
uccessApproach work strategically, prioritize effectively, staying focused on achieving Ur goals
MILE
M
aximumI
mpactM
inimumE
ffortMaximize the impact by leveraging existing resources or via minimizing the effort required. Focus on what’s really brings value (“the vital few”)
SPACE
S
atisfaction & wellbeingP
erformanceA
ctivityC
ommunication & collaborationE
fficiency & flowIdentify areas for improvement to create a more positive and productive work environment
TDD
T
estD
rivenD
evelopmentWrite the tests for functionality before the actual implementation. Write failing test. Make it pass. Refactor
SOLID
S
ingle Responcibility principle (SRP)
O
pen/Closed principle (OCP)
L
iskov Substituion principle (LSP)
I
nterface Segregation principle (ICP)
D
ependency 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”