Posts tagged value

Agile software development, the principles. Principle 10: Simplicity–the art of maximizing the amount of work not done–is essential

This is the tenth of 12 posts about the principles of agile software development. Purpose is to go back to the start of the agile manifesto (http://agilemanifesto.org/principles.html) and discuss the implementation of the 12 principles in real life software engineering. Goals of agility are to go deliver software of higher quality, faster, with a higher acceptance to end-users and able to follow the changing business requirements to strive for competitive advantage.

The question is: is this going to work in practice or is this only based on a nice marketing and sales story.
 
Principle 10: Simplicity–the art of maximizing the amount of work not done–is essential.
 
The KISS rule (Keep it stupid and simple) applies here. Simple things are easy to understand, and straightforward to implement. Simple things do not cost a lot of time (or money) to implement and are therefore also easy (painless) to revert.
 
The middle part of this principle “maximizing the amount of work not done” is harder. When implementing agility in an organization this is the cause of discussion. Maximizing the work not done implies that the agile method will skip some processes, code and steps that where necessary in the traditional way of delivering software. This is where agile is linked with Lean. Lean focuses on reducing waste and creating a lean process. Work not done (that was planned to do) with the same end-value, can be classified as waste. In a discussion about work not done, you ask the person asking the question to specify the added business value of the work relative to other tasks. When the added value is not clear this is probably waste. Here you have to discuss the added value of intensive review sessions, bureaucratic procedures, complex frameworks and other corporate rules we meet every day.
 

Agile software development, the principles. Principle 1: Deliver valuable software

This is the first of 12 posts about the principles of agile software development. 
Purpose of this, and the upcoming 11 posts, is to go back to the start of the agile manifesto (http://agilemanifesto.org/principles.html) and discuss the implementation of the 12 principles in real life software engineering.

Goals of agility are to go deliver software of higher quality, faster, with a higher acceptance to end-users and able to follow the changing business requirements to strive for competitive advantage.

The question is: is this going to work in practice or is this only based on a nice marketing and sales story?.

 

Principle 1: Satisfy the customer through early and continuous delivery of valuable software.
The discussion here is of course "what is valuable software?". 


Opinions differ between stakeholders of the project. From a developer perspective valuable software is nice designed with all OO principles of encapsulation, inheritance and abstraction. From the end-user perspective valuable software is a rich, customizable user interface and loads and loads of features that make the daily work easier. The support department sees valuable software as easy to install, configure, manage and cost effective in maintenance.  The business owner just wants an effective TCO value in relation to the business value.  To get an answer to this question you have to get back to the business case of the project. The business case sets the GOALS of the project against to the costs of creating the deliverables to reach the goal. The Software is just one (in many cases the most important) of the deliverables of the project and the customer uses the deliverable to reach the goal.

Read the rest of this entry »