Agile
Process Methodology
Shadrack K Kimutai
Introduction to Agile Methodology
Agile is a term used to describe software
development approaches that employ
continual planning, learning, improvement,
team collaboration, evolutionary development,
and early delivery.
It encourages flexible responses to change.
Agile Process Core Values
The agile Process model emphasizes on four core values.
Individual and Responding to
team interactions Customer change over
over processes Working software over collaboration following a plan
and tools comprehensive over contract
documentation negotiation
Principles of Agile Process
1.Satisfy the customer through early and continuous delivery of valuable
software.
2.Welcome and harness changes for the customer's competitive advantage,
even late in development.
3.Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference for shorter timescales.
4.Have daily collaboration between business people and developers
throughout the project.
5.Build projects around motivated individuals. Create the environment
and support developers need, and trust them to get the job done.
6.Prioritize face-to-face conversation as the most efficient and effective
method of conveying information to and within a development team.
Principles of Agile Process
7.Measure progress by the amount of working software completed.
8.Maintain a constant and sustainable pace of development indefinitely.
9.Enhance agility through continuous attention to technical excellence
and good design.
10.Keep it simple. Simplicity the art of maximizing the amount of work
not done is essential.
11.Recognize that the best architectures, requirements, and designs
emerge from self-organizing teams.
12.Regularly reflect and adapt behavior for continual improvement.
Agile Process Model Types
There are several types of models which employ
the agile Process. These include
– Extreme Programming (XP)
– Adaptive Software Development (ASD)
– Scrum
– Dynamic Software Development Methodology(DSDM)
Agile Models:Extreme Programming
Extreme Programming(XP)
In order to illustrate an agile process in a bit more detail, I’ll
provide you with an overview of Extreme Programming (XP),
the most widely used approach to agile software development.
A set of five values that establish a foundation for all work
performed as part of XP these are communication, simplicity,
feedback, courage, and respect.
Each of these values is used as a driver for specific XP
activities, actions, and tasks.
Extreme Programming(XP)
To achieve simplicity, XP restricts developers to design only for
immediate needs, rather than consider future needs.
The intent is to create a simple design that can be easily
implemented in code. If the design must be improved, it can be
refactored at later times.
Feedback is derived from three sources: the implemented
software itself, the customer, and other software team members.
By designing and implementing an effective testing strategy
Extreme Programming(XP)
XP makes use of the unit test as its primary testing tactic. As
each class is developed, the team develops a unit test to
exercise each operation according to its specified
functionality.
As an increment is delivered to a customer, the user stories or
use cases that are implemented by the
increment are used as a basis for acceptance tests. The
degree to which the software implements the output, function,
and behavior of the use case is a form of feedback.
Extreme Programming(XP)
An agile XP team must have the discipline (courage) to
design for today, recognizing that future requirements may
change dramatically, thereby demanding substantial rework of
the design and implemented code.
By following each of these values, the agile team inculcates
respect among it members, between other stakeholders and
team members, and indirectly, for the software itself.
Extreme Programming
At this stage, the project manager will set the
team up to succeed. Everyone needs to
1. Planning collaborate and communicate effectively to
This stage is where the UX magic happens. avoid any blockers. This stage involves:
Rather than a lengthy requirements document,
the customer writes user stories, which define 1. Creating an open workspace for your team
the functionality the customer would like to see, 2. Setting a sustainable pace (i.e. determining
along with the business value and priority of the right length for iterations)
each of those features. 3. Scheduling a daily stand up meeting
User stories don’t need to be overly technical as Measuring project velocity (the amount of
they only need to provide enough detail to help work getting done on your project)
the team determine the time frame to 4. Reassigning work to avoid bottlenecks or
implement those features. knowledge loss
5. Changing the rules if XP isn’t working
perfectly for the team
.
Extreme Programming
3. Coding
XP practices collective code ownership: Everyone reviews
code and any developer can add functionality, fix bugs, or
2. Design refactor. For collective code ownership to work, the team
should:
This rule goes back to the value of
simplicity: Start with the simplest design
●
Choose a system metaphor (standardized naming
because it will take less time to complete scheme).
than the complex solution. Don’t add
●
Practice pair programming. Team members work in
pairs, at a single computer, to create code and send it
functionality early. Refactor often to keep
into production. Only one pair integrates code at a time.
your code clean and concise. ●
Integrate and commit code into the repository every
few hours.
The customer should be available, preferably on site,
during this entire process so they can answer questions
and establish requirements.
.
Extreme Programming
4. Test
The team performs unit tests and fixes
bugs before the code can be released.
They also run acceptance tests frequently.
Read on
Other Agile
Methods and
Make Own
Notes