CSC/ECE 517 Fall 2007/wiki3 10 tm

From Expertiza_Wiki
Jump to navigation Jump to search

The Agile debate. Perhaps the most prominent controversy in o-o design today is whether it is possible to do a robust design with as little advance planning as agile methodologies recommend. Research this issue, on the Web and in the ACM DL, and report (fairly) on the major arguments of both sides, and on the evidence for both positions.

What is 'Agile Methodology'?

Agile Methodology was introduced as an iterative approach for developing software as a counter to waterfall approach. Where the five main phases of waterfall (requirement, design, codeing, integration, testing) are practiced through every iteration. Moreover, it sugeested several practices to enhace the software developments, see next figure.


From [http://txpug.editme.com/files/Lec2004Jul26/rupvagile.1.ppt "Finding Agility -�A comparison of RUP and Agile"], *.PPT


Many Agile methodologies were introduced in the last decade (XP, Scrum, DSDM, FDD, Lean, Adaptive, Crystal). It would be difficult to introduce every aspect of these methodology in this wiki. That is why, This wiki will concentrate in the most popular agile methodology, XP (eXtreme Programming).

Comparison Basis for Robust Design

A comparison between Agile methodologies and Waterfall methodology is found to be a little out of scope, as the advantages of iterative methodologies already recognized. That is why the current wiki will concentrate to compare with other iterative methods, such as RUP (Rational Unified Process). RUP share many of Agile's practices. Other practices can be immegrated from XP to RUP. Other features will be unique in XP or in RUP. Next figure outline these practices.


From [http://txpug.editme.com/files/Lec2004Jul26/rupvagile.1.ppt "Finding Agility -�A comparison of RUP and Agile"], *.PPT


In the current wiki we will try to test the Agile Manifesto and its related practices relative to design quality. These found to be the best basis as it provide the basis Agile methodologies trying to establish over other iterative methods.


Individuals and Interactions Over processes and tools

Requires too much cultural change to adopt
Only works with senior-level developers

Working software Over comprehensive documentation

Lack of structure and necessary documentation

Customer collaboration Over contract negotiation

Can lead to more difficult contractual negotiations

Responding to change Over following a plan

Incorporates insufficient software design

Agile Methodologies' Real Manifest

Previous practices were introduced to achieve certain values (Communication, Feedback, Courage, Simplicity, Respect). It is true that these practices will help to provide the best environement for these values to grow. Neverthless, many of these practices acquire the existance of these values in the project, the company, the manegment, the individuals, and moreover the customer. Certain enough these values represent a moral and professional values that should exist in every social and individual system, neverthless we recognize there variation in every system. Moreover, many of these values might be out of the control as simplicity of the project or the courage of the customer. The author think that is why Agile approach will give even a better results in different area such as R&D or education, where these values exist. The question will be "Which should exist first the values -the egg- or the Agile methodology -the chicken-."

Conclusion

Agile methodologies provided a framework for software development. Certain enough these methodology not for every project, person or company. It will be great if you can apply these practices, gain these values, and save on documentaion, architicture and process. But if you cant still Agile methodology provide you with a lot of useful tools, you can pick and match what is suitable for your comapny, project, and personality.

Agile is not a religion and nor a trademark, it is the common, good and old practices for software development. But if you didn't practise it right it will end up by a loose software and development environement. So luky you if you can apply it all, but if you cant more effort in process, documentation, early design will be helpful to get a robust design.

For further information, see "Who Stole Agile?".

Refrences

External Links by Side

Arguments *Against* XP

Arguments *Support* XP

Success Stories

External Links by Field

Programming

Education

Project Manegment

R&D