Agile Software Development Methodologies & Correlation with Employability Skills

Similar documents
AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

Comparing Agile Software Processes Based on the Software Development Project Requirements

Comparative Analysis of Different Agile Methodologies

Generalizing Agile Software Development Life Cycle

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

A Contrast and Comparison of Modern Software Process Models

Software processes that are:

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

A Review of Agile Software Development Methodologies

WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF

The Impact of Agile Methods on Software Project Management

Agile Software Development

Emergence Of Agile Software Development Methodologies: A Sri Lankan Software R & D Outlook

Agile Processes and Methodologies: A Conceptual Study

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

Agile Projects 7. Agile Project Management 21

Neglecting Agile Principles and Practices: A Case Study

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Software Development Life Cycle Models - Process Models. Week 2, Session 1

The Impact of Agile Methods on Software Project Management

Akhil Kumar 1, Bindu Goel 2

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Agile Development Overview

Software Development Methodologies

The Role of Agile Methodology in Project Management

A Quantitative Framework for the Evaluation of Agile Methodologies

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Product Derivation Process and Agile Approaches: Exploring the Integration Potential

Changing Roles and Responsibilities from Traditional project management to Agile project management

Framework for Agile Methods Classification

AGILE METHODOLOGIES, THEIR IMPACT ON SOFTWARE DEVELOPMENT AND IMPLEMENTATION: AN EVIDENCE FROM PAKISTAN

How To Understand The Limitations Of An Agile Software Development

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

How To Plan A Project

CHALLENGES AND WEAKNESSES OF AGILE METHOD IN ENTERPRISE ARCHITECTURE

A Study of the Agile Software Development Methods, Applicability and Implications in Industry

Requirements Engineering and Agile Software Development

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

How to manage agile development? Rose Pruyne Jack Reed

Moonzoo Kim CS Division of EECS Dept. KAIST

Agile Software Development Methodologies and Its Quality Assurance

CRYSTALLIZATION OF AGILITY Back to Basics

AgileSoftwareDevelopmentandTestingApproachandChallengesinAdvancedDistributedSystems

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

AGILE vs. WATERFALL METHODOLOGIES

Agile project management: A magic bullet?

Software Development Life Cycle (SDLC)

Agile Software Development

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Software Development Going Incremental, Iterative and Agile:

"Bezpieczny Projekt"

Agile teams: Do s and don ts in agile software development

Software Development with Agile Methods

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

Software Development Methodologies

AGILE SOFTWARE DEVELOPMENT METHODOLOGIES: AN OVERVIEW OF THE CURRENT STATE OF RESEARCH

Agile Software Development compliant to Safety Standards?

Agile software development challenges and solutions: a simple conceptual solution model

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

An Approach for Using CMMI in Agile Software Development Assessments: Experiences from Three Case Studies

AGILE DEVELOPMENT WITH A CAPITAL A

CSSE 372 Software Project Management: Managing Agile Projects

Introduction to Agile Software Development

14 Requirements Engineering for Agile Methods

Issues in Internet Design and Development

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Software Quality and Agile Methods

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India

System development lifecycle waterfall model

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

REVIEW OF AGILE METHODOLOGIES IN SOFTWARE DEVELOPMENT

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Agile and Secure: Can We Be Both?

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

IMPORTANT CONSIDERATIONS FOR AGILE SOFTWARE DEVELOPMENT METHODS GOVERNANCE

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Agile Project Management

Agile Software Development Approaches and Their History. Volkan Günal

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Comparison between Agile and Traditional software development methodologies

Agile Software Development. Mohsen Afsharchi

Future of CMM and Quality Improvement. Roy Ko Hong Kong Productivity Council

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Transcription:

