OntoDoc - UMKC



Agile Software Development: It’s about Feedback and Change

Authors: Laurie Williams, Alistair Cockburn

Published by IEEE Computer Society, June 2003

- Critique by Vinit Nagda

Summary:

Agile software development is a hot topic for debate in today’s software industry. It is based on principles different than those of plan driven approaches. In plan driven approaches, work usually begins with stating the requirements beforehand. However this approach can become extremely time consuming and frustrating, when deadlines are skipped, especially because the requirements change. As a result some approach was needed which could account for the higher rate of change. The concept of agile software development was established in 3 different continents independently, with similar fundamentals. The article discusses agile development in general, talks about its history and the present.

As agile development gained popularity, a manifesto was drafted, which is described briefly. It gives more importance to individuals and interactions processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan.

The agile methodologies consider software development as an empirical (non linear) process, as against car manufacturing which can be classified as a defined (linear) process. Empirical processes characterize short inspect and adapt cycles and frequent, short feedback loops.

The concept of agile development isn’t relatively new and has been practiced since long in different forms. Only the “official” theoretical and practical framework is new. There are certain concerns on agile development like Scalability, adaptability etc. Practitioners are researching on new methods to blend both approaches together, and the change necessary to develop agile methods.

There are a lot of issues stemming up with agile development. Since it requires the changing of work habits, many people do not accept it that easily. It can affect the power structure in an organization, since it gives a lot of authority to programmers. Programmers are allowed to make key decisions which can cause concern. Also some question its ability to improve product quality.

The article concludes with stating excerpts from other articles, and discussing and debating about interesting points / key issues from other authors. Overall the article is informative, but lacks a clear explanation to prove its point.

Strength:

Programmers can concentrate on the coding, without having to bother about the documentation.

Developers and users work closely to build a successful project.

A new and promising approach, which builds iteratively.

Weakness:

Agile development challenges ‘planning’, which is the key factor to success of many organizations worldwide.

Lack of communication can cause the agile development to fail.

There is a high amount of risk involved with issues like scalability, and design simplicity.

“Change” even if its for the better is not quickly accepted by people. Human tendency of resistance to change.

Questions:

How are the quality control issues handled?

What about code reusability. How are these issues handled?

If agile development takes up a lot of time, and in the meanwhile COTS products become available, should one prefer COTS products for their benefits?

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download