A Mapping Model For Transforming Traditional Software Development Methods To Agile Methodology
A Mapping Model For Transforming Traditional Software Development Methods To Agile Methodology
4, July 2013
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO AGILE METHODOLOGY
Rashmi Popli1, Anita2 and Dr. Naresh Chauhan3
Department of Computer Engineering, YMCA University of Science & Technology, Faridabad Haryana, India
rashmimukhija@gmail.com anitaarora_20@rediffmail.com nareshchauhan19@yahoo.com
ABSTRACT
Agility is bringing in responsibility and ownership in individuals, which will eventually bring out effectiveness and efficiency in deliverables. Agile model is growing in the market at very good pace. Companies are drifting from traditional Software Development Life Cycle models to Agile Environment for the purpose of attaining quality and for the sake of saving cost and time. Nimbleness nature of Agile is helpful in frequent releases so as to satisfy the customer by providing frequent dual feedback. In Traditional models, life cycle is properly defined and also phases are elaborated by specifying needed input and output parameters. On the other hand, in Agile environment, phases are specific to methodologies of Agile - Extreme Programming etc. In this paper a common life cycle approach is proposed that is applicable for different kinds of teams. The paper aims to describe a mapping function for mapping of traditional methods to Agile method.
KEYWORDS
Agile Software Development, Pair programming, Mapping function.
1. INTRODUCTION
In the last few years Agile software development life cycle appeared as a reaction to traditional ways of developing software and acknowledges the need for an alternative to documentation driven, heavyweight software development processes. Lifecycle of any model is the time span between activities that comprises of release of first version to last version (at customer desk). Software effort needed for development follows one lifecycle. The aim of software development [4, 15] is to utilize the resources and time to its fullest but not at the cost of sacrificing quality. Lifecycle models provide a starting point for defining what will be done. There is a big difference between process and life cycle. A process is a sequence of steps for achieving any goal. A process refers to the specific steps used in a specific organization to build systems. It indicates the specific activities that must be undertaken and artifacts that must be produced. The process definitions include more detail than provided lifecycle models.
DOI : 10.5121/ijsea.2013.4405
53
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
More traditional approaches, like the Waterfall model and its variances, facilitate knowledge sharing primarily through documentation. They also promote usage of role based teams and detailed plans of entire software development lifecycle. The allocation of work specifies not only what is to be done but how it is to be done and the exact time allowed for doing it . This shifts the focus from individuals and their creative abilities to the processes themselves. These traditional approaches are often referred to as plan-driven or task-based. In contrary, agile methods namely extreme programming [6, 9, 16] emphasize and value individuals and interactions over processes. Dynamic business environments for software development and the need to anticipate even late requirement changes led to many different management approaches [17]. Since the establishment of the Agile Manifesto in 2001 they have been called agile methods [18]. These methods promise higher customer satisfaction, better adherence to delivery dates, better working climate for developers and so on.
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
Requirements
Design
Implementation
Testing
Maintenance
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
Also, prototype here is not created rather stories are developed and demo is shown to the customers.
It generates working software quickly and early during the software life cycle. It is more flexible less costly to change scope and requirements. It is easier to test and debug during a smaller iteration. Also, it is easier to manage risk because risky pieces are identified and handled during its iteration. In this case, problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. In agile context, builds are gradually created. Then review is done with the help of demonstrations to the customer. Also, review is possible within the existing team members or product owners.
Planned System
System Modelling
Performance Improvement
Performance Evaluation
The basic concepts of spiral model are Planned system, System Modeling, performance evaluation, performance evaluation as shown in Figure 2. Major applications of spiral model are
56
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
mainly high risk projects in which requirements are not clearly understood, architecture is not clear, quality issues, and problem in the underlying technology. Problem with this model is its management cost as it is complex way of software development. Also, amount of documentation required in intermediate stages is a tough affair. In agile, manifesto says that working software is more desirable over comprehensive documentation. Here, displaying of information is preferred as compared with keeping piles of documents.
57
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
These components are the base of an agile culture. On this platform different pillars can be placed which can be helpful to achieve the more quality standards which are desired by the customer. Description of each and every component is given below: TFR- In Agile working Environment, Team can be formed by devoting time by trainers in upgrading the technical and managerial skills, polishing the right kind of attitude and embracing the change from time to time (Refer Figure 5) and by following good recruitment policies to identify the right person. In the team, there can be experienced members as well as fresher but attitude is the biggest factor while doing recruitment. GBC- Stories [8] are identified, evaluated and approved by customer, quality analyst and business analyst by considering the market demand and return on investment value. Evaluation is carried out by finding the competitive level of the existing products. Presence of QA along with customer helps in setting the template in mind so that at pair programming moment he or she can
58
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
supply the right kind of feedback to the developer. Also he or she can design test cases before development can go in progress.
TFR
SFP
GBC
REC
EBE
DRF
CTC
EBE- Effort and budget are estimated by considering the resource and tool requirements for each story from time to time by product owner or customer by keeping in mind the story priority. After identification of iteration or sprint stories two weeks cycle starts. In some cases, this time period of sprint can be smaller as less is always more. Estimation related with effort can be done by planning poker or any other famous technique. Estimation is possible at three scales namely iteration plan, release plan and project estimation. Estimation units are story points and ideal time. Also, velocity is very important for estimating how many stories get completed in one sprint or for finding throughput of the team.
Requirements
Development
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
CTC- Implementation of story starts when estimation are properly done. Pair programming (Refer Figure 6) approach [1, 2, 11] is used while doing coding and testing in which one person is the leader or executor and second person is the reviewer by working on the single terminal. This immediate feedback helps in reducing number of bugs which may otherwise keep on propagating. Remote pair programming, also known as virtual pair programming or distributed pair programming, is pair programming where the two programmers are in different locations By pair programming knowledge get distributed, programming skills are shared and mistakes are reduced. Also, test driven development [3, 7, 12, 13, 14] (TDD) approach is used in which test cases are written before writing the code for the story.
Development Team
DRF- At the time of review, team members, management and customers sat together for the purpose of demonstrations of the software product. One of the representatives of team gives the demo for the product. Then, goal matching action is performed meaning that whether story approved has been the end product or not. In the figure 7 (shown below), two boards are there, one is for demonstration purpose and second one is for the feedback. Feedback can be given by any member including customer, management or also existing member in the team. This review meeting is informal kind of meeting.
Working Product after each Iteration Development Team Customer Stakeholder onsite team Immediate Customer feedback
REC- Further, in the agile cycle, risk evaluation is done for the future stories so that things can be improved or taken to the next level of quality. Actually customer is not just customer or end user
60
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
rather he or she is bothered about money, quality, time and last but not the least about sustainability of the product in the market for long time. In short, he or she is worried about return on investment (ROI) [16]. So, there is a need of early detection of high risk stories so that risky outcomes are in mind before finishing the current stories. After effect of it can be significant viz chances in quality improvement to many more. SFP- Ultimately, all parties are satisfied namely customer, team and management as product can be delivered on time by following continuous delivery, continuous feedback, continuous integration, continuous testing and continuous ROI. Now, question of mapping arises, when there is a need to do transition from existing model to agile. Issues that may come during mapping are: What is the reason for the transition? Is management interested or customer? Whether team is of that much calibre or not? Whether infrastructure requirements are sufficient like open workspace or not? Whether automated tool knowledge is needed?
After resolving all these issues, work can be started for the mapping function from one model to agile. Figure 8 is for the mapping function to take place in the existing organization when transformation decision has been taken by the management. In the formula (2), mapping function MF is important. Its role is to map the large teams into small teams (T), large tasks into small stories (J), long iteration into small sprint (I), long feedback cycle into instant feedback (F), late delivery into fast small delivery (D), long meetings into daily small meetings (M), late testing into test driven testing (TG), two monitors into one terminal for pair programming (MO), estimation in lines of code into story points (E), and last but not the least project manager into no boss approach (B),co-ordination effectiveness(CE).The CE (Refer Figure 10) depends upon some implicit and explicit factors (Refer Formula (1)). CE=Implicit factors+ Explicit factors. MF = (T, J, I, F, D, M, TG, MO, E, B, CE). (1) (2)
By using this mapping function, any of the traditional models can be converted to the agile environment. In this function, mainly ten parameters are there which are needed for the complete agile environment in an organization. Along with it at hardware ground, cubicles can be converted into open work environment, many documents can be converted into one story board, many automated tools can be converted into specific tool for specific technology/domain, and more overtime is converted into 40hrs/ week of effective work. It means in short agile is less is more approach which is more beneficial with less cost and time. But interactions are more through face to face communication in collocated culture and through video conference in distributed environment.
61
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
Know why
By using this mapping function, any of the traditional models can be converted to the agile environment. In this function, mainly ten parameters are there which are needed for the complete agile environment in an organization. Along with it at hardware ground, cubicles can be converted into open work environment, many documents can be converted into one story board, many automated tools can be converted into specific tool for specific technology/domain, and more overtime is converted into 40hrs/ week of effective work. It means in short agile is less is more approach which is more beneficial with less cost and time. But interactions are more through face to face communication in collocated culture and through video conference in distributed environment.
62
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013
5. THE BENEFITS
The proposed mapping function can be functional when parameters are identified in the existing model and transformation is done as per the mapping parameters mentioned in the previous section. If input parameters are less in existing model then transformation would not take place and left out parameters of the mapping function would be considered from the scratch in the new model i.e. Agile. Major benefits that can be reflected from this mapping function are in terms of: Time consumption would be less. Simple approach. Everybody would be happy (team members, client, and management). Old resources would not be unemployed.
ACKNOWLEDGEMENTS
We would like to thank the reviewers for their useful suggestions that helped us to improve our work. We would also like to extend our gratitude to our university who provided us with the needed research facilities.
REFERENCES
[1] [2] [3] [4] [5] [6] [7] [8] Duque, R. and Bravo, C.(2008) Analyzing work productivity and program quality in collaborative Programming, .The 3rd International Conference on Software Engineering Advances, pp.270- 276. Preston,D.,(2006) Using collaborative learning research to enhance pair programming pedagogy, ACM SIGITE Newsletter, Vol.3, No.1, pp.16-21 Kent Beck,(2002), Test Driven Development Addison Wesley. Abran, A., Moore, J. W., Bourque, P., & Dupuis, R. (2004). Guide to the software engineering body of knowledge. Los Alamitos, CA: IEEE Computer Society. Agile Manifesto. (2001). Manifesto for agile software development. Retrieved January 1, 2009, from http://www.agilemanifesto.org Beck, K. (2001). Extreme programming: Embrace change. Upper Saddle River, NJ: Addison-Wesley. Briggs, T., & Girard, C. D. (2007). Tools and techniques for test driven learning in CS1. Journal of Computing Sciences in Colleges, 22(3), 37-43. Cohn, M. (2004). User stories applied: For agile software development. Boston, MA: AddisonWesley. 63
International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.4, July 2013 [9] Hedin, G., Bendix, L., & Magnusson, B. (2003). Introducing software engineering by means of extreme programming. Proceedings of the 25th International Conference on Software Engineering (ICSE 2003), Portland, Oregon, 586-593. Highsmith, J. A. (2002). Agile software development ecosystems. Boston, MA: Addison Wesley. Jacobson, N., & Schaefer, S. K. (2008). Pair programming in CS1: Overcoming objections to its adoption. SIGCSE Bulletin, 40(2), 93-96. Janzen, D. S., & Saiedian, H. (2006). Test driven learning: Intrinsic integration of testing into the CS/SE curriculum. Proceedings of the 37th ACM Technical Symposium on Computer Science Education (SIGCSE 2006), Houston, Texas, USA, 254-258. Janzen, D. S., & Saiedian, H. (2008). Test driven learning in early programming courses.Proceeding of the 39th ACM Technical Symposium on Computer Science Education (SIGCSE2008), Portland, Oregon, USA, 532-536. Kollanus, S., & Isomottonen, V. (2008). Test driven development in education: Experiences with critical viewpoints. Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education (ITICSE 2008), Madrid, Spain, 124-127. Mead, N., Carter, D., & Lutz, M. (1997). The state of software engineering education and training. IEEE Software, 14(6), 22-25. Rico, D. F. (2008). What is the ROI of agile vs. traditional methods? An analysis of extreme programming, testdriven development, pair programming, and scrum (using real options).TickIT International, 10(4), 9-18. Koch,(2005) Agile Software Development - Evaluating the methods for your Organization. Artech House Inc., Norwood, Massachusetts K. Beck et al.,(2001) Manifesto for Agile Software Development, Available at:http://agilemanifesto.org/
[13]
[14]
[15] [16]
[17] [18]
AUTHORS
1. RASHMI POPLI
Rashmi Popli is pursuing her Ph.D in Computer Engineering from YMCA University of Science & Technology, M.Tech(CE) from M.D University in year 2008,,B.Tech(IT) from M.D University in the year 2004.She has 9 years of experience in teaching. Presently she is working as a Assistant Professor in department of Computer Engineering in YMCA University of Science &Technology, Faridabad, Haryana, India. Her research areas include Software Engineering, Software Testing and Software Quality. 2. ANITA
Anita is pursuing her Ph.D in Computer Engineering from YMCA University of Science & Technology, M.Tech(CE) from M.D University in year 2009, B.Tech(CSE) from M.D University in the year 2004. She has 11 months of industry experience and 7 years of teaching experience. She is lifetime member of Computer Society of India and Agile Software Community of India. Her research includes Software Engineering, Software Testing and Software Quality. DR. NARESH CHAUHAN Naresh Chauhan received his Ph.D in Computer Engineering in 2008 from M.D University, M.Tech(IT) form GGSIT,Delhi in year 2004,B.Tech(CE) from NIT Kurukshetra in 1992.He has 20 years of experience in teaching as well as in industries like Bharat Electronics and Motorola India Pvt. Ltd.Presently he is working as a Professor in the department of Computer Engineering ,YMCA University of Science and Technology, Faridabad, Haryana, India.. His research areas include Internet Technologies, Software Engineering, Software Testing and Real Time Systems.
64