Agile Software Development Methodologies & Correlation with Employability Skills Dineshkumar Lohiya School of Computer and Information Science University of South Australia, Adelaide Dineshkumar.Lohiya@postgrads.unisa.edu.au Abstract A comprehensive knowledge of available software development methods becomes vital to serve rapidly changing environment of software engineering world. Some methods works better than other based on the characteristics of project and customer requirements. This paper is focusing on both the positive as well as negative sides of Agile Methods. Comparison between Agile methods and other plan driven traditional methods focused on its challenges. Paper covers how education sector has started preparing courses on Agile methods and why it failed to serve basic principles of project management. Research shows the success of agile methods on smaller scale. S I. INTRODUCTION oftware engineering is an emerging industry in 21 st century. Number of traditional methods are vastly used to serve various SD projects depends on their characteristics and requirements. The changing environmental conditions and innovative technology has created demand of some quicker and better quality product methods. To meet with these needs of industry some software development methods are found, which serves better than other in some perspectives [1]. They are known as Agile methods. Firstly, this paper looks on various agile methods available for software development (SD). They are extreme programming, SCRUM, Dynamic system development method, Adaptive software development, Crystal methods and Feature driven development. Their convergence in Agile manifesto is also discussed at end of section II. After that benefits and limitations of Agile methods are highlighted in section III with help of some tabular data. Section IV focused on comparison between Agile methods and some traditional SD methods like waterfall model and cowboy. The major challenges of accepting Agile methods are briefly described too. It also demonstrated that how Agile methods serves speedily with needed quality requirements based on the project size. Section V gives light on how Agile methods have introduced new area of study in education sector. The impact of Agile methods on project management is also covered in this section. Finally, the paper shows the conclusion of the survey that extensive research is needed in field of Agile methods. Major limitations of these methods make it unsuitable for larger SD project. Although Agile methods serve effectively for small organization. Lastly, the paper focused on various employability skills like communication, team work, problem solving, self management, planning and organizing, technology and learning. It demonstrates how these skills are required and also get developed among professionals of software industry. II. BRIEF FOCUS ON AGILE METHODS In this section some agile methods are briefly described and discussed their convergence in the Agile Manifesto [2]. A. Extreme Programming The most successful Agile Method is extreme Programming (XP). XP has five stages in it life cycle, to meet the goals. First stage is exploration in which customer explains their requirements and SD team decide that which tools and technology will probably useful. In second stage of Planning, SD team prepares a work schedule and divides the work into several iteration which called third stage iterations to release. Necessary testing has been conducted in Productionizing stage and the improvements identified should be corrected in maintenance stage. Death is the last stage of XP method where customer agrees with the application design with no changes required in future [1]. B. SCRUM SCRUM is a method of developing software in changing environment and keeping coordination between team members to deal with the issues of changing situations [3]. It has three phases: Pre-game, Development and Post-game. Pre-game have two sub-phases: Planning in which the requirements are identified and design of the application is briefly discussed in Architecture sub-phase. New functions are identified in development phase. Development phase is based on several iterative cycles which are known as Sprints which have further sub-stages like requirements, analysis, design, evolution and delivery [1]. C. Dynamic System Development Method (DSDM) In DSDM the time is fixed and resources are firstly required. After this the SD team adjusts the amount of functionality as per the requirement. It has five phases: Feasibility study, Business Study, Functional Model Iteration, Design and Build Iteration and Implementation. DSDM is the most suitable framework for rapid application development

