Sep 14, 2009

Agile development

After reading several blogs, I have realized that most of the technical terms were introduced successfully. However, no one has mentioned the Agile software development and I thought I would touch on that. To be honest, my knowledge is not great in Agile but I have read about it before. Since I haven't had a job that requires implementing this methodology, I wont be technical; instead I will use simple terms of what I have understood. In the following paragraphs, a simple introduction of Agile development and a highlighting of the most important terms will be provided.

As defined in Wikipedia.org, agile development is a group of development methodologies based on iterative development with great dependence on effective cross functional teams communication. Even though this sounds like a great definition, it appears to be a little but broad. Because many resources refuse to provide a solid definition, instead they state that the agile development definition is basically any process that follows specific principles. Another definition that seems to be well directed is the mentioned in Agilemodeling.com; it's an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework with "just enough" ceremony that produces high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders. Of course, since there are an enormous amount of resources that each has different definitions, one cannot conform to one. The best way is to take the best of each definition and utilize that to help your understanding.

The Agile development process has several key terms that should be highlighted. first, Cross functional; it's apparent from the definition that Agile development should have a number of teams from various backgrounds/departments that align together during the process. second, frequent changes; perhaps the capstone of the Agile development because it relates to flexibility which is a rising requirement in system development. Third, customer satisfaction; because customers may not know what they want, being able to change conforms to customer satisfaction. Lastly, communication should be present all time because the Agile development process emphasizes on the ability to effectively engage both the cross functional teams and the customers into expressing and delivering their views.

In conclusion, Agile development is one of the most effective business practices around the world and is gaining a lot of attention since the manifesto. Hopefully by the end of the course, a clear understanding of the process will formed.


No comments:

Post a Comment