ADVANCES IN COMPUTER SCIENCES

ISSN 2517-5718

Examination and Evaluation of ‘Agile Methodologies’ for Systems Development

Gajendra Sharma1 *, Ganesh Gautam1

1Department of Computer Science and Engineering, Kathmandu University Dhulikhel, Kavre, Nepal

CitationCitation COPIED

Sharma G, Gautam G. Examination and evaluation of ‘agile methodologies’ for systems development. Adv Comput Sci. 2019 Sep;2(1):118.

Abstract

There are several methods that are used in system or software development incorporating information technology, among them AGILE are one of the method which are widely used in recent days. Most of the systems these days are of dynamic in nature that means the software needs time to time update to meet the current market needs. The quality of a system is ensured when it has ideally no bugs, no errors and meets the requirement specifications; for this also AGILE method plays a significant role. Research and development center in Nepal for Verscend Inc., Waltham, MA, US offers risk-assessment services and decision analytics being based on US health care. Verscend Technologies has 311 members performing different scale of job to build up healthcare informatics solution that helps end user to manage their health risk. Adaptation of AGILE methodology in Research & Development department of Verscend Information Technology has been evaluated in the research paper. Significance of the methodology has been analyzed through survey conducted within the organization among the professionals. More of positive aspects observed were; time boxing, flexibility, risk and cost control, simplicity and ease, team strength, individual visibility, and valuable Product and customer satisfaction. Few negative aspects observed were; Unpredictability, lack of cohesion and re-work. These results were perceived regarding the way scrum is implemented in the department. With all of these observation and survey it has been found that AGILE methodology would catalyze the system development cycle if adapted with perfection.

Keywords

 AGILE; SCRUM; R&D; XP; DSDM; FDD; ASD; Crystal

Introduction

Verscend Technologies Pvt. Ltd. is one of the leading software companies in Nepal. It is the only research and development center in Nepal for Verscend Inc, Waltham, MA, US. The company offers risk-assessment services and decision analytics being based on US health care. Verscend Technologies Pvt. Ltd. has 311 members performing different scale of job to build up healthcare informatics solution that helps end user to manage their health risk. 

R & D department is the biggest department of the company collaborating six circular structured cross-functional teams. R & D department has 62 professionals focusing on the analytical and research specific job with the common goal of making company stay ahead of the technology curve. R & D is AGILE focused department adapting the following principles in the SCRUM framework.

  1. Self-organization: Strongly shared ownership among the team members promoting the healthier, innovative & creative environment.
  2. Collaboration: Awareness, Clarity and Distribution, these factors are collaborated to offer the highest work value.
  3. Time-boxing: Time is a limiting constraint that should be rationally utilized. Sprints, meetings on sprint planning and daily stand up are the key time-boxed elements.
  4. Iterative development: Satisfying customer needs and managing the changes in the product is the organization's responsibilities regarding iterative development.
  5. Value-based Prioritization: This principle focuses on attaining all business tasks from the initial phase itself to deliver maximum business value.
  6. Empirical Process Control-Transparency, inspection, and adaptation, these ideas are strongly adapted.
As an adaptation of SCRUM framework, R & D goes through following process

  1. Each scrum team has 7 to 9 professionals comprising developers, designers, business analytics and testers who work very closely together.
  2. Scrum team has a time-box of 14 days which is named as sprint. Sprint planning and review meetings are held at the beginning and end of sprint respectively.
  3. Scrum Master & product owner are appointed for each team. Scrum master identifies and resolves the issues throughout the sprint and product owner makes sure that the team maintains the business value in the product.
  4. Product backlog is prepared in the initial sprint with the prioritized user requirements. Backlog grows with the iteration of the sprint with added technical specifications and bug stories. Sprint planning meetings are conducted based on backlog prioritization.
  5. Brainstorming session is done in sprint meeting before new sprint gets started.
  6. Sprint ends on 14th day. If the planned work is completed then the demo sessions are done otherwise, team decides if the incomplete work can be carried out in the next sprint. In case of incomplete task, the story is added up to the product backlog which is to be prioritized in next sprint.
  7. Retrospective session is held after the completion of sprint to evaluate the accomplishment, problems & space of improvements faced throughout the sprint.
  8. With the end of the sprint, team is ready to go through new sprint with the updated backlog. This is a repetitive process.
A number studies have highlighted that several software projects that have used agile are successful with little delay, failure, rejection, or expensive maintenance [1]. Opelt et al. [2] stated that Scrum is now the de facto standard in agile software development. Scrum is not only a project management; it has now evolved to a new understanding about how to manage dysfunctional working teams (Table 1). Scrum can be practiced in an individual department or an entire organization. Originated as a basic method of a software development, scrum is now a management framework throughout the software development cycle [3].
Agile Development Method
Agile (Management/ Process) Frameworks
Adaptive software development
S
Agile data warehousing