2 (RAD). DSDM was very famous in UK since the mid 1990 s. [4]. D. Adaptive Software Development (ASD) The founder of ASD was James A. Highsmith III. ASD generally used for large and complex SD projects. The main characteristic of ASD is that it designs the framework for the large project which reduces the confusion and keeps the development team working on track. The important characteristics of ASD are like it is Mission-driven, Component-based, Iterative, Time-Boxed, Change-Tolerant and Risk-Driven [4, p.71]. E. Crystal Methods The underlying assumption of Crystal methods is that the people involved in SD project are more important than the tools or processes used throughout the project life cycle. Crystal methods are combinations of various methodologies which are best suitable according to the individual projects needs. These methodologies are selected based on three main factors: level of communication needed, life-threatening implications and corporate priorities [5]. F. Feature Driven Development (FDD) A Singapore based bank was in need of a development process which becomes easy to use as well as provides timely & accurate data of progress to management for review. FDD methodology was the outcome of that. The major benefit of FDD methods is that it does not require insidious training for SD team. FDD has five development phases and customer gets output at each phase end which provides more flexibility to work on high priority feature [5]. Convergence of Agile Methods in Agile Manifesto Agile Manifesto was formed in 2001 to ties all Agile methods together. The main four values has been expressed are: Individuals and interactions over processes and tools, Working software over comprehensive documentation, Customer collaboration over contract negotiation and Responding to change over following a plan [1], [2]. Main idea of manifesto was to focus on the skills of the personnel rather than process. Research says that some best processes also get failed because of the lack of knowledge of the people involved in the project [6]. III. PROS AND CONS OF AGILE METHODS Characteristics and Benefits of Agile Methods Agile methods have certain unique characteristics over traditional SD methods which serves some important benefits too. It broadly described in table I [4]-[7]. After looking at benefits of Agile methods, we come to know that how they are emerge as a new successful SD methodologies by overcoming crucial limitations of traditional methods in practice. Table I: Correlation between Characteristics and Benefits of Agile Methods Characteristics Benefits Cost & Time saving, Meet changing Iterative nature requirements and quick modification, Incremental Minimizing risk, feedback control Knowledge sharing, Better product Cooperative quality, Expert solution (Benefits of (Collaborative) individual s talent) Simple Minimal training, Lesser documentation Close Physical face to face communication & Quick location of teams decisions collaborative Adaptive Able to make emergency changes Customer consultation at every stage People-oriented leads to greater satisfaction, Superior employee moral Research shows that at least one agile method has been used by many organizations in late 2000 [6]. Though, some negative aspects of Agile methods limits them to be useful only for smaller organisations. Agile manifesto is working to make Agile methods officially useful in software engineering [4]. Limitations of Agile Methods As there are so many small groups and people are involved, Agile Method is not suitable for the big organizations and large SD projects. Agile methods do not have any official definition in the field of SD, which put question mark against its credibility [8], [9]. Some research indicates that teamwork improves the project quality & speed, but risk becomes higher if there is only one expert among number of teams. Also, the lesser documentation creates obstacle for the outside reviewers in situations of emergency [8], [10]. Large number of involvement of people as team may cause moral clashes between them. Some research found that lesser management support turns into failure of project Politics trump people [6]. IV. COMPARISON AND CHALLENGES Comparison between some Traditional plan-driven methods and Agile methods is needed to answer the question: Can agile methods ensure quality even though they develop software faster and can handle unstable requirements [11]? A. Waterfall Model vs. Agile Methods There are few similarities between waterfall model and agile methods in development phases. The quality produce by both of these methods are nearly similar. The major difference is in cost as agile methods are comparatively cheaper than waterfall model [11]. B. Cowboy Coding vs. Agile Methods Agile Methods generally follows a defined process which in absent in cowboy coding traditional method. The major difference is in the working approach of individual is completely opposite in these methods. Cowboy coding follow

