Professional Documents
Culture Documents
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
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.
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.
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.
Assignment 1
Assignment 1
Scrum
Crystal
Assignment 1
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.
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.
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:
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.
Assignment 1
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.
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.
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.
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
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