Solving Complexity with Simplicity

Leena
Leena
Aug 4 · 2 min read

Lets use X framework because it is “cool”

We are DevOps, so we should use XYZ tool for deployment

Only Microservices because Monoliths are bad

We know what users want, so lets build all these features in the backlog

https://pixabay.com/illustrations/maze-labyrinth-solution-lost-1804499/

Software systems are inherently complex because of a lot of factors. We make it complicated by making wrong, unnecessary choices. Every line of code — written by us or added as part of a dependent library — adds complexity. So we should add code only when it is necessary.

It is not just about the code. Unused, unnecessary features also add to the complexity. So, add features only when it is necessary and remove unused ones.

Apply a scientific method to software development, with experiments and feedback cycles. That is what Continuous Delivery is all about. The solution to complexity is simplicity.


Here are a few principles to keep in mind while building software:

Simplicity — the art of maximizing the amount of work not done — is essential (10th principle of Agile Manifesto)

Build Less (Getting Real)

YAGNI (You aren’t gonna need it) — eXtreme Programming principle


Continuous Delivery

Tidbits about Continuous Delivery

Leena

Written by

Leena

CTO/Programmer @ GetYogaTree.com, Bangalore. Pragmatic & Passionate Programmer, Continuous Delivery Evangelist. continuousdelivery.in

Continuous Delivery

Tidbits about Continuous Delivery