3 individual driven activity and Agile Methods follow team or group driven activity. So the quality is more reliable in Agile Methods than cowboy coding, as customer satisfaction is also more in Agile methods [11]. Challenges in adoption of Agile Methods Agile methods have emerged as dramatically beneficial approach in SD industry. Also the demand of SD industry is changing due to several innovative technological changes. The existing organizations are forced to accept some Agile methods to serve their customer in better way as well as survive in highly competitive market. Due to established management structure and policies it has created many challenges for them to accepting Agile methods. Table II demonstrates that how characteristics of traditional methods and agile methods fall into contrast and create challenges for the organizations to adopt Agile methods [4], [12] - [14]. Table II: Traditional vs. Agile SD Methods Agile Methods Traditional Methods Iterative structure Life cycle based structure Lesser documentation Higher documentation Cooperative (Collaborative) management style Top to down hierarchy based management style Simple and easy for professions Continuous training required face to face communication & Quick decisions process Formal communication process leads to delay in decisions Last minutes changes possible Requires full customer specifications before SD starts People-oriented control practices Process-oriented control practices Customer involved at each phase of SD process Customer involved at first phase of SD process Object-oriented technology used Technology used based on needs Dynamic environment focus on meeting changing requirements Stable environment focus on producing quality product With respect to the question raised in beginning of this section, after analyzing all challenges as well as pros & cons, we can say that Agile methods are best suitable for small organizations and gives better quality product too, under certain management constraints. V. AGILE METHODS IN EDUCATION AND PROJECT MANAGEMENT A. Teaching Experience with Agile Methods Agile Methods are becoming famous day by day. SD industry has also accepted some of the Agile methods in practice. It is no longer to see that Agile methods will come as part of curriculum in Software or Technology related graduate programs. To serve the needs of industry in best way, some researcher (education providers) have did experiments as using Agile methods to working on small projects as a part of course assignment for students. Study shows that this approach increased overall result of students. Students felt more confident and gain knowledge as well as solved difficult problems by teamwork in lesser time. Pair programming worked well among students and all students contributed accordingly their skills which resulted better team output over individual work [15] [17]. B. Project Management and Agile methods Research indicates that Agile methods are not suitable for Project management as it focuses on people rather than process. Although, the success or failure dependents on characteristics of project like size, criticality & priority, people, processes and underlying objectives of project. Study shows that Agile methods can be successful with minimal risk for small project while for large project risk is very high. The iterative nature of Agile methods creates confusion. Ultimate decision should be taken by Project Manager based on his understanding of his team s skills and capabilities. If project needs dynamic changing throughout project with deep concern with customer than Agile methods are best suitable [1], [18]. Although many organizations have experienced benefits of Agile methods, more academic research should be done before using it for project management. Agile methods need more clarity in their applications and developers of Agile methods should focus on quality instead of quantity [18]. VI. NEEDS AND DEVELOPMENTS OF EMPLOYABILITY SKILLS The importance of Agile Methods in software engendering or SD industry has been discussed in this paper. Now as Agile methods work on the basic principles of team work and customer centric approach of working as well, some of the employability skills become essential among the professionals and IT graduates, who wish to work in this challenging environment. Some important employability skills and its correlation with Agile methods are described as follows: A. Communication Effective communication is highly desirable while using Agile methods for SD. For example, listening and understanding the needs of customers as well as ideas of coworkers become important to minimize the risk of misleading vital information. At the same time speaking, writing & reading skills and information sharing enhance the performance of individuals and the whole team too. The fresh IT graduates can develop these skills on primary level while studying and improve it further while working practically with Agile methods. Face to face communication among team members and also with customers give chance to improve these skills at various stages of SD. B. Team Work Team work is the foundation of success in Agile methods. Variety of people with different age, gender, race and religion are working in a team for a same objective(s) in Agile methods. As SD is truly wide industry and each individual have expertise in particular field, proper communication among all the team members leads towards timely success in their task. Appropriate outcome could be got while working in team, defining role of each individual based on their strengths

