Monday 22. of September 2008
Tags:agile development, agile manifesto, scrum,agile modeling, aup, agile unified process, agile data method, tdd, test driven development, fdd, features driven development, bdd, behaviour driven development, essup, essential unified process     By: By: Humayun Saahi
Posted in Uncategorized

Agile Software Development, a framework which interprets development using iterations, open collaboration and is adaptive to the life-cycle of the project. This development process contains a family of processes instead of single approach to the development which is based on some core principles (listed below), also known as Agile Manifesto. The Agile Manifesto was drafted by 17[1] well known developers in 2001 in order to define the Agile development.

The core principles of the Agile Manifesto are:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale.
  4. Business people and developers must work together daily throughout the project. 
  5. Build projects around motivated individuals.  Give them the environment and support they need, and trust them to get the job done. 
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 
  7. Working software is the primary measure of progress.  
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.  
  9. Continuous attention to technical excellence and good design enhances agility. 
  10. Simplicity – the art of maximizing the amount of work not done – is essential. 
  11. The best architectures, requirements, and designs emerge from self-organizing teams.  
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 

Agile development emphasizes: 

  • Customer satisfaction as the highest priority 
  • Welcoming changes, even late in development 
  • Frequent delivery of the software 
  • Business value 
  • Face to face communication 
  • Continuous attention to design and technical excellence can be achieved by self-organizing teams

Let’s try to answer a simple question - why should we go agile? How can you begin? Any new technology you use will need to be scaled to your own environment. You will need to try it out and check to see if it will fit into your workplace. Keep in mind that some practices or technologies might not be a good fit despite the fact that they are hyped up in the market.

Back to the first question - why use agile methodologies? Historically, it has been proven that agility wins. Research shows that speed, scalability, maintainability and ROI, are the most important factors, especially in internet development. RAC has observed a 130% increase in speed for the deliverables with the same level of complexity and quality internally. Dramatic increase in the scalability and maintainability were also seen since RAC adopted agile methods. Forrester Research also noted 94% ROI over any other large company using agile methods.

When compared to predictive methodologies, it helps produce quick, efficient and better results. On each release, feedback is taken to improve the next release of the product as it gets closer to the requested deliverable. With more involvement from the client, the development team strives to improve the deliverable. Ultimately 15-25% increase in productivity is achieved by fixing resources, quality and date and giving room to requirements to change as per client's need.

Is agility a process? Take a look at Agility is an Ability by Kirk Knoernschild, one of the team members who drafted the Agile Manifesto. Mr. Knoernschild tried to define agility as something that is actively adopting changes in late development. The increased feedback makes it possible to deliver working, and incomplete, software at an earlier stage. This ability can be achieved through being more specific and understanding the agile practices - such as, how a practice can help a person accept a change, resulting in faster speed and increased feedback. This is not all about practicing agility; it is also about understanding it.

Agile methodology is quite successful when the development team is intensively collaborative. A few assumptions in this model are: 

  • Nothing is built perfectly the very first time. This gives the idea that the agile model is based on developing the software in small iterations.
  • A lot of unnecessary features take up a lot of the time when it comes to software development. Based on fixed resources and quality we can prioritize the requirements accordingly. We should aim for completing 80% of the value of the total solution in 20% of the time.
  • Time boxing forces decisions and avoids delays.
  • Fitness for the business purpose is the essential criterion for acceptable deliverables.
  • The agile model assumes that large changes are are easier to identify and accommodate earlier in the development cycle than later.  
  • Usability analysis emerges from real use of an application, not from speculation.  So feedback from the user on frequent releases of the product will help in the improvement process.

I am here to share what I have learned about the agile methodology from reading other useful resources. Here is a list of some of the agile methods being practiced.

I'll be adding my thoughts on few of these methods at another time. For now, what are your thoughts on practicing agile methodologies?


Reference:
[1]            17 signatories of the Agile manifesto were Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin,Steve Mellor, Ken SchwaberJeff Sutherland, Dave Thomas

http://www.martinfowler.com/articles/newMethodology.html#ShouldYouGoAgile
http://www.agilemodeling.com/principles.htm

http://agilemanifesto.org/principles.html

http://www.agilejournal.com/content/view/122/114/

You can leave a trackback from your own site.
Comments

Displaying results 1 to 5 out of 111
1 2 3 4 5 6 7 8 9 10 Next
 
   Casino 1300030854 Sunday, 13-03-11 11:07
Casino 1300030854
   Lamictal. Monday, 23-08-10 02:24
Lamictal drug interactions.
   Lotensin and ibuprofen. Sunday, 22-08-10 05:05
Lotensin.
   Ditropan. Friday, 20-08-10 07:44
Ditropan. What is ditropan. Drug class of ditropan. Ditropan xl side effects. Ditropan and cranial excessive sweating.
   Cipro. Sunday, 15-08-10 22:07
Cipro.
1 2 3 4 5 6 7 8 9 10 Next
Sorry, comments are closed for this post.