Agile and evolution are synonymous

Chris Micklethwaite

Agile and evolution are synonymous

There are many discussion trends about the importance of formal methods and processes for software development. Whether it’s agile, lean, Kanban – there’s no doubt that process is critical. You cannot deliver a high value product, and one that is low in defects, without rigour and discipline in your processes for development, test and deployment – for example in the continuous delivery pipeline) – where automation drives consistency.

Process and approach is critical, but I think it’s equally important to remind ourselves why agile approaches came into being in the first place;

  • Software development is not a manufacturing process, it’s a creative human endeavour.
  • Software development is a process of continuous design and discovery, as well as engineering.
  • Software development flourishes when trial and error is accepted as part of the process.

Creativity and learning are at the heart of what we all do, every day, in some form. Trial and error is a basic human trait and we wouldn’t be here without it; we have evolved because of our innate need to explore and learn.

So we continually develop, mashup and recreate approaches to software development and this, in itself, is evolution. But whatever flavour of formal method used, bear in mind the original reason for agile’s emergence; the development environment should accept failure as a positive, it should encourage trial and error, and drive learning, in order to succeed.

A couple of good reads –
Mindhacks: Why are we so curious?
Adapt: Why Success Always Starts with Failure