The Software industry has come across many problems while using the traditional software development methods. Especially when the environment and the customer’s requirements tend to change, the software producers were not able to cater to those changes in the long run.
As a solution Agile methods were introduced and today many companies globally uses this method to cater the changing requirement of the customer. Agile methods are used mainly to release a software product as quickly and most cost efficiently to the client. This leads to frequent iterations of the development process but will provide a high quality product ultimately.
Although Agile addresses the problem of changing business needs, it has their downturns as well. But the main point to be considered is, delivering of a high quality product with the least cost and within in a smaller time period.
Evaluate the benefits and disadvantages of using agile methods to build effective frameworks for software project management, development and delivery of high quality software products
Precisely software quality is ‘the fitness for purpose’. It is making sure that the expectations of the customer are met through the software product and also assuring the quality of the project process, which produces the quality output.
The adoption of approaches to increase quality such as Total Quality Management (TQM) and process improvement methods such as Six Sigma and CMMI, illustrates the rising demand for higher quality products in the IT (Infromation Technology) industry.
Traditional development methods
Traditional development methods are plan driven. The work begins with elicitation and documentation of requirements followed by design, development and inspection. This method is difficult to use with highly complex and changing environment with the aim to deliver a high quality product. Example;
Disadvantages of traditional methods;
Unable to respond to changes in volatile constantly changing environment
Plan driven approach does not suite a complex environment (large scope).
Large time gap between delivery of end-product and requirements elicitation
Most functions introduced initially may not be used by the customer.
Less user involvement in the project process.
Customer feedback and testing take place at the end of the project, leaving less space for the developer to correct the misunderstood requirements or the end-user to understand the flow.
Involves heavy weighted documentation, wasting lot of time and resources.
Developers are not given the authority to decide how to carry out work.
Tasks and roles are assigned to individuals not considering their talents and skills.
Communication carried out through documentation. The rapid sharing of ideas in face-to-face communication is lost.
Project success measured in terms of handing the project on time and on cost. It does not question if the customer got something more valuable than the cost put into it (Quality).
Every project includes constraints that limit the projects’ capacity. The main projects constraints;
Project Constraints Triangle
(Project Shrink Publishing, 2001-2010)
The project is represented by a triangle within this 3- D space. The size (scope/ complexity) of a project is the square of the triangle. Quality is a product requirement.
These constraints have led to experiment new methods to carry out projects.
* “Manifesto for Agile Software Development” at www.agilealliance.org cited in Dutton,J., McCabe, R., 2005, p.11
Agile development means an evolving system with short iterations. This method promises a rapid delivery and flexibility while maintaining the product quality. In agile, application is built as a complete unit, and each release is performed as a working system. The project team is engaged, aligned and empowered.
Even with iterations, the quality of the product needs to be maintained. To address this in all aspects of the project, different approaches will be followed in the areas of the project process such as, project management, development, quality management etc:
(Refer IEE Computer Society, 2011)
In traditional methods, the project manager (PM) would just created the list of tasks, prepare estimates, predict time lines for each task and maintain a Gantt chart till the project life cycle ends. With Agile heshe will now have to assist the flow and generation of the output by maintaining and running down the issue log. He has to monitor the project buffer and report events that will delay the time line to the senior management.
With Agile, the primary activity of the developer is not just writing source code. They involve in daily discussions, interact with the customers. Hence, agile process does not have a separate coding and testing phase. The testing and implementation patterns are much interrelated. The testers, if different from programmers, work more closely with them. (Outi Salo, 2005).
The testing/implementation team should keep a close interaction with the customer since the most qualitative way to get the correct requirements is, iterative feedback from the customer on the already running software.
The features of agile methods;
*Fowler, M., 2005 cited in Awad, M. A., 2005, p.17
The ultimate goal of Agile development methodologies are to release a good quality software application into production as quickly and cost efficiently as possible.
Scrum is the most popular of the Agile methods. It is frequently used in conjunction with Extreme Programming (XP).
There is no project manager in Scrum. The team is self managed.
Product owner – manages the product
Scrum master – manages the process
Team – manages itself (developers, testers, analysts, architects, writers, designers and even users)
The process of scrum in brief;
Before starting to work with scrum, training is essential for the team. With Scrum, the work is done and delivered in Sprints. A sprint may last for 30days or 2/3 weeks. The daily scrum meetings held, lasts for about 5 to 10 minutes. During this, the team communicates and synchronizes work and continuously assesses its own progress towards achieving its sprint goal. They maintain a product back log, a list of work items that need to be done over time. The sprint backlog will contain the list of work they have committed to do during the current sprint. Sprint reviews are held to inspect what the team has delivered and gather feedback from the attendees to adapt the plan for the succeeding sprint. Sprint retrospective is the final meeting of the sprint. It focuses on the process – the way in which the Scrum team is working together, including their technical skills and the software development practices and tools they are using.
(Hundermark, P., 2009)
Benefits of using Agile methods
The actual progress of the project is accurately visible, since the measuring and evaluating status is based on development work and testing software
(VersionOne, Inc., 2011)
Agile methods recognize the poor ability to plan software earlier and approach the problem by providing SW in completed and ready to use blocks (versions), starting from the block of the highest value to the customer (Prioritized requirements)
A release can be done whenever it is forced by the customer/competitor
The expansion of PM activities increases the control of the project since all the aspects of management are looked into
Risk mitigation provided by shorter delivery cycles
Multiple opportunities to recover from any wrong step taken
Frequent validation of requirements
Confirmation of technical approach
Realistic assessment of progress
(Dutton, J., McCabe, R., 2005)
Early return on investment with the quick delivery and immediately used of the SW.
The frequent completeness of the software gives a significant business advantage of ‘Agility’ (flexibility). (Artem, 2007)
The testing team used is familiar with the coding process therefore at an emergency, a tester could be used as a programming resource
Whenever the customer desires or financial situation change, the development route can change accordingly.
Whenever an incorrect requirement is discovered, the corrective action is applied in next sprint.
The iterative planning and feedback loop, makes it easy adapting to changing requirements.
Delivery of high quality SW
Agile development accelerates the delivery of initial business value
The continuous planning and feedback, ensures the value is continuing to be maximized.
At the conclusion of a project, is a software system that much better addresses the business and customer needs.
(VersionOne, Inc., 2011)
A customers’ representative could handle all customer requirements and releases.
More predictable deliveries (of part of the product in several versions)
Quick response to changes in customer needs leads to satisfied customers and successful projects
Not committed to the end result (at the beginning of the project).
In any project the initial requirement would always tend to change. Therefore to provide a more qualitative product, the best solution is to be agile to the changes than trying to predict the end result at the beginning of the project
Agile quality assurance maintained
Add value by reducing risk or defects in hours or a day
Tight coupling to project activities
(Dutton, J., McCabe, R., 2005)
Disadvantages of using Agile methods
Project tracking – the inability to decide whether or not the delivery date has been or is likely to be impacted by any uncertainties. Hence, agile project tracking should involve the monitoring of the buffers that absorbs uncertainty.
Specialized resources are required and this may be costly.
Project Management would expand and would be taken under 4 main roles. Needs managers with new skills and new focus
Project Management would expand and
The quality of the development process may be affected due to the choice of resources used. Agile methods prefer generalist developers to specialists. The specialist resources are buffered and protected. Too many of them would produce a scheduling nightmare. (derson, 2004)
There will be partially done work due to, Extra processes, Extra features, Task switching, Waiting, Motion, Defects, Traditional oversight/control activities
(Dutton, J., McCabe, R., 2005)
Delivery of high quality SW
Ultimate end result is unpredictable
The end result of the software may provide more than what was agreed in the beginning of the project. It might even be less than what was agreed upon.
It is healthier to have a testing team with the basic knowledge of programming since they have to work closely with the programmers. Therefore testers and other nonprogrammers must be very carefully integrated into any agile project in which they participate.
Repetition of work – the same software will be tested over and over with new changes.
Explain why Agile is frequently used alongside PRINCE2®
PRINCE2 stands for Projects IN Controlled Environment. This is a process-based method used in effective Project Management.
The key features of PRINCE2 are;
It helps to focus on business justification
It provides a defined organization structure for the project management team
It follows a product based planning approach
It focuses on dividing the project into manageable and controllable stages
It is flexible to be applied at a level appropriate to the project
( ILX Group plc, 2011)
Agile alongside PRINCE2
PRINCE2 is based on a set of assumptions many of which are not used with Agile methods. Therefore when both Agile and PRINCE2 are used alongside there will be changes of how PRINCE2 maybe followed.
However due to the unpredictable and flexible nature of Agile methodologies, a proper controlling method is necessary for the projects that adopts the Agile though the cost factor may tend to increase. Therefore most of the Agile methodologies are followed together with PRINCE2 since it tends to reduce risk in agile development.
(Kelly, A., 2008)
This combination could lead to many advantages;
Improved code quality – Test-driven development, simple design, refactoring and collective ownership are likely to lead to better code and fewer bugs
Less rework and greater productivity
Better control of change – PRINCE2 mechanisms such as issue, risk and exception handling would still be used to control change
Reduce the risk involved with the iterative nature of agile method.
Support your answer with a detailed example of an organization that has applied agile method/s for improving quality delivery
There are many global companies that uses Agile methods in their projects in order to improve software quality. Although this particular method is new in Sri Lanka there are some companies that uses the Agile methods fully in their projects and also some that are just beginning to introduces it within the company.
Informatics International Limited (IIL)
Informatics International Company has around 2 projects being controlled under agile method. One project being an internal project “Avabill GUI conversion from Oracle to .NET” and another being “Infotrack”
The above mentioned internal project is carried out to convert the graphical user interface (GUI) of the existing oracle software to .NET. This project possesses a large scope since it has been evolved for around 10 years and it is an already running system in the telecom industry. In such situation, it was decided difficult for them to follow the traditional methods used such as waterfall method. For the simple fact that it will most probably take a lot of time for them to finish the development phase and get to the testing phase. By that time there may take place large changes in the industry and the environment, which will make the project time line to drag and the cost to increase.
IIL uses SCRUM method to follow agile. This was an internal decision made within the group. The project consists of a team of 7 people including a SCRUM master, tester and 5 developers. The tester and the developers constantly interact with each other during the whole process. The whole team is self-managed and each day they would have a meeting for about 5 to 10 minutes to talk about the day’s work.
At the beginning of the project the scrum master will list down the requirements of the project -Backlog. This will be prioritized according to the most valuable requirements to the customer. They will choose one particular function of the system and the features of that function will be listed down. They will carry out the development of the SW in SPRINTS. The whole team involves in deciding the requirements and complexity of the function and each person will stand a chance to reason why they gave the level of complexity to that particular function.
The customer involvement in this process is high. And in this scenario the customer is an internal team of the company. However a rapid deliver is required for this project since the conversion of the whole project is required before long.
Before they started on the project, the team involved, had undergone a mini workshop (special training) on using Agile methods in projects.
Following is an example of a backlog of priorities used for their mini workshop
Conclusion and Recommendations
The results presented in this report provide evidence of the credibility of Agile methods. The information gathered through various software development organizations helps us to understand that, use of Agile methods in software development process results in better project performance and higher quality products.
“Practical experience of the use of agile approaches suggests that they are best suited to situations where the overall system is not too large and where the number of stakeholders (with potential divergent views) is fairly small.”
(Cadle and Yeates 2008)
But at the same time some professionals suggest (Systems, C. P. (2003-2008)) with a change in traditional assumptions and a new management framework, agile methodologies could be applied to organizations formally and successfully to increase the quality of the software product.
Cite This Work
To export a reference to this article please select a referencing stye below: