Unit 1
Unit 1
Unit 1
AGILE METHODOLOGY
Theories for Agile Management
What is Agile?
Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in,
an uncertain and turbulent environment.
The authors of the Agile Manifesto chose “Agile” as the label for this whole idea because that
word represented the adaptiveness and response to change which was so important to their approach.
It’s really about thinking through how you can understand what’s going on in the environment that you’re in
today, identify what uncertainty you’re facing, and figure out how you can adapt to that as you go along.
Eliminating Waste
Amplifying Learning
Building Integrity In
Lean methodology eliminates waste through such practices as selecting only the truly valuable features
for a system, prioritizing those selected, and delivering them in small batches. It emphasizes the speed
and efficiency of development workflow, and relies on rapid and reliable feedback between
programmers and customers. Lean uses the idea of work product being "pulled" via customer request. It
focuses decision-making authority and ability on individuals and small teams, since research shows this
to be faster and more efficient than hierarchical flow of control. Lean also concentrates on the efficiency
of the use of team resources, trying to ensure that everyone is productive as much of the time as
possible. It concentrates on concurrent work and the fewest possible intra-team workflow dependencies.
Lean also strongly recommends that automated unit tests be written at the same time the code is
written. The Kanban Method is used by organizations to manage the creation of products with an
emphasis on continual delivery while not overburdening the development team. Like Scrum, Kanban is
a process designed to help teams work together more effectively.
Kanban is based on 3 basic principles:
Visualize what you do today (workflow): seeing all the items in context of each other can be very
informative
Limit the amount of work in progress (WIP): this helps balance the flow-based approach so teams
don 't start and commit to too much work at once
Enhance flow: when something is finished, the next highest thing from the backlog is pulled into play
Kanban promotes continuous collaboration and encourages active, ongoing learning and improving by
defining the best possible team workflow. See how VersionOne supports Kanban software development.
Crystal
The Crystal methodology is one of the most lightweight, adaptable approaches to software development.
Crystal is actually comprised of a family of agile methodologies such as Crystal Clear, Crystal Yellow,
Crystal Orange and others, whose unique characteristics are driven by several factors such as team size,
system criticality, and project priorities. This Crystal family addresses the realization that each project
may require a slightly tailored set of policies, practices, and processes in order to meet the project 's
unique characteristics. Several of the key tenets of Crystal include teamwork, communication, and
simplicity, as well as reflection to frequently adjust and improve the process. Like other agile process
methodologies, Crystal promotes early, frequent delivery of working software, high user involvement,
adaptability, and the removal of bureaucracy or distractions. Alistair Cockburn, the originator of Crystal,
has released a book, Crystal Clear: A Human-Powered Methodology for Small Teams.
Definition
Read more in the blog: Agile project management - the what and the why.
Do you know your Scrum from your Sprint? Read our handy glossary of popular agile terminology to
find out what they mean in the resources section below.
1. Cross-functional team member–in keeping with the non-hierarchical structure of the agile team, the
cross-functional team member is mentioned first, and NOT the product owner or team
facilitator. They are professionals who deliver potentially releasable product on a regular
basis. They need to deliver work in the shortest possible time, with higher quality, without external
dependencies.
2. The product owner interacts with the customer and stakeholders as well as the team, and they pay
attention to the highest value for the customer. They typically have a business background and have
deep subject matter expertise. They create the backlog for and with the team, in a way that delivers
the highest value without creating waste.
3. This role can be called various names, such as a project manager, scrum master, as well as a team
lead, couch, or facilitator. The servant leader, no matter what he or she is called, needs to focus on
facilitation of the work done by the team, impediment removal, and coaching. If the servant leader
feels their internal coaching capability is not yet fully developed, then they may invite external agile
coaches.
Commitment: It's not enough to be assigned to a team and agree to try this new agile thing, and it's not
enough simply to be dedicated. One must also be committed to doing whatever is necessary to meet the
goals outlined and to take the authority to do so to heart. It means "to carry into action deliberately"
(Merriam-Webster) or, as Yoda says, "Do, or do not. There is no try."
Focus: Don't get sidetracked. Remember what you committed to do, and focus your energies on
fulfilling that promise. Distractions are not limited to the obvious things like email and unrelated
meetings. They may also be things like creating documentation because "we've always done it that way"
instead of creating documentation because it truly provides the customer with something of value.
Openness: Openness is about keeping the project status highly visible to everyone all the time. Anyone
who is interested should be able to look at a wall, a wiki page, or a dashboard in an agile project
management tool and see how many features have been completed, what's currently being worked on,
and the goals of the iteration and release.Communication: People on the team must talk to each other.
This gets harder to do the more geographically separated the team is, but with tools like Skype, teams
can talk to one another easily and cheaply. The point is that team members must not rely on email and
documentation alone. Verbal communication is required to clarify ideas, solve complex problems,
answer questions quickly, and help team members coordinate work efforts.
Simplicity: Beck says the XP coach should ask the team, "What is the simplest thing that could possibly
work?" Then they should do that thing. Because agile approaches develop code in increments each
iteration, the thought is that it is better to develop something simple that may have to be expanded later
if needed, rather than spend a large amount of time now developing a solution that's more complicated
and may, in fact, not be necessary.
Feedback: As stated earlier, our number one obligation is to provide value to the customer. In order to
do that, we must obtain frequent feedback from the customer or customer representative in order to
make sure that the product we are building is meeting their expectations. And if it is not, we have the
information we need now in order to make corrections. Beck extends this meaning of feedback to
include feedback from the system itself in the form of unit, functional, and performance tests run
frequently in each iteration.
Courage: In order to accept the authority and accountability for the delivery of the product, the team
members all need courage. From the courage to make decisions to the courage to say no, this is a
foundational value that gives rise to all the others.
Respect: Each team member must begin by agreeing that everyone deserves to be treated with respect.
Many teams clarify this with working agreements that outline ways in which they choose to work
together. And, as a result of working together to adhere to all the other values outlined here, team
members grow to respect one another beyond their shared humanity to the ways each valued colleague
contributes to the whole.
Adhering to a set of values that drive positive, collaborative behaviors and result in frequent software
delivery helps us to work in an ethical manner. This is what agile is all about! Yes, agile also allows
companies to decrease their time to market, increase quality, and eliminate waste in the process to
provide a greater ROI to the organization. And you'll find plenty of articles about these benefits as well.
But the realization of these benefits is not based just on the adoption of a set of practices; the value
system must also be adopted if the approach is to work properly. So, as you consider adopting agile, also
think about whether or not your organization's values match those of agile—and what you may want to
do if they don't.
Agile Documentations
Ideally, an agile document is just barely good enough, or just barely sufficient, for the situation at hand.
Documentation is an important part of agile software development projects, but unlike traditionalists
who often see documentation as a risk reduction strategy, agilists typically see documentation as a
strategy which increases overall project risk and therefore strive to be as efficient as possible when it
comes to documentation. Agilists write documentation when that's the best way to achieve the relevant
goals, but there often proves to be better ways to achieve those goals than writing static documentation.
This article summarizes common "core practices" which agilists have adopted with respect to
documentation.
1. Writing
o Prefer executable specifications over static documents
o Document stable concepts, not speculative ideas
o Generate system documentation
2. Simplification
o Keep documentation just simple enough, but not too simple
o Write the fewest documents with least overlap
o Put the information in the most appropriate place
o Display information publicly
3. Determining What to Document
o Document with a purpose
o Focus on the needs of the actual customers(s) of the document
o The customer determines sufficiency
4. Determining When to Document
o Iterate, iterate, iterate
o Find better ways to communicate
o Start with models you actually keep current
o Update only when it hurts
5. General
o Treat documentation like a requirement
o Require people to justify documentation requests
o Recognize that you need some documentation
o Get someone with writing experience