You are on page 1of 12

Data & Process Modelling (CPT305)

Assignment 1

Table of Contents
Abstract ................................................................................................................................................... 2
1.0 Introduction ....................................................................................................................................... 3
1.1 What is Agile?............................................................................................................................... 3
1.2 What is NOT Agile? ..................................................................................................................... 3
2.0 Literature Review.............................................................................................................................. 4
3.0 Agile Methods................................................................................................................................... 5
3.1 Extreme Programming .................................................................................................................. 6
3.2 Scrum ............................................................................................................................................ 7
3.3 Adaptive Software Development .................................................................................................. 8
3.4 Crystal ........................................................................................................................................... 9
4.0 Conclusion ...................................................................................................................................... 10
Bibliography ......................................................................................................................................... 11

Data & Process Modelling (CPT305)

Assignment 1

Abstract
Today, agile methodologies are taking over the software development process and are replacing
the traditional methods. This report was developed to understand the usage and benefits of agile
methods in software development. Report contains a study on 4 agile methods and the study is
focused only on its benefits and usage. Information was collected from the web alone. Works
by different authors were analyzed in coming up with the report.

Data & Process Modelling (CPT305)

Assignment 1

1.0 Introduction
As explained by (Waters, 2007), the traditional methods to software development projects were
facing failure repeatedly. Due to this, in 2001 a group of people discussed the matter and came
up with the agile manifesto. Agile manifesto describes set of principles for agile project
management.
This report will focus on different types of agile methodologies, why are they useful and to
which type of projects are each applied to. Before going any further, it will be a good idea to
first be aware of what is and what is not agile.

1.1 What is Agile?


Agile is a product development approach where by development is carried out in increments.
This means products are built as increments over an iterative process in a fixed amount of time.
This helps to better understand the product requirements and adapt to changes that come along
in the product development phase (Reed, 2013).
Agile at its early days were only focused on software development and delivery. However, as
of today, it refers to development and delivery of any product.

1.2 What is NOT Agile?


Knowing the common properties of agile methods can help understand what agile is not. As
per (Waters, 2007), agile methods should:

Have active user involvement

Empower development teams to make decisions

Capture requirements throughout the product development.

Have incremental releases of the product

Complete the feature till requirements are matched

Test the product throughout the project lifecycle

Should have great cooperation among all stakeholders

If an organization follows a product development model that doesnt fit well with the above
mentioned, then it can be said that the methodology that is being followed is not agile.

Data & Process Modelling (CPT305)

Assignment 1

2.0 Literature Review


Agile software development methodologies are picking up pace and are widely adopted
throughout different parts of the world. This report looks into some of these agile methods that
are being used today, especially in software development field. Purpose of this study is to know
the benefits and application of these agile methods.
This report does not look deep into each agile method and does not discuss the flaws related to
each. Instead it is focused towards technical people and assumes that they have the knowledge
of agile methods discussed.
A Comprehensive study was carried out in order to gain knowledge about the focused agile
methods discussed in this report. Works of different authors on agile development, Extreme
Programming, Scrum, Crystal and Adaptive Software Development has been cited and
included into this report.
Since there were disagreements with the authors, additional studies were carried out in order
to compare and contrast the authors views based on facts. Although there were also points
where all the authors seem to agree upon.
Firstly no author has mentioned about agile methodologies being able to work as hybrids.
Especially in the case of Extreme Programming and Scrum, both of the authors, (Coffin &
Lane, 2006) and (Jeffries, 2011) has not mentioned that both being able to work as a hybrid.
This argument is back by the 1st Annual State of Agile Survey which was conducted in 2006
which showed that most used agile method (77%) was a hybrid of Extreme Programming and
Scrum. Moreover, as (Coffin & Lane, 2006) has written articles on both Scrum and Extreme
Programming, they have mentioned that the latter was the most popular. However, as of today
from the 7th, 8th and 9th Annual State of Agile Survey it was found that Scrum methodology has
been dominating for a long period of time. Hence, aforementioned argument on Extreme
Programming being the most popular can be outdated information.
Other than the above-mentioned all the authors have agreed that the key principles behind all
agile methods are same. (Coffin & Lane, 2006), have written a very comprehensive study on
seven agile methods which even today is mostly correct. Also, there is agreement between the
mentioned authors and (Boehem, 2011) about Crystal method being the only one focused of
project criticality.

Data & Process Modelling (CPT305)

Assignment 1

3.0 Agile Methods


This section will focus of types of agile methodologies and where they are applied to and
advantages and disadvantages of using each method. As there are many agile methodologies,
this report will focus on 4 methodologies. Namely, Extreme Programming, Scrum, Adaptive
Software Development and Crystal methods.
Below is a list of agile methods along with the aforementioned.

