As indicated in
Williams (2007) this is a collection of iterative and evolutionary methods
which are based on iterative enhancement and opportunistic development
processes. According to Agile methodology (2008) agile methodology as approaches
are designed to respond to unpredictability in a software development project.
The Agile
manifesto looks at the project from a very different aspect than the other methods.
It looks at the Individuals in the project and interactions over the processes
and the tolls that are used . As stated in Agilemanifesto
(2014) the agile method it looks at working software without giving too
much importance to comprehensive documentation. It gives more importance to
customer collaboration more than the contract negotiation and finely it is more
oriented on how to respond to change more than following a set plan.
The 12
principles of the agile Manifesto according to Agilemanifesto
(2014):
1.
Satisfy the customer through early and
continuous delivery of valuable software.
2.
Always include the changing requirements. Agile
processes harness change for the customer's competitive advantage.
3.
Deliver working software frequently with a preference
to the short timescale like a week/month.
4.
Business people and developers must work
together daily throughout the project.
5.
Provide a supportive environment and have motivated
individuals throughout the project.
6.
Development team should have face-to-face
conversation to convey information
7.
Working software is the primary measure of
progress.
8.
The sponsors, developers, and users should be
able to maintain a constant pace indefinitely in order to have a sustainable
development.
9.
Continuous attention to technical excellence and
good design enhances agility.
10. Simplicity
is essential.
11. The
best architectures, requirements, and designs emerge from self-organizing
teams.
12. At
regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
Agile has many methodologies.
A few of them are:
·
Extreme programming
·
Crystal
·
Scrum
·
Feature driven development
Extreme
Programming (XP)
As indicated in Williams (2007) this methodology is suitable for
object-oriented projects where the project team consist of a dozen or fewer
programmers in one location. This is based on 5 underlying values.
·
Communication: The communication value is based
on the observation that most project difficulties occur because there is lack
of communication. The roles involved are project manager, Coach, tracker,
programmer, tester and customer.
·
Simplicity : make it simple and design and code
what is in the current requirements
·
Feedback: Get customer’s feedback at the end of
each iteration and external release.
·
Courage: Have courage in its actions and
decision making
·
Respect: Care about project and Each other in
the team.
According to Williams (2007) the documents and artifacts used in
this methodology are:
·
User story cards
·
Take list
·
Customer
Relationship collaboration cards
·
Customer
acceptance test
·
Visible wall
graph
Crystal
This is similar
to the RUP. As indicated in Williams (2007) this
methodology was developed to address the variability of the environment and the
specific characteristics of the project. However, RUP generally starts with a
plan-driven base methodology conversely in Crystal methodology doesn't give much
importance to being plan-driven. Since the project and the people evolve over
time, the methodology also tuned and evolved during the course of the project.
The different methods used in crystal are assigned colors arranged in ascending
opacity; the most agile version is Crystal Clear, followed by Crystal Yellow,
Crystal Orange, and Crystal Red.
As stated in Williams (2007) all the Crystal Methods
emphasize the importance of people in developing software, interaction,
community, skills, talents, and communication.
Examples for
crystal method
|
Method
|
Documents and
artifact
|
Roles
|
Process
|
|
Crystal Clear
|
Release
plan, schedule of reviews,
informal/low-ceremony
use cases, design sketches, running code, common object
model,
test cases, and user manual
|
project
sponsor/customer, senior designer-programmer,
and
user
|
Incremental
delivery, releases less than two to three months, automated testing, direct
user involvement, two user reviews per release,
and
methodology-tuning
|
|
Crystal Orange
|
Requirements
document, release plan,
schedule,
status reports, UI design document, inter-team specs, running code,
common
object model, test cases, migration code, and user manual
|
project
sponsor, business expert, usage expert, technical facilitator,
business
analyst, project manager, architect, design mentor, lead
designer-programmer,
UI designer, reuse point, writer, and tester
|
Incremental
delivery, releases less than three to four months, automated testing, direct
user involvement, two user reviews per release,
Methodology-tuning.
|
Table 4: Crystal methods
Source: (Williams, 2007)
Scrum
This is the most
widely used method of Agile. As stated in Agilemethodology
(2008) scrum emphasizes empirical feedback, team self-management, and
striving to build properly tested product increments within short iterations.
There 3 roles in Scrum methodology. They are Product Owner, Scrum Master and Team/Developer.
·
Product Owner according to Williams (2007) is
the person who is responsible for creating and prioritizing the Product
Backlog. For example choosing what will be included in the next iteration.
·
Scrum Master according to Williams (2007) is the person who should know
and reinforces the product iteration and goals and the Scrum values and
practices some of the responsibilities by conducting daily Scrum Meetings and iteration demonstrations.
·
Developer
is a member of the Scrum
team.
As indicated in Williams (2007) there are three main artifacts
produced by the Scrum teams and all of these are openly accessible and
intentionally visible to the Scrum Team members .
·
Product Backlog
·
Sprint Backlog
Sprint Burn down chart.
The scrum process:
According to Williams (2007) a Sprint Planning meeting is
held with the development team, management, and the Product Owner. During a Sprint, code is integrated and regression
tested daily. Short, 15-minute Scrum Meetings are held daily. While others (such as managers) attend to the Sprint
Meeting, only the team members and the Scrum Master can speak. Each team member
answers the following questions:
·
What
have you done since the last Scrum?
·
What
will you do between now and the next Scrum?
·
What
got in your way of doing your work?
As indicated in Williams (2007) at the end of a Sprint, a
Sprint Review takes place to review progress, and demonstrate the latest
version of the product to the product owner and other interested stakeholders. The
cycle continues with a Sprint Planning meeting taking place to choose the
features for the next Sprint.
No comments:
Post a Comment