Crystal
c
Dynamic system development method

Extreme programming

Feature-driven development
r
Software expedition

Universal application
u
Usability-driven development

Kanban
m
 Table 1: Agile Development Methods within an Agile Framework (Adapted from Opelt, Andreas, et al., 2013) [2]


Inter-method comparison

Qumer A et al. [4] developed an analytical framework (4-DAT) that evaluated the degree of agility in six selected agile methods and two traditional methods (waterfall and spiral) (Table 2). This analytical framework can be used to select a suitable agile method in system engineering. As investigated by Fowler [5], the crystal method is a public-centered method. Crystal method focuses on dividing work into incremental speed. Each increment tacks some iteration to complete.

Criteria
XP
Scrum
FDD
ASD
DSDM
Crystal
Project size
Small, medium
Small, medium, and scalable for large
Small, medium, and large (business projects/ applications) 
Large and Complex projects
Small and large projects (business Applications)
Small and medium
Team size
<10
<10 and multiple teams
No limit-scalable from small to large teams
Not mentioned
Minimum 2 and Maximum 6 (Multiple teams)
Single team in crystal clear with maximum 6 people in a team. Multiple teams with maximum 40 persons in orange and 80 persons in red methodology
Development style
Iterative, rapid
Iterative, rapid
Iterative design and construction
Iterative and rapid developmentdistributed development
Iterative, rapid development and cooperative
Iterative and rapid development
Code style
Clean and simple 
Not specified
Not specified
Not mentioned
Not mentioned
Not mentioned
Technology environment
Quick feedback required
Not specified
Not specified
Not mentioned
Not mentioned
Not mentioned
Physical environment
Co-located teams and distributed teams (limitedinteraction)
Not specified
Not specified
Co-located and distributed teams 
Not mentioned
Co-located team- no support for distributed development
Business culture 
Collaborative and cooperative
Not specified
Not specified
Not specified
Collaborative and cooperative
Not mentioned
Abstraction mechanism
Objectoriented
Objectoriented
Object-oriented
Objectoriented/ Componentoriented
Object-oriented/ Component-oriented
Object-oriented
Table 2: Scope evaluation of six agile processes (Adapted from Qumer A, Henderson-Sellers B, 2008) [4]

High level differences between the agile methods have been outlined through (Figures 1). Methods are ranked according to the degree of agility evaluated through the research done by Qumer A et al. [4]. According to the analysis,

  • XP and Scrum are suitable for small and medium projects
  • Crystal, FDD and DSDM are suitable for small, medium and large business systems
  • ASD is suitable for large and complex projects

  • Figure 1: Comparison of the degree of agility

In traditional method DSDM had not originated as agile method and it was recently added in the list of agile approach. The agile critical success factors are highlighted in Table 3.

Category
Factors
Organizational

Strong executive support 

Committed sponsor or manager

Cooperative Organizational culture instead of hirerchal

Oral culture placing high value on face-to-face communication 

Organizations where agile methodology is universally accepted

Reward system appropriate for agile

Facility with proper agile-style work environment 

People

Collocation of the whole team 

Team members with high competence and expertise

Team members with great motivation 

Managers knowledgeable in agile process 

Managers, who have light-touch or adaptive management style 

Coherent, self-organizing team work 

Good customer relationship

Process

Following agile-oriented requirement management process 

Following agile-oriented project management process

Following agile-oriented configuration management process 

Strong communication focus with daily face-to-face meetings 

Honoring regular working schedule-no overtime 

Strong customer commitment and presence Customer having full authority

Technical

Well-defined coding standards up front 

Pursuing simple design

Rigorous refactoring activities 

Right amount of documentation 

Regular delivery of software 

Delivering most important features first 

Correct integration testing Appropriate technical training to team

 Table 3: Agile critical success factors (Chow and Cao, 2008) [1]

Methodology

Being focused on the research purpose to evaluate the adaptation of agile methodology in system development cycle, survey was conducted among the professionals from the R&D department of Verscend Information Technology.

Participants: Out of 62 professionals, 50 of them took part in the survey.

Tools: Participants were provided with the questionnaire that had two questions regarding scrum implementation.

Procedure: Participants were requested to collect the questionnaire from the reception desk. They filled out the questionnaire with their choice of answer and submitted those back to the reception desk. I also had a small session with one of the scrum team. As team discussed the efficiency and limitations of scrum adaptation, I noted down the points that would support my research.

Result

Out of 50 participants, 34 of them agreed that the use of Scrum in their work is making the job more efficient. 9 of the participants are not satisfied with the way scrum is adapted in the organization and 5 of them believed that it can be adapted in a better way. 2 of them don’t feel that their project needs the agile approach (Figures 2 & 3).

