Rule of Simplicity | Glossary

Definition:

Kent Beck while developing Extreme Programming (XP) came up with rules of simple design. He recommended that developers should do the simplest thing that could possibly work. Simple code means you’re travelling light – low up-front investment, and not much to slow down when things needs to change. Simplicity is being recognised as one of values in XP, where programmers are encouraged to start with simplest solution which helps them to focus on designing and coding for the needs of today instead of tomorrow.

Rule of Simplicity

  1. Pass All Tests
  2. Clear, Expressive & Consistent
  3. Duplicates No Behaviour or Configuration
  4. Minimal Methods, Classes & Modules

With these rules, we can judge whether the code developed is simple enough. What we can derive is to think about what is most important, the code should work, pass all tests. The next most important thing is that the code should be easy to understand, therefore we need to ensure that it expresses every idea  with clarity. Even though the code works, we need to consider maintainability, see to that there is no duplicate code. This minimises cost and maximise benefits over the lifetime of the software.

Further Reading:

Book: Extreme Programming Explained: Embrace Change by Kent Beck
Book: Understanding the 4 Rules of Simple Design by Corey Haines
Book: Understanding Software by Max Kanat-Alexander
https://en.wikipedia.org/wiki/Extreme_programming
http://wiki.c2.com/?XpSimplicityRules
https://martinfowler.com/bliki/BeckDesignRules.html

Agile Software Development | Glossary

Definition

Agile Software Development collectively is a term for a set of methods and practices that are based on the principles/values of the Agile Manifesto. The evolution of the solutions takes place through collaboration of self-organizing, cross-functional teams that utilize the appropriate contextual practices.

It originates in the late 1990’s, where the first gained public attention, as being processes that were a mixture of both old and new ideas, and emphasized collaboration between development team and business stakeholders..

Further Reading

  • “Agile Project Management” (book), by  Jim Highsmith.