Extreme Programming (XP)

Scrum

Adaptive Software Development (ASD)

Dynamic System Development Method (DSDM)

Feature Driven Development (FDD)

Lean Software Development (LSD)

Agile Unified Process (AUP)

Crystal

Figure 1: Agile Methodologies

Data & Process Modelling (CPT305)

Assignment 1

3.1 Extreme Programming


Extreme Programming is one of the more well-known among other agile processes. It is a
software development method based on simplicity, communication, feedback and courage. The
development team works by following simple practices with enough feedback to know where
they are going and adapt to changes that come along the way (Jeffries, 2011).
From the name itself it can be known that it is applied to software development projects. To be
specific, Extreme Programming is used:

When development involves including prototypes and where requirements change


rapidly.

In research projects where result is not the software product itself but the knowledge
gained through the process.

When the software projects are easily manageable through informal methods (Select
Business Solutions, n.d.).

There are several ways Extreme Programming benefits in the aforementioned cases. Following
are reasons why extreme programming is useful as described by (Nayab & Richter, 2010).

This approach helps develop the software faster with few defects. Regular testing helps
to achieve robustness.

Collection of feedback throughout the development phase helps to better understand


the requirements and adapt accordingly.

As changes are accepted from the beginning of development till the end, the cost of
changes are reduced by using this method.

There is lesser risk in programming as it does not depend on one lead programmer,
instead it is divided among many and the team works in collaboration.

As work is carried out in small increments and at a level that employees can handle,
helps to keep employees satisfied and motivated.

Data & Process Modelling (CPT305)

Assignment 1

3.2 Scrum
Scrum is another popular agile development methodology where a project team of 4 to 9
members work together with the primary goal of deploying software increments over iterations
known as sprints which is between 2 to 4 weeks. It focuses on providing the highest business
value possible by meeting customer requirement throughout the software development life
cycle (Coffin & Lane, 2006).
Survey held by (VersionOne Inc, 2014), showed that Scrum methodology is the most adapted
agile technology in Europe and America. This might be due to the successful projects that were
completed with this method over years that help it gain more popularity. Moreover, being able
to implement Scrum methodology along with Extreme Programming as a hybrid agile method
contributes to this argument.
While Extreme Programming is applicable to small projects, Scrum on the other hand is used
when the software development projects are large and complex. As mentioned by (Thompson,
n.d.), scrum is applicable when:

Requirements for the software in question are not fully understood.

There is lot of change in the development phase.

Estimates for the project are not reliable.

Development requires constant invention.

According to (Stefanini, 2014), Scrum is useful because:

It helps to keep the team devoted to work at hand by empowering them to take decision
and be involved only in the work related to the project at hand.

It helps to better understand the customer needs. This is achieved by collecting feedback
over the sprints in the project.

Just like Extreme Programming, it helps to build robust software through incremental
releases. Which helps to complete the features successfully before moving on to next.

It helps to better understand and adjust the scope of the project and change priorities
accordingly. This in turn helps reduce the risk of failure and save on cost.

Helps to provide the best quality final product to its final customer. Also within the
time limit whenever possible.

Data & Process Modelling (CPT305)

Assignment 1

3.3 Adaptive Software Development


Adaptive Software Development evolved from on the Rapid Application Development (RAD).
Unlike its evolution from RAD which have an end date for projects, the development process
in Adaptive Software Development is never ending. Stable and new releases of the software
are provided over a very long period of time or until the software is obsolete (McGee & Fritsky,
2015).
From the definition above it is well known when to use Adaptive Software Development. A
software that is going to have to last for a very long time can use this method. Good example
for application of this methodology can be Operating Systems which last for a very long time.
Continuous updates are released. Some of the Operating Systems last longer than others. Linux
releases which occur every 6 months, can be updated from one to other without having to dump
away the previous release. Another good example would be web browsers. Stable versions are
released to browsers while adapting to continuous changes that occur in web technologies.
By understanding the Adaptive Software Development, its benefits are easily understood.

Continuous feedback from customers can help improve the product as technologies
change.

Change in technologies will bring about easier ways of completing a task which can be
integrated to the product in order to attract more customers. Example introduction of
HTML5 and quick updates to Google Chrome has been attracting customers toward the
browser.

Although there will always be a maintenance cost, bugs can be eliminated with the help
of customers and development team. This leads to high performance products that
adheres to latest technologies.

At start the product might not be very user friendly, but as development and
improvement progresses, it is bound to become more user-friendly.

Workload is minimized after the first release. This is because after the first release
improvements are made release after release at a manageable levels.

Data & Process Modelling (CPT305)

