Understanding the meaning of "delivery of valuable software" in Agile software development

Submitted by Kamal Wickramanayake on June 27, 2010 - 16:11

Agile software development aims at developing software in better ways. Agile Manifesto which was written in 2001 describes 4 value statements and 12 principles behind Agile software development. Agile Manifesto has helped people think differently. Both software development and software acquiring organizations (customers) have experienced benefits. The first principle describes the highest priority of Agile software development:

"Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."

What is meant by "valuable software" here? How can one go about making sense of it?

Unmistakably, the phrase "valuable software" is to be interpreted from the perspective of the customer.

From the customer's perspective, software development typically happens at the early stages of an IT enabled business change. What constitutes "the real value" for the customer is the business outcome of this business change. Hence, delivering "valuable software" just boils down to reaching some intermediate goals. One may argue that "working software" equally communicates the same meaning.

Even after completing the software development project, it takes more time to realize the degree to which the "valuable software" delivered would contribute to the real success or the real value.

So the "value" software developers attempt to deliver through Agile software development is typically aimed at  reaching an intermediate success stage of a bigger business change. Realizing the actual benefits is still a responsibility of the customer and beyond the scope of the Agile development team. Such real success depends on the soundness of the value realization practices of the customer organization as they (the practices) are applied to the IT enabled business changes. It is a topic ideal for another blog. It has already been a topic for "another training" ;)

The summary is that delivering "valuable software" doesn't really mean customer's success. Nor a software development company or an Agile software development team will easily be able to understand what the real value of their "valuable software" is for the customer. Unless the customer follows sound value realization practices, even the customer may fail to articulate what this value is.