4 & skills and mutual leadership become vital. Individuals can boost their knowledge & skills by exchanging information among the team members. C. Problem Solving As customer remains involved throughout the SD process in Agile methods, problem solving skills are highly desirable among the professional involved in this process. The underlying reason behind this to increase the customer satisfaction as well as resolve the problems occurred during the life cycle of SD by providing creative and innovative solution. The SD professional use to work in team while using Agile methods, which also gives them chance to improve their problem solving skills. They can discuss the issues with other team members and use various problem solving strategies which can be formed after this kind of knowledge sharing. D. Self Management In Agile methods a big SD task has been divided into small teams. Each individual have their own specific task to complete. To fulfill these needs self management skill is highly needed in each personnel. They suppose to use their own thoughts and knowledge to come up with best possible solution for the problem allocated to them. Measuring their own performance by evaluating their work is preferable to solve the problem in timely manner. Also while working in this kind of environment for longer time, the individuals can increase their confidence and problem solving skills too. E. Planning and Organising Agile methods use iterations to finish the big task. Future work is dependent on the work done in previous iteration. As there is no team leader allocated for each teams, proper planning to finish the task become necessary. Each team should also have a backup plan to work in circumstances of emergency. The entire task has been done by the team members themselves which gives them learning opportunity of planning and organising at smaller scale. F. Technology Agile methods are used in SD industry. So knowledge of basic IT skills in team members is must. The individuals can enhance their skill set by approaching leaning attitude and use skills as management tool. Knowledge of Occupation Health & Safety could become added value in their skill set, which help them for optimum use of their technological knowledge and available resources. G. Learning Agile methods provide platform to share information and improve learning skills of software developers who are involve throughout the SD process. Willingness to learn and open ended behavior become primary needs to improve the learning skills of the individuals. For example, people in seniority have to consider the ideas of junior team member if they are more effective and direct to the point. On the other hand, enthusiastic people can adopt the new and innovative ideas from the other team members. IT industry is always like changing environment and knowledge of new software and developing languages become essential for every IT professional. So by developing the learning skill they can make sure that their knowledge is up to date and meets the latest industry requirement. H. Other Important Personal Attributes/Skills There are few more personal skills which are highly preferable and can be developed while working in SD industry using Agile methods. The people who are involved in the SD process should be honest, loyal and committed towards the task allocated to them. Management can make sure these qualities by providing attractive financial rewards/package to their team members. Adequate training and development programs can help to keep the enthusiasm of them at higher level and improve their presentation and make sure that they use the available recourses optimally. Agile methods are based on team work. So it helps to keep the positive self-esteem of individuals by solving their problems by discussing between the team members. To meet the timely requirement of whole SD project, team members can develop their ability to work in pressure and some time it s motivate them to achieve their goals in timely manner to get some financial incentive. VII. CONCLUSION While focusing on the whole software engineering industry, Agile methods seem useful for small and customer oriented organization. Agile software development methodologies are comparatively highly preferable in customize software development as customers are involved at every stage of development life cycle. On the other hand, traditional software development methods are more functional for predefined software needs. Agile methods can be more useful in service industry because of its basic characteristics. However, further extensive research is highly regarded on Agile methods to make them useful for complex projects. REFERENCES [1] M. Coram and S. Bohner, The impact of Agile Methods on software project management, Engineering of Computer-Based Systems: 12 th IEEE international conference and workshop, pp. 363-370, 2005. [2] Manifesto for Agile Software Development, viewed 19 th June 2009, <http://www.agilemanifesto.org>. [3] SCRUM, it s about Common Sense, viewed 19 th June 2009, <http://www.controlchaos.com/about>. [4] P. Abrahamsson, O. Salo, J. Ronkainen and J. Warsta, Agile software development methods: Review and Analysis, VTT Publications 478, Espoo 2002, viewed 20 th June 2009, < http://www.vtt.fi/inf/pdf/publications/2002/p478.pdf >. [5] J. A. Livermore, Factors that significantly impact the implementation of an Agile software development methodology, Journal of Software, vol. 3, no. 4, pp. 31-36, Apr. 2008. [6] A. Cockburn and J. Highsmith, Agile software development: the people factor, Computer, vol. 34, no. 11, pp. 131-133, Nov. 2001. [7] J. Highsmith and A. Cockburn, Agile software development: the business of innovation, IEEE/ IET electronic library, vol. 34, no. 9, pp. 120-122, 2001. [8] K. Conboy and B. Fitzgerald, Toward a conceptual framework of agile methods: a study of agility in different disciplines, Proceedings of the

2004 ACM workshop on interdisciplinary software engineering research, Newport Beach, CA, United States, pp. 37-44, 2004. [9] B. Boehm, Get ready for agile methods, with care, IEEE Computer, vol. 35, no. 1, pp. 64-69, 2002. [10] T. DeMarco and B. Boehm, The agile methods fray, IEEE Computer, vol.35, no.6, pp. 90-92, 2002. [11] M. Huo, J. Verner, L. Zhu and M. A. Babar, Software quality and Agile Methods, Computer Software and Application conference: Proceedings of the 28 th annual international, vol. 1, pp. 520 525, 2004. [12] S. Nerur, R. Mahapatra and G. Mangalaraj, Challenges of migrating to Agile methodologies, Communications of the ACM, vol. 48, no. 5, pp. 72-78, May 2005. [13] J. Livermore, Factors that significantly impact the implementation of an Agile software development methodology, Journal of Software, vol. 3, no. 4, pp. 31-36, 2007. [14] L. Cao and B. Ramesh, Agile software development: Ad hoc practices or sound principles?, IT professional, vol. 9, no. 2, pp. 41-47, 2007. [15] L. Sherrell and J. Robertson, Pair programming and agile software development: experiences in college setting, Journal of Computing Sciences in Colleges, vol. 22, no. 2, pp. 145-153, 2006. [16] A. Pletch and A. Agajanian, A software engineering project that looks like the real world, Journal of Computing Sciences in Colleges, vol. 22, no. 6, pp. 92-99, 2007. [17] N. LeJeune, Teaching software engineering practices with Extreme Programming, Journal of Computing Sciences in Colleges, vol. 21, no. 3, pp. 107-117, 2005. [18] P. Abrahamsson, J. Warsta, M. T. Siponen and J. Ronkainen, New directions on Agile methods: A Comparative analysis, Proceedings of the 25 th International Conference on Software Engineering, pp. 244-254, 2003. 5