- HubPages»
- Technology»
- Computers & Software»
- Computer Software
What is Agility in Software Development?
What is Agility?
Over the past couple of months I have been getting more involved in new software system projects that can help enable my organisation to have better information systems in order to meet customer needs and expectations. So I’ve been to a number of supplier briefings and workshops where I keep hearing about ‘agile software development’. After a particularly boring workshop this week I decided to do some research on what is agility and whether it could provide some innovation for other parts of my business.
Agility is defined by Roger Pressman as:
· Effective (rapid and adaptive) response to change
· Effective communication among all stakeholders
· Drawing the customer onto the team
· Organising a team so that it is in control of the work performed
In order to yield rapid, incremental delivery of software.
The process to deliver an agile software delivery includes:
· It is driven by customer descriptions of what is required (scenarios)
· Recognises that plans are short lived
· Develops software iteratively with a heavy emphasis on construction activities
· Delivers multiple software increments
· Adapts as changes occur
From these definitions we can see that the concept of agility is about the developers getting very close to the customer so that they understand the business requirements so that the end product is closely aligned to the business needs and can be delivered in a much faster way. Agility is also not about stopping change early in the project but rather how to better handle inevitable changes throughout the project lifecycle. Further, agile software development stresses quality in design and the requirement to test constantly for earlier, less expensive, defect detection. Agile practitioners encourage change rather than discourage it and by using this form of partnership require a close customer relationship.
In 2001 an agile software manifesto was developed and the creed is:
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.
So now we know what Agility in software development is. But this got me thinking, are there other parts of the business that can be agile or in other words, nimble? I read another article, this time on supply chain, that explained Zara’s process on supply chain that had elements of agility combined with planning. In essence Zara under produce product for their stores to ensure that they are never over supplied, but have raw stock available if an item gains popularity so that they can reproduce and supply it quickly. They are able to do this through using their POS system to predict downstream sales and then inform their upstream suppliers so that they know when reproduce in order to create an agile supply chain. This is a key element of agility – the ability to get close to the customer and to have a very strong two-way relationship.
In my business I have been trying (unwittingly) to follow an agile or nimble process especially in responding to training needs of staff. A part of this is a restructure where the Help Desk for the entire retail network (shops, franchisees, contact centre & web) is embedded within the retail business rather than the product owners. This help desk will manage all staff questions for all products, services and systems. This team will then collect information and provide recommendations about any system or software enhancements as well as understanding the training gaps. To this end we are also placing the product and sales trainers into the same team as the help desk staff. This will enable a constant flow of information and an understanding of the gaps to provide an agile or nimble execution of remedial or new staff training.
This research over the past week has assisted me in understanding about what is agility from a software perspective but it has also assisted me to innovate in my supply chain and to create links about where I am already thinking in an agile manner. Hope this helps you are well.
Cheers Michael