Subject - CMT 624: Software And Data Management
Lecturer – Dr. Wendy K. Ivins & Dr. Tom W. Carnduff
Student – Rahul Dutta Roy
Student ID - 1014860
“On February 11.13, 2001, at The Lodge at Snowbird ski resort in the Wasatch mountains of Utah, 17 people met to talk, ski, relax and try to find common ground. What emerged was the Agile Software Development Alliance.” (Martin Fowler and Jim Highsmith, 2001 )
This new approach redefined our vision of software development- giving rise to a work culture focussed on human resources, mutual trust, interaction and productivity - radically going against the long established approach based on detailed structuring and modelling, documenting etc.. What 17 people envisioned in a light-hearted manner became a norm in software businesses (Martin Fowler and Jim Highsmith, 2001 ).
However, there have been debates on the application and viability of Agile Manifesto, particularly from the proponents of process-oriented approach. The critics have often questioned the outcome of Agile Manifesto’s emphasis of certain concepts over others. The corresponding debate with evaluation of agile and process-oriented software development methods in terms of Agile Manifesto are given below.
Individuals and interactions over processes and tools:
Agile Manifesto gives more value to human efforts than existing framework and detailed methodology. It has truly identified that it is people whose performance and output matter over industry-wide tools covering modelling techniques, documentation etc.. Agile believes in a small group of people constantly interacting to find the feasible, quality solution to business aspects forming customer requirements (Bahli and Abou-Zeid, 2005 ). Giving lesser emphasis to the supporting processes and tools gives programmers focus on implementation ensuring faster delivery. The impact is a stress-free environment for motivated, creative teams to transform vision into reality. They possess liberty to propose, test their ideas after group discussion and consensus.
Reducing design and modelling efforts may have some negative aspects. A development-oriented, people-focussed approach is suitable for small projects, but not large, complex ones that are difficult to cover without entire architecture design. ( Turk et al., 2002)
Also, building safety critical systems is risky due to rigorous testing strategies and environment to combat unforeseen failures ( Turk et al., 2002) proving that Agile Manifesto is not effective in all scenarios as its supporters thought.
Agile methods e.g. scrum, XP support the manifesto by identifying human factors - communication skill, team work, collaboration, business and technical knowledge ( Merisalo-Rantanen et al. 2005 ), trust, respect and responsibility for decisions (Martin Fowler and Jim Highsmith, 2001 ), pair-programming as crucial development aspects. Coding and testing activities are more intense against supporting processes like design, review, discussion, documentation ( Germain et al., 2005) and relevant tools.
Conversely, the process-oriented methods like RUP, Waterfall model are use case driven, central architecture-dependent and role-based. All the processes and tools of software development like requirements engineering, design and implementation, testing, release and maintenance are utilised greatly and output from one process goes to next process after quality checks.
Working software over comprehensive documentation.
The ultimate goal of the customer is to get a software system completed within time, budget. The user is not interested in documentation, diagrams and tools. True, these are essential in supporting business but developing incrementally, a small chunk of code at a time, testing, implementing, integrating it iteratively is a superior alternative reducing development time. More importantly, there is a continuous value...