so my last blog was on the traditional spiral model of developing information systems. as previous blogs have gone through what traditional development is and most traditional methods i.e. SDLC, Waterfall and Spiral , i thought i would do my next blog on agile development. so below you will find all you need to know about Agile development ……hope you enjoy 🙂
what is Agile development …? why do we need it ..?
well when a system is being developed obviously the users give their requirements to the developer, the developer goes away and makes the system and you would think thats all there is to it.
however what if the users come up with new requiremements to put into the system …..the traditional methods of developing I.S. do not allow for change during the process and therefore costs of adding in requirements after the system is already developed are huge.
users want a system specific to them and often they do not always know what they want from the very start …..therefore learning causes change and we cannot avoid it, to combat the cost of change Agile development allows users to change their mind mid-build and still produces an effective system at the end
Agile software development promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.its aim is to develop software in iterations which last1-4week
Martin Fowler, Kent Beck, Ward cunningham, ken schwaber and jeff sutherland are just some of the 17 developers,system analysts etc who were known as the agile alliance that in 2001 challenged the typical ideas of systems development and so the Agile Manifesto was created.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
they were aware that although there is value in the items on the right, the items on the left are far more valuable.
Individuals and interactions.
when developing a system human interactions are much more important than proccess and tools. if you put people together they will form a close team relationship and figure it out themeselves.
this is the notion that it shouldn’t take 8-9 months to release a system, instead if everyone works together a prototype could be developed in 1month. there needs to be a frequent ouput of working software, its needs to be simple and the less documentation the better
customer collaboration is essential when developing I.S. after all these are the people who at the end of the day need to be able to use the system. instead of having strict contracts co-operate with customers, deliver software quickly so users can use it ,see it and decide if they want anything else.
Responding to change
Contracts must allow for change because in any development project change is inevitable. customers are part of the team and so they must be involved in changes.
so overall they principles of Agile Software development are
- Providing rapid feedback
- adopting simplicity
- changing incrementally
- embracing change
- encouraging quality work.
From this blog i hope you get a better understanding of agile development and why it came about …..just as Agile development was a new and more innovatie way of developing I.S. people will continue to come up with new ways of developing …….my next blog will go through an extreme programming (XP) which is an agile method of developing …….:)