Posted at 01.01.2019
The Software industry has run into many issues while using the original software development methods. Especially when the surroundings and the customer's requirements tend to change, the software producers weren't able to cater to those changes over time.
As a solution Agile methods were released now many companies globally uses this method to accommodate the changing requirement of the client. Agile methods are used mainly to release a software product as quickly & most cost efficiently to your client. This causes regular iterations of the development process but will provide a superior quality product ultimately.
Although Agile addresses the situation of changing business needs, it offers their downturns as well. But the main point to be considered is, providing of a high quality product with the least cost and within in an inferior time period.
Precisely software quality is 'the fitness for goal'. It really is making sure that the goals of the customer are met through the program product and also ensuring the quality of the task 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 growing demand for higher quality products in the IT (Infromation Technology) industry.
Traditional development methods are plan influenced. The work starts with elicitation and paperwork of requirements accompanied by design, development and inspection. This method is difficult to use with highly complex and changing environment with desire to to deliver a high quality product. Example;
Disadvantages of traditional methods;
Unable to react to changes in volatile constantly changing environment
Plan driven procedure does not suite a sophisticated environment (large range).
Large time difference between delivery of end-product and requirements elicitation
Most functions released initially may well not be employed by the client.
Less user engagement in the project process.
Customer opinions and testing take place at the end of the project, giving less space for the creator to improve the misunderstood requirements or the end-user to understand the flow.
Involves heavy weighted documents, wasting lot of the time and resources.
Developers aren't given the authority to decide how to handle work.
Tasks and jobs are allocated to individuals not considering their skills and skills.
Communication completed through documents. The rapid sharing of ideas in face-to-face communication is lost.
Project success assessed in conditions of handing the job promptly and on cost. It generally does not question if the client got something more valuable than the price placed into it (Quality).
Every task includes constraints that limit the assignments' capacity. The main projects constraints;
Project Constraints Triangle
(Task Shrink Publishing, 2001-2010)
The project is represented by the triangle in this particular 3- D space. The scale (range/ intricacy) of your project is the square of the triangle. Quality is something 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 innovating system with brief iterations. This technique promises an instant delivery and overall flexibility while maintaining the merchandise quality. In agile, program is built as an entire device, and each release is conducted as a working system. The project team is employed, aligned and empowered.
Even with iterations, the grade of the product must be maintained. To address this in all aspects of the job, different methods will be implemented in the regions of the project process such as, job management, development, quality management etc:
(Refer IEE Computer Contemporary society, 2011)
In traditional methods, the job administrator (PM) would just created the set of tasks, prepare estimates, anticipate time lines for every task and keep maintaining a Gantt graph till the job life routine ends. With Agile he\she will will have to aid the circulation and technology of the productivity by retaining and running down the problem log. He has to monitor the project buffer and article occasions that will delay the time lines to the senior management.
With Agile, the principal activity of the programmer is not only writing source code. They entail in daily discussions, interact with the clients. Hence, agile process doesn't have a separate coding and assessment phase. The trials and implementation patterns are much interrelated. The testers, if not the same as developers, work more carefully with them. (Outi Salo, 2005).
The evaluation/implementation team should keep a detailed interaction with the client because the most qualitative way to get the right requirements is, iterative reviews from the client on the already jogging software.
The top 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 is possible.
Scrum is typically the most popular of the Agile methods. It is frequently used together with Extreme Programming (XP).
There is not any project director in Scrum. The team is self handled.
Product owner - handles the product
Scrum get better at - handles the process
Team - manages itself (developers, testers, analysts, architects, writers, designers and even users)
The process of scrum in brief;
Before starting to use scrum, training is vital for the team. With Scrum, the work is done and delivered in Sprints. A sprint may go on for 30days or 2/3 weeks. The daily scrum conferences held, lasts for approximately 5 to ten minutes. In this, the team communicates and synchronizes work and constantly assesses its progress towards achieving its sprint goal. They maintain something again log, a list of work items that have to be done as time passes. The sprint backlog will contain the list of work they may have committed to do through the current sprint. Sprint reviews are held to inspect the particular team has sent and gather feedback from the guests to adapt the program for the succeeding sprint. Sprint retrospective is the final appointment of the sprint. It focuses on the process - the way in which the Scrum team is working alongside one another, including their technical skills and the program development tactics and tools they are employing.
(Hundermark, P. , 2009)
The actual progress of the task is accurately apparent, because the measuring and analyzing status is based on development work and evaluation software
(VersionOne, Inc. , 2011)
Agile methods acknowledge the poor capacity to plan software before and approach the situation by providing SW in completed and prepared to use blocks (versions), beginning with the stop of the best value to the customer (Prioritized requirements)
A release can be done whenever it is required by the customer/competitor
The expansion of PM activities escalates the control of the project since all the areas of management are searched into
Risk mitigation provided by shorter delivery cycles
Multiple opportunities to recuperate from any incorrect step taken
Frequent validation of requirements
Confirmation of technological approach
Realistic evaluation of progress
(Dutton, J. , McCabe, R. , 2005)
Early profits on return with the quick delivery and immediately used of the SW.
The consistent completeness of the software provides significant business benefit of 'Agility' (overall flexibility). (Artem, 2007)
The trials team used knows the coding process therefore at a crisis, a tester could be utilized as a development resource
Whenever the customer desires or finances change, the development option can change consequently.
Whenever an inappropriate requirement is determined, the corrective action is applied in next sprint.
The iterative planning and reviews loop, helps it be easy adapting to changing requirements.
Agile development accelerates the delivery of initial business value
The ongoing planning and feedback, ensures the value is continuing to be maximized.
At the conclusion of a job, is a software system that far 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 a number of versions)
Quick reaction to changes in customer needs contributes to satisfied customers and successful projects
Not committed to the end result (at the beginning of the project).
In any job the initial necessity would always have a tendency to change. Therefore to give a more qualitative product, the best answer is to be agile to the changes than aiming to predict the outcome at the start of the project
Agile quality confidence maintained
Add value by lowering risk or defects in hours or a day
Tight coupling to job activities
(Dutton, J. , McCabe, R. , 2005)
Project monitoring - the shortcoming to decide set up delivery particular date has been or is likely to be impacted by any uncertainties. Hence, agile task tracking should require the monitoring of the buffers that absorbs uncertainty.
Specialized resources are required and this may be costly.
Project Management would expand and would be studied under 4 main functions. Needs managers with new skills and new focus
Project Management would develop and
The quality of the development process may be damaged because of the selection of resources used. Agile methods like generalist programmers to specialists. The specialist resources are buffered and safeguarded. Too many of these would produce a scheduling problem. (derson, 2004)
There will be partly done work scheduled to, Extra processes, Extra features, Job switching, Waiting, Action, Flaws, Traditional oversight/control activities
(Dutton, J. , McCabe, R. , 2005)
Ultimate final result is unpredictable
The end result of the program might provide more than that which was agreed in the very beginning of the project. It could even be less than what was arranged.
It is more healthy to truly have a tests team with the basic knowledge of development given that they have to work closely with the programmers. Therefore testers and other nonprogrammers must be meticulously built-into any agile task where they take part.
Repetition of work - the same software will be examined again and again with new changes.
PRINCE2 stands for Projects IN Controlled Environment. That is a process-based method used in effective Job Management.
The key top features of PRINCE2 are;
It helps to concentrate on business justification
It offers a defined organization composition for the project management team
It follows a product structured planning approach
It focuses on dividing the task into manageable and controllable stages
It is adaptable to be employed at a level appropriate to the project
( ILX Group plc, 2011)
PRINCE2 is based on a couple of assumptions many of which are not used in combination with Agile methods. Therefore when both Agile and PRINCE2 are used alongside there will be changes of how PRINCE2 maybe adopted.
However because of the unpredictable and versatile mother nature of Agile methodologies, a proper controlling method is necessary for the tasks that adopts the Agile though the cost factor may tend to increase. Therefore almost all of the Agile methodologies are implemented together with PRINCE2 since it will reduce risk in agile development.
(Kelly, A. , 2008)
This combination may lead to many advantages;
Improved code quality - Test-driven development, simple design, refactoring and collective possession are likely to lead to raised code and fewer bugs
Less rework and higher productivity
Better control of change - PRINCE2 mechanisms such as concern, risk and exception handling would still be used to regulate change
Reduce the chance associated with the iterative mother nature of agile method.
There are numerous global companies that uses Agile methods in their projects in order to boost software quality. Although this specific method is new in Sri Lanka there are a few companies that uses the Agile methods totally in their tasks and also some that are just starting to introduces it within the company.
Informatics International Company has around 2 assignments being managed under agile method. One task being an inside project "Avabill GUI change from Oracle to. NET" and another being "Infotrack"
The previously listed internal task is completed to convert the graphical user interface (GUI) of the prevailing oracle software to. NET. This project possesses a large scope since it has been evolved for about 10 years and it is an already running system in the telecom industry. In such situation, it was made a decision problematic for them to follow the original methods used such as waterfall method. For the simple fact that it will most probably take a lot of energy for them to conclude the development phase and get to the testing period. By that time there might take place large changes on the market and the surroundings, which will make the task time lines to pull and the cost to increase.
IIL uses SCRUM method to follow agile. This was an internal decision made within the group. The project includes a team of 7 people including a SCRUM expert, tester and 5 builders. The tester and the developers constantly connect to each other during the whole process. The complete team is self-managed and everyday they would have a gathering for approximately 5 to 10 minutes to speak about the day's work.
At the beginning of the job the scrum get good at will list down the requirements of the task -Backlog. This will likely be prioritized based on the most valuable requirements to the client. They'll choose one particular function of the machine and the features of that function will be detailed down. They will carry out the introduction of the SW in SPRINTS. The complete team entails in deciding certain requirements and complexity of the function and each person will stand an opportunity to reason they gave the level of complexity to that particular function.
The customer engagement in this technique is high. And in this situation the customer can be an inside team of the business. However an instant deliver is necessary for this project since the conversion of the complete project is necessary in a short time.
Before they started on the project, the team engaged, had been through a mini workshop (special training) on using Agile methods in tasks.
Following is an example of a backlog of priorities used for his or her mini workshop
The results shown in this survey provide proof the trustworthiness of Agile methods. The info collected through various software development organizations helps us to comprehend that, use of Agile methods in software development process ends up with better project performance and higher quality products.
"Practical experience of the utilization of agile methods suggests that they can be suitable to situations where the overall system is not too big and where the quantity of stakeholders (with potential divergent views) is rather small. "
(Cadle and Yeates 2008)
But at the same time some experts suggest (Systems, C. P. (2003-2008)) with an alteration in traditional assumptions and a fresh management construction, agile methodologies could be employed to organizations formally and successfully to raise the quality of the program product.