Manifesto for Agile Software Development

 We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.

 I am not a huge fan of information technology as my readers know.  More often I find that technology has entrapped workers rather than liberated them. 

Too many technology projects have the wrong aim . . . to save money.  The focus needs to be on customer purpose which brings us to the “working software” paradox of the Agile Manifesto.

You see in software projects we have stakeholders with different aims.  Executives are looking for project plans, contracts and revenue recognition.  The development community typically is drawn down to writing requirements, coding, testing, fixing bugs, etc. under the constraints of these executive imposed dates in the project plan.  The real customer for software should be the worker that has to deal with it on a daily basis.  But too often it is their management that is unfamiliar with the work that buys a solution that doesn’t solve the problem.  Sound familiar?

So the question becomes, how do we get to “working software?”  What works for the executives doesn’t necessarily work for the people who do the work.  Developers are caught in the middle of trying to figure out whose definition of “working software” they should embrace.

My experience with Fortune 500 technology organizations highlights this paradox.  Plans, schedules, documentation, etc. create more expense, but give managers needed information to hit the financial target.  Many of the causes of costs are instituted by the managers and executives themselves in command and control fashion.

Let’s face it, the real work is done by software developers and I believe that developers or architects should be in the work with the people that the software should be helping.  Let the developers/architects “get knowledge” by studying the system with the workers and managers.  Change can be emergent rather than planned.

I have seen too many plans made without knowledge of the work in software development.  Where business analysts write requirements and developers lose context to the software they are developing.  Lack of context creates poor knowledge and subsequently “non-working software.”

Context and knowledge are lacking because executives believe that hiding expensive resources – like developers and architects – saves money.  Again, this creates more costs as iteration after iteration fails to meet the end users needs.

In creating usable software, value can be derived by getting knowledge by those that do the work.  Developers/architects, the end user are those people.  There focus should not be clouded by command and control actions that add costs and diminish customer purpose. 

Leave me a comment. . . share your opinion!  Click on comments below.

Make the new decade a profitable and rewarding one, start a new path here.  Download free from www.newsystemsthinking.com “Understanding Your Organization as a System” and gain knowledge of systems thinking or contact us about how to get started at tripp@newsystemsthinking.com.  Reach him on Twitter at www.twitter.com/TriBabbittor LinkedIn at www.linkedin.com/in/trippbabbitt.

Tripp Babbitt is a columist (Quality Digest and IQPC), speaker, and consultant to private and public service industry.