Skip to content

XP Values: Simplicity

September 21, 2007 by Artem Marchenko

Extreme Programming values are the primary guidelines to be used whenever it is not clear how to resolve the particular situation. Value of simplicity calls for looking for the simplest working solution first and improving it later only the need arises. This value is based on the assumption that requirements and many other things in software are changing so often and are so imprecise until done that it is rarely worth to implement things supposed to be helpful at some point in the future. By that moment there are good chances that improved understanding of the subject area and solution would call for a very different approach.

Examples of applying the value of simplicity could be

  • preferring paper prototypes over the diagrams carefully charted on a PC;
  • developing one feature at a time. Whenever possible with the customer evaluating when the feature is already good enough for him;
  • preferring live conversation to the extensive emailing;
  • etc.

Primary XP practices directly supporting the value of simplicity

  • Sit Together - make it easy to use the simplest way of communication - live discussion
  • Whole Team - make it easy to reach the specialist in any relevant area
  • Informative Workspace - make it as easy to update the project status as to move a card on the wall
  • Stories - document the requirements in the simplest possible "concept-like" way and refine them together with the customer later
  • Weekly Cycle - develop in short iterations so that ready-to-use functionality would be created step by step
  • Incremental Design - simple design first, refactoring later, improvements on demand
  • Test-First Programming and Continuous Integration - with the comprehensive set of automated tests make it easy to improve the software design on demand

Corollary XP practices directly supporting the value of simplicity

  • Real Customer Involvement - there is no simpler way to refine the requirement, than to show customer what you understood and to ask for his opinion on it
  • Incremental Deployment and Daily Deployment - deliver one small step at a time

This page is a part of the Extreme Programming overview

About the Author: As the Editor-in-Chief for AgileSoftwareDevelopment.com, Artem is charged with overseeing the direction for content, advertising, and the overall management of the site. Nowadays in his day life, Artem is a product manager in a global telecommunication company where he leads the development of a product developed in extremely distributed environment. Artem has been applying Agile and researching Agile since 2005. Contact Artem

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.

Best of AgileSoftwareDevelopment.com