Category Archives: Software Development


“Every module in the decomposition is characterized by its knowledge of a design decision which it hides from all others… It’s interface or definition was chosen to reveal as little as possible about its inner workings” – On the criteria to be used in decomposing a system into modules – Parnas (1972)


Keep It Simple

“Refactor mercilessly to keep the design simple as you go and to avoid needless clutter and complexity. Make your code clean and concise so it is easier to understand, modify, and extend. Make sure everything is expressed once and only once”. –

To me, this principle is about writing elegant code, elegant being clean, clear, and concise, which takes an intelligent design to create.