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

Principles | Glossary

Definition

Agile Manifesto has a set of 12 principles. They are as follows :

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale
  • Business people and developers must work together daily throughout the project
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
  • Working software is the primary measure of progress

 

Further Reading

  • “Understanding The Agile Manifesto: A Brief & Bold Guide to Agile” (book), by Larry Apke