- Open Access
- Total Downloads : 136
- Authors : Debdattachatterjee, Susmita Saha, Mrs.Leena Das
- Paper ID : IJERTV2IS90735
- Volume & Issue : Volume 02, Issue 09 (September 2013)
- Published (First Online): 24-09-2013
- ISSN (Online) : 2278-0181
- Publisher Name : IJERT
- License: This work is licensed under a Creative Commons Attribution 4.0 International License
Correlatingand Tabulating Form of AgileDevelopment Methodologies
DebdattaChatterjee Susmita Saha Mrs.Leena Das
M.Tech in computer science (software engineering)
M.Tech in computer science (software engineering)
Assistant Professor KIIT University, BBSR,
KIIT University, BBSR, India KIIT University, BBSR, India India
Abstract
The main intent of agile development methodologies is to develop the project in a systematically manner. This development process systematically controls the task that performs to gain the end product and objective of the project. The iterative nature of this methodology makes this process more flexible. Its compact time cycleimproves the project in small release. The main characteristics of agile development methodologies are: iterative incremental,people oriented,light weight, test driven development. In this paper we are considering mainly four agile development methodologies, they are: Extreme Programming(XP),Scrum, Crystal and Feature Driven Development(FDD). A short survey is identified on strength and weakness of the development methodologies and also a comparison in tabular format is introduced.
Keyword:Agile Methodologies, XP,Scrum,Crystal,FDD, Strength and Weakness.
-
Introduction
Agile methodologies appeared as a reaction to traditional ways of developing software and acknowledged the need for an alternative to documentation driven, heavyweight software development processes.Different agile methodologies are in use such as Extreme Programming, Scrum, Crystal and Feature Driven Development. These different methodologies have less documentation and more code oriented features that are common among them[9]. Extreme
Programming (XP) tends to be best accepted by the developers[5].
Extreme Programming is most popular of the various types of agile methodologies. It takes many of the best wellknown software development practices and applied them during system development. XP is a set of values, principals and practicesfor rapidly developinghigh quality software by preaching the values of community, simplicity, feedback and courage [1,9]. According to [1] XP has 12 core practices:
Core Practice
Description
Planning Game
The customer and development teams decide on what features will be of implemented.
Simple Design
The simplest design that meets the business requirements is selected.
Small Releases
Release a useful set of features into production and update them frequently in short cycles.
Metaphor
It helps us understand the parts of the system and helps us communicate more effectively by choosing system name.
40- Hour Week
Maintain productivity and avoid burn out of the development team.
Onsite Customer
Onsite customer ensures effective communication as aoutput minimum paper work will be required.
Coding Standard
Coding standard is a way of communication and documentation.
Core Practice
Description
Planning Game
The customer and development teams decide on what features will be of implemented.
Simple Design
The simplest design that meets the business requirements is selected.
Small Releases
Release a useful set of features into production and update them frequently in short cycles.
Metaphor
It helps us understand the parts of the system and helps us communicate more effectively by choosing system name.
40- Hour Week
Maintain productivity and avoid burn out of the development team.
Onsite Customer
Onsite customer ensures effective communication as aoutput minimum paper work will be required.
Coding Standard
Coding standard is a way of communication and documentation.
Table1. Extreme Programming Core Practices
Continuous Integration
Frequent code integration means less chances that there will be diversion and it will result in more testing.
Refactoring
The risk of introducing error is reduced by applying small updates in small steps.
Pair Programming
Two Programmers works in a single machine. This helps toreview the code constantly.
Collective code ownership
The code is the property to every member of the team.
Testing
Test driven development. Justified the code at all times and before new features are added.
In the Scrum model, projects are divided into small parts of for that can be incrementally developed and delivered over time boxes that are called Sprints. The products therefore get developed over a series of manageable chunks. Each Sprint typically takes only a couple of week. At the end of each Sprint, stakeholderand team members meet to assess the progress and the stakeholder suggests to the development team any changes an improvement they feel necessary[4]. Scrum introduces the idea of "empirical process control" that is Scrum uses the real world progress of a project – to plan and schedule releases. Scrum has three fundamental roles: Product Owner, ScrumMaster, and team member.
Product Owner: In Scrum, the Product Owner is responsible for communicating the vision of the product to the development team.Scrum Master: Scrum Masterworks to remove any impediments that are interrupting the team from achieving its sprintgoals.Team Member: For software projects, a typical team includes a mix of software engineers, architects, programmers, analysts, QA experts, testers, and UI designers.
Crystal Methods help the developer to know the characteristics of the project and to address the variability of the environment. Crystal inventor Cock Burnthinks the basic methodology should be "barely sufficient". He competes "You need one less notch control than you expect and less is better when it comes to delivery quickly"[2].This method is the most lightweight, adaptableapproaches to software development based on problem characteristics. Several of the key features of crystal are full of team work, simplicity and communication. It depends on
size of team and criticality of project, it also emphasize on face to face communication. Presently two types of Crystalare introduced: Crystal Clear and Crystal Orange.Crystal model has mainly three elements: Documents and artifacts, Roles, Process.
Feature Driven Development (FDD) was approached by Jeff De Luca and Peter Coad in 1997. This methodology is a highly and short iterative approach which emphasizes quality at all steps. It provides accurate and meaningful progress and status information with the minimum of overhead and disruption for the developers. FDD is mainly structured with eight best practices: Individual class ownership,DOM (domain object modelling),Feature teams, Developing by Feature, Inspections, and Regular builds, Configuration Management, Reporting or Visibility of results.
-
Overview of Agile Methodologies
-
Extreme Programming:
Extreme Programming emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative team. Extreme Programming implements a simple, yet effective environment enabling teams to become highly productive. The team self-organizes around the problem to solve it as efficiently as possible.XP includes practices that are a fresh to development team. Open work spaces,Pair Programming, and the
40 hour work week may lead to resistance from developers and management[7].
Figure1. Extreme Programming Table2. Strength and Weakness of Extreme
Programming
The overhead cost in terms of process and management is minimal thus leading to a quicker cheaper result.
It is good for small fast moving projects.
Customer participation and
Only provide
steering.
project
management
support,other
disciplines are out
of scope.
Strength
Weakness
Customer holds feature priority where developer holds estimation.
Requires onsite customer
It allows us to focus on coding and avoid needless paperwork and meeting
Architectural and designing concerns are difficult to determine by new adopter
Frequent feedback opportunities
As it takes a lot of discipline to keep its difficult to get many developers to accept the practices.
It leverages the power of simplicity.
Reduces the importance of a well thought out architecture.
Strength
Weakness
Customer holds feature priority where developer holds estimation.
Requires onsite customer
It allows us to focus on coding and avoid needless paperwork and meeting
Architectural and designing concerns are difficult to determine by new adopter
Frequent feedback opportunities
As it takes a lot of discipline to keep its difficult to get many developers to accept the practices.
It leverages the power of simplicity.
Reduces the importance of a well thought out architecture.
-
Scrum:
Scrum is mainly used in project which changes business requirements rapidly. In the scrum methodology the same technique is used which is established in the sport in Rugby[8]. To improve communications a project is forwarded to team members and break the operation into cycles which is known as "Sprint". The arrangement of the development method is more focused than the coding technology in SCRUM.[6].
Figure2. SCRUM
Table3. Strength and Weakness of SCRUM
-
Crystal:
-
Crystal Method is an agile Software Development Methodology. Tools or techniques affect people more than software development based on this argument [2]. As their business needs demand crystal development methodology develop methods. Methods family has common strategy criteria, such asincremental delivery, user direct participation, automaticregression testing, etc.[10]. Two types of Crystal are introduced: Crystal Clear and Crystal Orange. Crystal model has mainly three elements: Documents and artifacts, Roles, Process. Crystal Clear targeted at a D6 project and could be applied to a C6 or a E6 projectand possibly to a D10 project.Crystal Orange is targeted at a D40 project. Crystal Orange is for 20-40 programmers, working together in one building on a project.
Strength
Weakness
As project size grows,
May not work when
cross functional teams are
for distributed
utilised to ensure
teams.
consistency
The human component
Expects all tem
has been considered for
members to be co-
every aspect of the project
located.
support structure.
Only methodology that
Moving from one
specifically accounts for
flavour of crystal to
life critical project.
another in mid
project doesn't work.
Testing is highly
Adjustments are
prioritized that at least
required from one
one tester should present
project size/
on each project team.
structure to another
in order to follow
the described
flavour of crystal for
that project size /
criticality.
Strength
Weakness
As project size grows,
May not work when
cross functional teams are
for distributed
utilised to ensure
teams.
consistency
The human component
Expects all tem
has been considered for
members to be co-
every aspect of the project
located.
support structure.
Only methodology that
Moving from one
specifically accounts for
flavour of crystal to
life critical project.
another in mid
project doesn't work.
Testing is highly
Adjustments are
prioritized that at least
required from one
one tester should present
project size/
on each project team.
structure to another
in order to follow
the described
flavour of crystal for
that project size /
criticality.
Table4. Strength and Weakness of Crystal
Strength
Weakness
Business value helps us to prioritize.
Technical practices are unspecified.
It encourages teamwork and transparency. It helps breaking down hierarchies.
It focuses totally on features.
Continuous Integration.
Distinguishing Factors
SCRUM
Phases
Review Release Plan, Sprint, Sprint release, Closure
Techniques
Team Development, List uncompleted works, Separation of project, Scrum Meetings, Burn down charts
Distinguishing Factors
management.
Priorities are unchanged in 1 month Sprints
Crystal
Phases
Usable code is delivered frequently,Deliberate advancement, Osmotic Interaction.
Techniques
Daily meetings, Layout programming, Burn charts.
Distinguishing Factors
which leadsforatomic to larger teams
rime-order effects
absolutely necessary
Feature Driven Development (FDD)
Phases
Develop overall model, Design feature list, Planning, configuration, Construct feature.
Techniques
Designing objects, Speculated by feature, Isolated code Controlling, Gaining progress report.
Distinguishing Factors
It consists offive sub- processes, which helps us to viewIn and Out criteria.
-
10-12 programmers are expected to co-locate.
-
12 core practices
-
-
Minimal previous paper works.
-
Feedbacks from programmers and developers.
-
-
Developer practices are wrapped around the project
-
Scrum Teamconducts daily Scrum meeting.
-
Display Progress is viewedinBurn down chart.
-
-
It is a modifiable development methodologies
-
This depends on size of team and necessity of project
-
Highlights onConfronting communication
-
Deal with people, communication, group,skills, talents, and conversation as
-
-
Beginning with minimum techniques and construct as
-
Development are object
Continuous Integration.
Distinguishing Factors
SCRUM
Phases
Review Release Plan, Sprint, Sprint release, Closure
Techniques
Team Development, List uncompleted works, Separation of project, Scrum Meetings, Burn down charts
Distinguishing Factors
management.
Priorities are unchanged in 1 month Sprints
Crystal
Phases
Usable code is delivered frequently,Deliberate advancement, Osmotic Interaction.
Techniques
Daily meetings, Layout programming, Burn charts.
Distinguishing Factors
which leadsforatomic to larger teams
Prime-order effects
absolutely necessary
Feature Driven Development (FDD)
Phases
Develop overall model, Design feature list, Planning, configuration, Construct feature.
Techniques
Designing objects, Speculated by feature, Isolated code Controlling, Gaining progress report.
Distinguishing Factors
It consists offive sub- processes, which helps us to viewIn and Out criteria.
-
10-12 programmers are expected to co-locate.
-
12 core practices
-
-
Minimal previous paper works.
-
Feedbacks from programmers and developers.
-
-
Developer practices are wrapped around the project
-
Scrum Teamconducts daily Scrum meeting.
-
Display Progress is viewedinBurn down chart.
-
-
It is a modifiable development methodologies
-
This depends on size of team and necessity of project
-
Highlights onConfronting communication
-
Deal with people, communication, group,skills, talents, and conversation as
-
-
Beginning with minimum techniques and construct as
-
Development are object
-
Feature Driven Development (FDD):
FDD consists of five steps process [3]. The five steps are as follows:
-
Develop an overall model of the required operation.
-
Buildfeatures list.
-
Prioritization and implementation of plan.
-
Design the prioritized listed features.
-
Build the features.
Figure3.FDD
Table5. Strength & Weakness of FDD
Strength
Weakness
Scales to large team and Project value.
Promotes individual code ownership
Supports multiple teams working in parallel.
It opposed to share teamproperty.
Features track all aspect of a project.
Iterations are not well defined.
Designing and building features understandable and adoptable.
Model centric aspect effects on existing systems that have no models.
-
-
-
Tabularization form of Agile Methodologies
Table6. Key Concerns of agile methods
Extreme Programming (XP)
Phases
Exploration, Iteration Planning, Iteration to release, Production, Maintenance, Death phase.
Techniques
Pair Programming, Test Driven Development,
models, structural shape and sequence diagrams.
-
14 days features
-
Scalable to larger teams
-
Highly-specified development practices.
-
-
-
Conclusion and future work:
This paper explores the co-relation among the Agile development methodologies that are Extreme Programming, Scrum, Crystal & Feature Driven Development. The various factors that handles the implementation of an agile development method are: Team size, training, the involvement and support of management authorization of external resources, and company size all significantly impact the implementation of an agile Software Development Method.In this paper we have collected four different methodology of agile software development. A brief comparison in tabular format is given in section 3.From the configuration we can conclude that Extreme programming(XP) is the best known and widely used agile development method.It takes an extreme approach to iterative development. Whereas The Scrum approach is a general agile method but its focus is on managing iterative development rather than specific agile practices. In respect to XP and Scrum, Crystal is a simple and effectivemethod,it is suitable for developing in the scene and in FDD whole the processes are divided into small iterative features, which helps to stay the process simple and works in an efficient manner.
From this paper we can conclude that which type of projects can be used in which respective agile development methodology. Though it is a basic survey work as well as comparison among the different methodologies, we can get a clear idea about the strength and weakness of XP, Scrum, Crystal, FDD, which are easily approachable for novice learners.
-
Reference
-
Beck, Kent, Extreme Programming explained: Embracechange. 2000, MA,Addison Wisley.
-
Highsmith J.Agile Software Development Ecosystems, 2002 MA: Addison Wesley.
-
Palmer, S. &Felsing, J. A practical guide to feature-driven development.Prentice Hall. Upper Saddle Hill River, NJ. 2002.
-
Bob Hughes, Mike Cotterell, Rajib Mall,
Software Project Management.P. 92.
-
llieva, S..P. lvanov, and E. Stefanova. Analysis of an agile methodologyimplementation.in 30 thEUROMICRO conference 2004. Rennes,France, IEEE computer society.
-
Mann, C. & Maurer, F. A case study on the impact of scrum on over time &customer satisfaction. Proceedings of theagile development conference(ADC ' 05). Denver, CO. 72-79. 2005.
-
Jenkins, S.B. Musings of anold school programmer.Communicationsof the ACM. 49(5), 124-126,2006.
-
Jeffrey A. Livermore, Factors that Impact Implementing an Agile Software Development Methodology,IEEE., 2007 14244-1029-0/07.
-
Agarwal, R. and D. Umphress, Extreme Programming for a single person team, in proceedings of the 46 th Annual South East Regional Conference on XX. 2008, ACM: Auburn, Alabama. P. 82-87.
-
DaYong Sang. Requirement Analysis of Agile Development Processprogrammer, 2009, 2, P. 70-75.