• No results found

Agile Software Development Methodologies & Correlation with Employability Skills

N/A
N/A
Protected

Academic year: 2021

Share "Agile Software Development Methodologies & Correlation with Employability Skills"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

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.

I. INTRODUCTION

oftware engineering is an emerging industry in 21st 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

Agile Software Development Methodologies &

Correlation with Employability Skills

Dineshkumar Lohiya

School of Computer and Information Science

University of South Australia, Adelaide

[email protected]

(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

Iterative nature Cost & Time saving, Meet changing requirements and quick modification, Incremental Minimizing risk, feedback control Cooperative

(Collaborative)

Knowledge sharing, Better product quality, Expert solution (Benefits of

individual‟s talent) Simple Minimal training, Lesser documentation Close Physical

location of teams

face to face communication & Quick decisions collaborative Adaptive Able to make emergency changes People-oriented

Customer consultation at every stage 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 co-workers 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: 12th

IEEE international conference and workshop, pp. 363-370, 2005.

[2] “Manifesto for Agile Software Development,” viewed 19th June 2009, <http://www.agilemanifesto.org>.

[3] “SCRUM,” it‟s about Common Sense, viewed 19th 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 20th 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

(5)

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 28th 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 25th International Conference on Software Engineering, pp.

References

Related documents

Handle site helix0, #0 CTCGTCGCTGGCGAATGCGGCG Handle site helix0, #1 AACTGTTGGGAACGTTCCGGCAA Handle site helix0, #2 ATCGATGAACGGGCAAAGCGCCA Handle site helix0,

The USLI Janitorial Service Risks program is designed to quote risks that perform janitorial services at premises they do not own, rent, lease, or borrow.. This guide is designed

Thus, to effectively meet a 20 percent reduction below 2003 municipal emissions, its equivalent of the city-wide emissions reduction goal set in the Pittsburgh Climate Action

US unilateral aggressive policy based on Franco-German power core. Such state of affears raised dilemma for the Britain either align with France and Germany and facilitate

This publication presents the main outcomes of a partnership working towards “Harmonising Approaches to Professional Higher Education in Europe” (HAPHE) in 2012–2014,

Food based dietary guidelines Nutrition Centre Guidelines Healthy Diet Health Council Reference intakes Health Council Nutritional composition NEVO Wo5 or not-Wo5. Amounts

London School of International Business operates to the highest academic standards and has a structure in place that ensures the highest quality