Figure 2: Survey on reason behind adapting scrum 

Figure 3: Survey on significance of adaptation of scrum

Most participants feel that the adaptation of Scrum is beneficial to the organization whereas few of them believe that the adaptation process can be further improved. Evaluation of scrum has been done based on survey result and discussion session with the team. More of positive aspects & few negative aspects of scrum implementation in the organization were seen through the research. 

Positive Aspects

  1. Time boxing: This constraint builds a layer of responsibility in the team to deliver the output in the pre-defined time frame. This develops realization of time within the team and enforces the prioritization.
  2. Flexibility: As there’s no hard-fast rule in scrum adaptation, the flexible framework can be adjusted with the change in requirement or nature of the project.
  3. Risk and cost control: Incremental approach in scrum enables the addition of new features in a project in every sprint. Such incremental approach promotes identifying and responding the risk before the final release. This kind of scenario alerts the team to regularly review the product a part of risk control. Fixed budget is allocated to the project and this constraint controls the cost.
  4. Simplicity and ease: Scrum has simple framework that integrates the incremental development in a simpler way. Working on project becomes easier due to proper documentation of requirements, success stories, risk, failure and release notes in all stages.
  5. Team Strength & Individual visibility: Discussing success and failure together strengthens the team power. Accomplishment and problem solving strategies are shared within the team through daily planning and review meeting. These meetings also increase the exposure of individual. 
  6. Valuable product and Customer satisfaction: Product owner actively monitors the progress and check if the requirements have properly incorporated in the product. Product is also reviewed by the client after each release and the review notes are to be incorporated in next release. This approach endures the customer satisfaction and maintains the value of the product. 

Negative Aspects

  1. Unpredictability: Project undergoes several sprints, so it is difficult to predict the accurate progress and effort estimation of the project. 
  2. Lack of cohesion: Since the project journey is fragmented in the scrum, integration part gets complex and it may result disjointed product. 
  3. Re-work: Feedbacks are always open so, there are high chances of change in requirement from client’s end. In such case, team must go through re-work.
After the results has been obtained and observation has been made through the survey by evaluating the pros and cons of incorporating the Agile methodology the following recommendations are made:

  1. Scrum Master should be having proper control over the project. Adjusting priorities, embracing changes and eradicating should be his major responsibility. 
  2. Training to build up communication skills should be conducted frequently
  3. Conducting AGILE trainings and workshops as a refresher would be valuable. 
  4. Including more success stories in the review and retrospective session would boost the professionals and maintain positive work environment. 
  5. Documentation being integral part of scrum, advancing the documentation skills of team would be beneficial.

Conclusion and Future Work

Agile is principled yet flexible project management framework. Developers and client, both are involved in the development cycle and this collaborative aspect increases the value of the product. Adaptation of agile reduces the risk of client dissatisfaction & product defects. Proper exposure and visibility boost the morale of developers. Iterative planning process makes the adaptation of requirement changes easier. Despite of all the positive factors, agile has been misconceptualized as unprofessional and undisciplined framework. 

If understood properly and adapted well, for future work study of Agile is the only way to keep the company ahead of the competition with fast product releases & changes adaptability [6-10]. Efficiency of the Agile methodology depends on public factor such as user involvement, communication and documentation skill. If these factors are made strong then the Effectiveness of the method would take the height.

References

  1. Chow T, DB Cao. A survey study of critical success factors in agile software projects. J Syst Software. 2008;81:961-971.
  2. Opelt, Andreas. Agile Contracts: Creating and Managing Successful Projects with Scrum. John Wiley & Sons Incorporated. 2013. ProQuest Ebook Central.
  3. Conboy K, Fitzgerald B. Toward a conceptual framework of agile methods, Extreme Programming and Agile Methods-XP/Agile Universe 2004; pp. 105-116. (Ref)
  4. Qumer A, Henderson-Sellers B. An Evaluation of the Degree of Agility in Six Agile Methods and its Applicability for Method Engineering. Information and Software Technology. 2008;50:280–295. (Ref)
  5. Fowler M. The new methodology. 2005.
  6. Kuchta, Ozieranska. The critical factors of Scrum implementation in IT project– the case study. Journal of Economics and Management. 2016;25(3). (Ref)
  7. Madadipouya K. An Examination and Evaluation of Agile Methodologies for Systems Development. Australasian Journal of Computer Science. 2015;2(1):1-17. (Ref)
  8. Muller MM, Tichy WF. Case Study: Extreme Programming in a University Environment, presented at 23rd International Conference on Software Engineering, Toronto, 2001. (Ref)
  9. Sakinah N, Ab Aziz N, Abdullah R. An Ontological Model of Experience-Based Knowledge Management in Agile Software Development Environment. (Ref)
  10. Mountain Gate Software. Learn about agilE, 2018. (Ref)