Assignment 1

3.4 Crystal
Crystal is not formally a methodology itself but a family of methodologies which emphasizes
on the changing environment and the specific features of the project. Crystal methodology
founder Alistair Cockburn says that there cant be a methodology that is perfect for all types
and sizes of projects. Projects tend to grow and even sometimes shrink in size. Which in turn
might need additional or fewer resources. Alistair developed the methodology such that it can
change and adapt according to the size and criticality of the project. The methods are assigned
colors to identify the projects criticality and to follow the rules related to the particular level.
Colors are Crystal clear which is most agile, followed by Crystal yellow, orange, and red
(Boehem, 2011).
Crystal methodology is used when the size of the project is known. Number of people involved,
the duration and the criticality of the project helps to choose the crystal method to be applied.
Crystal method alone identifies and emphasizes of criticality of the project among all other
agile methods. It can be said that crystal methods can be applied to all kinds of projects since
there is a set of rule for each crystal method which is different to projects according to their
criticality.
However, from the 9th annual state of agile survey which was conducted in 2014 showed that
this methodology is not among the well-known agile methods (VersionOne Inc, 2014).
As per (McDonald, 2007) and (Coffin & Lane, 2006), following are the benefits of using crystal
methods in software development.

Helps to keep employees motivated as it focuses on people.

The focus on improving the communication helps to better understand the state of the
current project and requirements. This helps to act accordingly.

This method is flexible, if the business can afford change in projects they can utilize
the resources in most effective way as the projects criticality increases or decreases.

Can be applied many projects and along with other methods like scrum.

As all other methods, the product is tested rigorously in order to deliver the best final
outcome.

Data & Process Modelling (CPT305)

Assignment 1

4.0 Conclusion
Agile development provides the advantage of understanding customer requirements better by
providing frequent incremental product deployments. This is not the case with traditional
methods of development where by the clients have to wait for the product to be fully completed
which might not even satisfy their requirement level. Although this document only focused on
benefits of using different agile methods, as these are also methods developed by humans they
do have disadvantages as well. However, these flaws can be overcome by careful planning and
hard work.
The method chosen will depend on lot of factors such as the business itself, project duration,
size etc. Due to careful studying and development, the agile methods have taken a step ahead
in the ever growing list of software development methodologies. Today, some of the agile
methods are even applicable to projects other than software development. It may be safe to say
that any agile method that is implemented well is bound to provide the business with better
project manageability, team productivity, project visibility, along with better customer
satisfaction.

10

Data & Process Modelling (CPT305)

Assignment 1

Bibliography
Boehem, B. (2011). SEMaterials. Retrieved from CSC:
agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf
Coffin, R., & Lane, D. (2006, October 11). A Practical Guide to Seven Agile Methodologies, Part 1 :
Page 3. Retrieved from DevX: http://www.devx.com/architect/Article/32761/0/page/3
Jeffries, R. E. (2011, March 16). What is Extreme Programming? Retrieved from Ron Jeffries:
http://ronjeffries.com/xprog/what-is-extreme-programming/
McDonald, K. J. (2007). Agile Method Brief - Crystal. Retrieved from Project Connections:
http://www.projectconnections.com/templates/detail/agile-techniques-crystal.html
McGee, M., & Fritsky, L. (2015, March 16). What Is Adaptive Software Development? Retrieved
from Wise Geek: http://www.wisegeek.com/what-is-adaptive-software-development.htm
Nayab, N., & Richter, L. (2010, September 20). Advantages of Extreme Programming. Retrieved
from Bright Hub Project Management: http://www.brighthubpm.com/methodsstrategies/87839-advantages-of-extreme-programming/
Reed, C. (2013, June 3). AGILE MISCONCEPTIONS: WHAT AGILE IS NOT. Retrieved from
Business Analyst Times: http://www.batimes.com/articles/agile-misconceptions-what-agileis-not.html
Select Business Solutions. (n.d.). What is Extreme Programming? (XP). Retrieved from Select
Business Solutions: http://www.selectbs.com/process-maturity/what-is-extreme-programming
Stefanini. (2014, February 6). The advantages of SCRUM. Retrieved from Stefanini:
https://stefanini.com/en/2014/02/advantages_scrum/
Thompson, K. (n.d.). When to Use Scrum? Retrieved from cPrime:
https://www.cprime.com/2012/09/when-to-use-scrum/
VersionOne Inc. (2014, October). 9th Annual State of Agile Survey.
Waters, K. (2007, February 10). What Is Agile? (10 Key Principles of Agile). Retrieved from All
About Agile: http://www.allaboutagile.com/what-is-agile-10-key-principles/

11

You might also like