Manvender Singh Rathore* and Deepa V. Jose
Department of Computer Science, Christ University, Bangalore,Karnataka-560029
Corresponding author Email: manvender.rathore@mca.christuniversity.in
DOI : http://dx.doi.org/10.13005/ojcst/10.02.14
Article Publishing History
Article Received on :
Article Accepted on :
Article Published : 06 Apr 2017
Article Metrics
ABSTRACT:
Agile software development work on twelve principle for software development which implies requirements and solutions evolved through the combined teamwork of disciplined and interdisciplinary teams. The objective of this paper is to connect agile methodology with Version Control System for more efficient and effective utilization of resources. In this proposed model based on agile methodology, the Version Control System plays a vital role to make work done faster as compared to SCRUM. This paper compares various existing agile methodologies. The efficiency of the proposed model is proved through comparative analysis with existing agile methods and using ANOVA mathematical model. Bitbucket as Version Control System is used as web based hosting service and the proposed model is compared by maintaining similar sprints in SCRUM and VSprint model. VCS and previous SRS documents are the important components of this proposed model which helps in increasing the work speed at different phases of software development which the existing models does not consider.
KEYWORDS:
Agile; Software Requirement Specification; Software Engineering; Version Control System; Scrum; BitBucket
Copy the following to cite this article:
Rathore M. S, Jose D. V. Software Upgradation Model Based on Agile Methodology. Orient.J. Comp. Sci. and Technol;10(2)
|
Copy the following to cite this URL:
Rathore M. S, Jose D. V. Software Upgradation Model Based on Agile Methodology. Orient. J. Comp. Sci. and Technol;10(2). Available from: http://www.computerscijournal.org/?p=5269
|
Introduction
In software engineering, the software development model can be either traditional that include waterfall, prototype, incremental models etc or agile software development models that include SCRUM, crystal etc. There exists no such model currently, which dictates how to enhance existing software. In fact, to update existing software to higher level we don’t have any specific model even though the requirement of this type models is very high, especially in this highly dynamic scenario of software growth. It is very difficult for any organization to follow the entire sequence order of software development life cycle (SDLC) for this continuous up gradation process. SDLC mainly include analysis, design, coding and maintenance. After analyzing, testing is important as a second phase and these two phases should run iteratively for certain interval. The requirement of user involvement is the critical section of this model.
Management and IT (Information Technology) departments are two pillars of any organization. The coordination and communication should be strong enough to make SDLC successful. These two departments play very vital role in success of any SDLC Models. Management is a process of doing the things efficiently and effectively. SDLC Models play a very important role in management of resources of an organization. Agile is an iterative and incremental approach of SDLC10,11,12,13,14. A summary of the various agile models is given below.
Extreme Programming (XP) is a discipline of software development based on certain values of feedback, simplicity, communication, courage, and respect3. It works by bringing the whole team as a unit in the presence of simple practices, with adequate feedback to enable the team to see the progress and to tune the practices to their unique situation.
Crystal Clear methods mainly focus on small team communication that is not complex in nature. This is basically transparent methodology of software development. This method is derived from crystal family of methodology which is lightweight in nature.
Scrum play vital role in managing system development process. It’s a factual approach, for applying the new concepts of industrial process control theory to systems development leading to an approach that reintroduces the thought of flexibility, adaptability and productivity2. Scrum is a method for incrementally building software package in complicated environments. Beginning provides empirical controls that enable the event to occur as near the sting of chaos because the developing organization will tolerate”. They had claimed that “small groups that job severally area more effective and efficient for the organization” 4.
Lean Software Development(LSD) is basically product based software development paradigm, which mainly focus on five principles are leading to value addition to the end users, clean work with no waste, optimization via steam evaluation, empowerment of people and a continuous space for improvement. An example of agile methodology by showcased during 2010 survey done by Forrester which lead to 35 percent of organization opinion described their key growth method which was based on agile methodology and usage of lean principles. From the software scenario, the work towards lean system originated with agile methodology during coding5.When lean is correctly applied its result in high quality software that is developed quickly and most effective to cost. Basically, the success of many of the practices of Agile Software Development can be explained by understanding the principles of LSD 1,2,3,4.
Feature-Driven Development (FDD) mainly focuses on design and building phases, it doesn’t cover the whole development life cycle3. Dynamic Software Development method (DSDM) is forward as well as backward looking framework for agile project development. It is proven framework which mainly focuses on quick product delivery with a guiding methodology to control the process simultaneously6.
Materials and Methods
VSprint, the proposed agile model and its architecture have discussed below. The architecture has the following components;
Freelancer Projects or Vendor Verified Projects: In an IT based organization there are two basic sources of getting projects. Freelancer project are those projects which company mainly take from online bidding over various freelance websites. These projects are mainly outsourced by clients over the internet and hire those organizations or individual who are feasible for the project. And Vendor Verified Projects are those projects which may include individuals, government, private organization and institute.
List of Potential Project: Potential projects are those projects which company able to convert the client idea into reality. On the basis of requirement and handiness of the resources listing is done for the achievable projects. The resulting list of attainable projects showcase the strength and capability of organizations. List of projects is categorized into two parts i.e. new projects and existing projects upgradation. New projects are those projects which the organization starts from scratch. Existing projects upgradation are those projects which already exist and required further development or version.
Software Requirements Specification (SRS): SRS is a well-defined document which includes the complete description about the specific project. It shows that how the system is expected to perform. SRS helps to trace the progress and consistency of the project. It includes functional and nonfunctional requirements of specific project. SRS prepare the basis of the customer requirements. It helps in establishing the base for an agreement between a customer and an organization. Its helps to provide the estimating value i.e. costs, risks and schedules.
Revisiting Previous Mistakes: These are the collections SRS of various projects completed by the organization. These documents play a very important role to reduce the chance of failure of the new project. Using these documents an organization reduces the chance of future mistakes which they did previously. This part come when the organization had completed the similar project previously and for the new project they verify the mistake they did in the previous project. Due to this the completion time of the project can be reduced up to certain extends because there is very less chances of making the previous mistakes.
Table 1: Hypotheses
Hypothesis
|
Description
|
Null Hypotheses(H0)
|
There is no difference between Scrum anVSprint in terms of completed task
|
Alternative Hypothesis(H1)
|
There is a difference between Scrum anVSprint in terms of completed task
|
Table 2: Completed Task
source
|
df
|
SS
|
MS
|
F
|
P-value
|
treatments
|
1
|
0.000
|
0.000
|
0.0000
|
1.0000
|
error
|
28
|
521.467
|
18.624
|
|
|
Total
|
29
|
521.467
|
|
|
|
Initial funding: SRS play vital role in deciding the initial funding. Initial funding varies from project-to-project. It can be lump sum or in the form of milestone. Lump sum means payment made in one shot where milestone is a way in which payments are made in instalment after completion of each milestone. Milestone is depicted depending on the king of project.
Kickoff the project: Project kickoff implies the starting of the work allotted. Employees are allotted the work according to the duties and functional requirement of the project. Accordingly the project team is allotted the project based on the scope of the project to be finished in given time frame.
Works Items: list the work items in a sequence of particular project to be done.
Iteration work items: list of items which are iterative in nature and have the highest priority in development. The whole project is break down into chunks and assigns various development teams.
Table 3: Remaining Efforts
source
|
Df
|
SS
|
MS
|
F
|
P-value
|
treatments
|
1
|
246.533
|
246.533
|
0.3036
|
0.8889
|
error
|
28
|
22738.933
|
812.105
|
|
|
Total
|
29
|
22985.457
|
|
|
|
Sprint: the basic difference between sprint and iteration is that all sprints are iterations but not all iterations are sprints. As per the sprint length, anything goes as long as the sprint is time-boxed. It will be helpful if all sprint of similar duration so that it’s less to remember and your plan execute more accurately. In the proposed model, one iteration is of thirty days and it consists of one to four sprints. There is one additional component added to the iteration is VCS. In this the daily work of project is collaborated online in specific repository. It is very helpful to integration project efficiently because anyone who has the access rights to repository can make the push and pull request from the repository. This will increase the speed of coding and designing phase and remove the chances of duplication of files in the whole project. It also helps analysis the contribution of each individual in the project and makes the project traceable. And also include the product backlog refinement.
Iteration review and retrospective: After successful completion of one iteration look back the project process and progress and show the demo system to stakeholders. Get the feedback from them and also gain the funding for the next iteration. It creates a cycle between Milestone and this phase until the project gets completed.
Release System in production: The release activity starts from the completed development process of the project. It mainly includes all the operations to prepare a system for assembly and transfer to the customer site online. Therefore, it must determine the resources required to execute at the customer site and collect required information for carrying out subsequent activities of deployment process.
Operate and support system in production: This phase come when customer wants the technical support even after the completion of the project. That mainly includes maintenance and testing of the project.
Release: The release phase is the last stage of the development it means the project is successfully completed. Alas the project is removed from the system queue as the project lifespan is over.
Experimental Setup
For the experimental setup Bitbucket, Numbers and statistical analysis usingANOVA is used. A project for fourteen days with three members and ninety eight tasks were considered for experimentation. The details of these are explained below.
Bitbucket is basically a web-based hosting service for projects. It is mainly used for those project which use either the Mercurial or Git revision control system. It it’s similar to GitHub. Over BitBucket it is easy to maintain change sets , monitors sources code modification and drills through various sources files. Bitbucket is a place where you can code, manage and collaborate. Prove code review more effectively and efficiently. Holds various discussion right in the source code with feasible inline comments. It is easy to secure your workflow because by using BitBucket it prevents error by controlling the actions users can perform with branch permission. Get granular permission at the project, repository, or branch level. The [Figure 1] had taken from BitBucket, where we can see the contribution time period maintain throughout the projects.
Numbers is a spreadsheet application developed by Apple Inc. It’s similar to Microsoft Excel. Numbers also includes various features from the seminal Lotus Improv, and the use of formula based on ranges rather than cells. In our project we had used numbers to maintain eight sprint for iAdvocate. It used for maintain various parameters of the project i.e. Completed Task, Remaining Efforts, Ideal Burndown and Remaining task and on the basis of data generated, Burndown graph7,8,9.
ANOVA is collection of statistical models used to analyses the difference among means and their associated procedures.
The hypotheses [Table 1] of interest during an ANOVA are as follows:
H0 implies : μ1 = μ2 = μ3 … = μk
H1 depicts : Means are unequal for all.
And k = the amount of independent comparison groups.
Results and Discussion
The experiment is applied on the Web development Project i.e. “iAdovcate” ,a website.
Sprint Burndown chart is called a graphical description of going ahead of the task to perform with time. The left out effort for a given period of time is showcased by the Burn-down chart. By reviewing a sprint Burn-down report, it’s very easy to tack the project process and how much work remains in the sprint backlog. Completed Task is represented in [Table 2].The Bitbucket contribution graph is represented in Figure 2 .Statisticalt-Graph for completed task remaining tasks are given in Figure 3 and 4 respectively.The burndown charts for agile model and VCS is represented in Figures 5 and 6. If f < 0.5, so we takeover the null hypothesis by the usage of the alternative hypothesis. That depicts the VSprint model is more efficient and effective than Scrum. In this case, 0.5>0.000. Therefore, we reject the null hypothesis. Remaining Efforts shown in [Table 3].Similarly, if f < 0.5, so we take over the null hypothesis by the alternative hypothesis again. That means the VSprint model is more efficient and effective than Scrum. In this case, 0.5 > 0.000. Therefore, we reject the null hypothesis.
Conclusions
This paper proposes a new software upgradation model, the VSprint model, based on agile methodology. The experiment results showcase the productivity enhancement of the proposed model. It includes the working style of various models with different phases in detail. A comparative analysis of the existing agile software development models using various parameters is also carried out which enables to highlight the key difference between the existing models and the proposed model. VSprint architecture visualizes the overall flow of a particular project. It also show the involvement of the previous documents and VCS which makes it easily traceable. ANOVA tools are used as a pillar to give more strength to the proposed model in mathematical form. Graphical representation of the burndown charts of the project helps to have a comparative study between Scrum and VSprint model which showcase the importance of VSprint in the modern world. The experiments have proved that the proposed model outperforms Scrum model in terms of the various performance evaluation metrics.
Currently the proposed model is implemented on a website development project at a small scale with limited resources. Further enhancement to be carried out is to implement this on mobile application based projects as well with different parameters and comparing the proposed model with other agile development models to identify its feasibility in different application scenarios.
References
- Lekh R. Exhaustive study of SDLC phases and their best practices to create CDP model for process improvement. In Computer Engineering and Applications (ICACEA), 2015 International Conference on Advances in 2015 Mar 19 (pp. 997-1003). IEEE.
- Raj G, Singh D, Bansal A. Analysis for security implementation in SDLC. InConfluence The Next Generation Information Technology Summit (Confluence), 2014 5th International Conference- 2014 Sep 25 (pp. 221-226). IEEE.
CrossRef
- West D, Hammond JS. The Forrester Wave™: Agile Development Management Tools, Q2 2010. Forrester Research. 2010.
- Rising L, Janoff NS. The Scrum software development process for small teams. IEEE software. 2000 Jul 1;17(4):26.// modify it
CrossRef
- Malhotra C, Chug A. Agile testing with Scrum-A survey. International Journal of Advanced Research in Computer Science and Software Engineering. 2013 Mar;3(3):452-9.
- Olsson HH, Alahyari H, Bosch J. Climbing the” Stairway to Heaven”–A Mulitiple-Case Study Exploring Barriers in the Transition from Agile Development towards Continuous Deployment of Software. In2012 38th Euromicro Conference on Software Engineering and Advanced Applications 2012 Sep 5 (pp. 392-399). IEEE.
- Aljallabi BM, Mansour A. Enhancement approach for non-functional requirements analysis in Agile environment. In Computing, Control, Networking, Electronics and Embedded Systems Engineering (ICCNEEE), 2015 International Conference on 2015 Sep 7 (pp. 428-433). IEEE.
- Awad MA. A comparison between agile and traditional software development methodologies. University of Western Australia. 2005.
- Livermore JA. Factors that impact implementing an agile software development methodology. InProceedings 2007 IEEE SoutheastCon 2007 Mar 22 (pp. 82-86). IEEE.
- Lagerberg L, Skude T, Emanuelsson P, Sandahl K, Stahl D. The impact of agile principles and practices on large-scale software development projects: A multiple-case study of two projects at ericsson. In Empirical Software Engineering and Measurement, 2013 ACM/IEEE International Symposium on 2013 Oct 10 (pp. 348-356). IEEE.
- Abrahamsson P, Salo O, Ronkainen J, Warsta J. Agile software development methods: Review and analysis.
- Sharma S, Sarkar D, Gupta D. Agile processes and methodologies: A conceptual study. International journal on computer science and Engineering. 2012 May 1;4(5):892.
- Malhotra C, Chug A. Agile testing with Scrum-A survey. International Journal of Advanced Research in Computer Science and Software Engineering. 2013 Mar;3(3):452-9.
- Strode DE. The agile methods: An analytical comparison of five agile methods and an investigation of their target environment. Unpublished Master of Information Sciences (Information Systems), Massey University, Palmerston North. 2005.
This work is licensed under a Creative Commons Attribution 4.0 International License.