Académique Documents
Professionnel Documents
Culture Documents
Extreme Programming:
A gentle introduction
http://www.extremeprogramming.org/ 1/1
25/9/2017 Agile Software Development: A gentle introduction.
Computer science is a young science. customer, the one who funds the software
Computer programmers my age were trained by development, a valuable and essential team
engineers. That training dictated how we member. When the dead line gets close a
approached software development for an entire traditional approach to reducing scope is to let the
generation. But now after decades of building developers decide what will work properly and
software to be expensive, unwanted, and what won't. Instead let the customer make scope
unreliable we have come to realize software is decisions a little at a time throughout the project.
different. Building software is more like creating a When your customer, or domain expert
work of art, it requires creativity in design and works directly with the development team
ample craftsmanship to complete. Software everyone learns something new about the
remains malleable, often illogical, and incomplete problem. True domain expertise and experience is
forever. Agile software development is based on essential to finding a simple, elegant, correct
fundamental changes to what we considered solution. A document can have plenty of
essential to software development ten years ago. information, but real knowledge is hard to put on
The most important thing to know about paper. Left alone programmers must assume they
Agile methods or processes is that there is no know everything they need. When asking
such thing. There are only Agile teams. The questions is difficult or slow the knowledge gap
processes we describe as Agile are environments grows. The system will get built, but it won't solve
for a team to learn how to be Agile. the problem like one guided by an expert on a Agile also means a fundamental change in
We realize the way a team works together daily basis. how we manage our projects. If working
is far more important than any process. While a Perhaps the biggest problem with software is what you will deliver then measure
new process can easily improve team productivity software development is changing requirements. your progress by how much you have right now.
by a fraction, enabling your team to work Agile processes accept the reality of change We will change our management style to be based
effectively as a cohesive unit can improve versus the hunt for complete, rigid specifications. on getting working software done a little at a time.
productivity by several times. Of course to be There are domains where requirements can't The documents we used to create as project
eligible for such a big improvement you must be change, but most projects have changing milestones may still be useful, just not as a
working at a fraction of your potential now. requirements. For most projects readily accepting measure of progress.
Unfortunately, it isn't that uncommon. changes can actually cost less than ensuring Instead of managing our activities and
The most brilliant programmers alive requirements will never change. waiting till the project ends for software, we will
working competitively in an ego-rich environment We can produce working software manage our requirements and demonstrate each
can’t get as much done as ordinary programmers starting with the first week of development so new version to the customer. It is a hard change
working cooperatively as a self disciplined and why not show it to the customer? We can learn so to make but it opens up new ways to develop
self-organizing team. You need a process where much more about the project requirements in the software.
team empowerment and collaboration thrive to context of a working system. The changes we get Take a guided tour of Agile Development
reach your full potential. this way are usually the most important to by following the buttons starting here. Or
The second change is making the implement. continue your guided tour of Extreme
Programming by following the buttons. Let's
look at how we manage by features next.
Links and Books | Manage by Features | The Paradox of Process | Agile Modeling | Process Proverbs | About the Author
Copyright 2009 Don Wells all rights reserved.
http://www.agile-process.org/ 1/1
25/9/2017 Manage by Features
http://www.agile-process.org/byfeature.html 1/1
25/9/2017 Surprise! Software Rots!
Is software designed to be simple and cost compromises. We fight software rot from
elegant more valuable than software that is start to finish so it can never dominate our
complex and hard to maintain? An Agile process decisions.
accepts this as an important fact. One common misconception about testing
It may surprise you to learn software rots. software is the cost. Most developers only know
Intellectually we know it really doesn't, but it two data points; no tests, and too many tests.
might as well. Software rot is caused by improper Finding bugs cost you something. If you don't test
design and limited project resources. Complexity your software you are essentially moving that cost
creeps in as easy code changes are made instead to your users/customers. If you only pay for fixing
of difficult design changes. Code duplication bugs but not finding them you save money.
accumulates rapidly during maintenance tasks. On the other hand if you set out
After a while we notice that fixing one bug to accelerate software rot. When we proclaim the determined to test every possible input to your
causes several even more subtle (and expensive) design is done and accept no more changes. software you will find the cost of testing rises
bugs to occur and the cost of maintenance goes When we move the system into maintenance and exponentially as you get close to 100% tested. Of
up significantly. Eventually the cost of maintenance change the team's process. Last when the cost of these two data points not testing is obviously
exceeds resources. It seems as if our code has making vital changes exceeds our resources we cheaper.
decayed on its own in spite of our best efforts. reach the wall of unmaintainability. We know now that you can not effectively
Barry Boehm found that as software To stay Agile you must fight software rot. increase software quality at the end of the project
proceeded through its life cycle the cost of Refactoring is the art of making design changes by testing and fixing bugs. It remains low quality
making a change became larger. Ratios of 100:1 over time to keep the software fit for its purpose but with fewer bugs. Second, designing code to
for making a change after delivery versus project and ready for more changes. Unit and acceptance be testable lowers the cost of testing it. There is a
start are common. But ratios as low as 5:1 can be tests can almost eliminate the fear that drives sweet spot between no tests and too many tests
found. How flat this curve stays depends on many inappropriate easy changes on a that minimizes the total cost of development. It
individual project factors. delivered system. Early delivery of partial systems lies some where close to testing everything that
This cost curve is commonly interpreted to helps detect big changes before they become could actually break.
mean that you must create infallible requirements expensive. An Agile process accepts that Agile processes are a re-evaluation of the
documents followed by complete, detailed, and requirements, analysis, and design are never truly way software is created. The quality of the source
error-free designs or pay a huge price later. That done. An Agile process runs equally well in code is much more important than you may think.
isn't what it means. Boehm's findings are not a maintenance or development easing the transition. Just because customers don't see code doesn't
condemnation of change but rather a caution to We know that some changes will cost mean we are excused from the effort needed to
be prepared when changes occur. A well run much more than others. Boehm's findings were be ready for changes by keeping quality up,
project keeps the cost of changes lower longer. that 20% of the changes make up 80% of the complexity down, and full test coverage.
There are three life cycle events that seem effort. We accept that. We counter it with honest
estimates and use a planning process that requires
the customer to guide our spending decisions and
Agile-Process.org home | Most Important Features First | XP guided tour | About the Author
Copyright 2009 Don Wells all rights reserved.
http://www.agile-process.org/change.html 1/1
25/9/2017 Most Important First
How can we help our business grow? It simplifying and listening to customer objectives.
seems like an obvious question for everyone to Communicate with your customers simply
ask. Yet many software teams never do. When and in a language they understand. Most
we consider adopting an Agile process we worry specifications are way too technical for customers
about iterations and testing. But the very first thing to understand. Do you really expect your
you must do to become Agile is establish a good customer to approve your SQL queries? So
relationship with your customers, users, and where do you draw the line? What is technical
domain experts; who ever it is that directly or by-product and what is requirements? Many
indirectly pays for your work. Agile projects use stories and face to face daily
The first symptom of a damaged customer communication as requirements.
relationship is when your customer considers it a Agile projects keep a set of unfinished
waste of time to participate in the project. You features as stories in a simple spreadsheet, list, or
may have delivered software that just doesn't stack of cards that form the backlog of product
meet return on investment (ROI). You may have features. You want to prune or groom this list on
delivered software that is frustrating to use. You a regular basis by removing and destroying things
may even have treated the customer with disdain. your customer or product owner doesn't need
In any case your customer is important and you anymore. Only keep features you would consider
need to repair your relationship first. paying good money for, the rest go into the trash
One way to start a partnership with your can or shredder. time to developers, and negotiable increments of
customers is to listen to their needs and respond From the list of unfinished features you will scope to managers. Stories without value to
immediately. The best way to guarantee your choose the most important. Important means the customer are counterfeit. Destroy any stories
customer's time (and thus money) isn't wasted is different things to different teams. You can choose that have no value. If you find that you can't tear
to involve them enough to guarantee success. the highest return on investment (ROI). You can up or delete a story without second thoughts then
Customers who don't want to be involved in their choose the architecturally significant features first. you are making your stories more valuable than
own software project believe the software will be Risk is a very important way to sort. You can mere currency by spending too much time on
built the same even if they don't participate. This choose the features in groups that make good them. Use cases can be especially hard to throw
belief needs to be dispelled. business sense together. Most projects settle on a away once created unless you limit them to title,
Damage to the customer relationship can combination. The one constraint is that the estimate, and a brief description at first.
be the result of careless disdain for the customer's customers guided by estimates of effort from Important project decisions are difficult
expertise by the development team. It doesn't developers choose what is most important next. and stressful. Agile projects distribute the
matter how smart you may think you are, you This collection of most important features responsibility for decisions amongst the entire
simply can't expect to know as much as your is the input to the planning process. Features are team. Developers make technical desicions,
customer. You can't learn in weeks what someone represented in a minimal way that allows rough managers make people descicions, and customers
else learned over years. Respect your customer estimates of effort, but not detail. You will make business decisions. The best way to ensure
by acknowledging their expertise, listen carefully, probably only implement a fraction of the bad choices is to have one person make them all.
defer to their authority, and never insert your own features, so spending time on details is a waste Spending a million dollars on a software
opinions into your code. until they are actually part of an iteration or sprint project does not mean you have software worth a
Repairing an abused relationship takes plan. Many Agile teams use a quick way to scope million dollars. If your customers think being part
time. Trust takes months to establish but minutes projects called story cards. of software development is wasteful you might be
to destroy. Start out by being honest about your Stories are the currency of your project. building the wrong software. Don't just sort user
process. Everyone will give up something before Like money they don't have much value stories by importance, sort your entire portfolio of
the project is over. Giving up something first is a themselves, just a piece of paper, but they potential projects by importance as well.
good way to start. Give up on having the most represent value and can be used to buy things. Once we know what we want to build
interesting and complex system around by Stories represent valuable software to customers, next we will use iterative planning to stay on
track.
One dozen Agile words: Iterative planning, honest plans, project heartbeat, working software, team empowerment, and daily communication.
About the Author
Copyright 2009 Don Wells all rights reserved.
Iterative Planning
I prefer to say iterative planning instead of amount of effort to implement them. The people
iterative development because it places the who will do the work, namely the developers,
emphasis where it belongs: You must adapt as the have authority to set the estimates. The manager
project unfolds by changing your plans. You can will set the total amount of work that the next
plan out an entire project into detailed iterations in iteration can have planned. The customer then
advance, but that isn't Agile. You change plans chooses a subset of the most important features
based on feedback from incremental delivery of that will fit into the next iteration.
working software. The customer/product owner The iteration plan will often be verified by
is part of your team so let them guide your project breaking the stories into development tasks and
not just at the start but day by day. Show them estimating them with finer grain units. At this level
the system as it is being built so they can learn use cases could also be created. This greater level
more about the solution and then listen to them. of detail is permissible because iterations or
Some Agile projects don't even have sprints are kept very short.
iteration ends. They remain Agile by balancing the The third level is the daily plan. A daily
need for stable requirements with the need to plan isn't usually represented by any artifacts. At
change requirements while launching working the daily scrum or stand up meeting everyone will
software on a regular and frequent basis. announce their plan for the day and then act on it.
Iterations are just an easy way to demarcate Even greater detail is allowed because the plan's
when changes are accepted, when a new plan is duration is one day and no more. anyway.
created, and when working software is released When you slip your schedule you The changes we get late in a project are
to customers. Shorter iterations give more acknowledge how far you have come and make a usually the most valuable because that is when we
opportunities to plan. new plan based on the new information. Trying to know the most about our problem domain and
There are three Agile levels of planning. catch up only puts you further behind long term. solution. Consider every dollar spent on
Release planning is a group of stories selected Even if you can make it up in a short time the development as also being spent on learning
because they represent a usable set of features strain on the team puts them behind schedule next about a better solution. The last change request is
that can be released together. These types of week. Keep a sustainable pace going. always the one you paid the most for, so use it to
plans are made by selecting the stories and When you get ahead of schedule you your advantage.
deciding how many iterations are needed or by make a new plan. Being ahead of schedule does Iterative planning is exactly what you think
selecting a release date and seeing how much can occasionally happen. Keep your pace steady. it is; make a plan, build some software, and then
be done by then. Release plans have no details Some slack time is nice, but you need to keep make another plan based on what you learned.
other than a list of stories to be done by a date. your team challenged or they will challenge Agile processes are based on the idea that
The second level of planning is the themselves in ways you wouldn't have chosen. planning throughout the project is just as
iteration or sprint plan. This plan is a subset of the When your customer learns something important as having a plan. Things change, plans
release plan stories that will be done in the very important about requirements or a competitive must either be short in duration or very sketchy in
next iteration or sprint. Only one iteration plan advantage you make a new plan. Changes to details to remain useful.
exists at a time. With our chosen collection of requirements are welcome because we have How do we know how much we can get
important features we can now estimate the already decided we will be making new plans done in an iteration or sprint? We need to talk
about creating honest plans.
One dozen Agile words: Iterative planning, honest plans, project heartbeat, working software, team empowerment, and daily communication.
About the Author
Copyright 2009 Don Wells all rights reserved.
http://www.agile-process.org/iterative.html 1/1
25/9/2017 Honest Plans
Honest Plans
How wide is my table? I look at my table our iterative planning process. We compute
and see it is about 6 feet wide. I then triple that to velocity by adding up hours, days, or story point
18 feet wide so I don’t underestimate. But I estimates to get a single number that represents
know this room is only 14 feet wide. So my final work finished this iteration. The project manager
estimate is 14 feet wide. Unfortunately we also can use this to suggest how much work can be
estimate software projects this way. Agile done in the next iteration or sprint. The team can
processes support honest estimates by accepting commit to more or less, but it is a good number to
and mitigating honest mistakes. start with. For our very first iteration we may not
An agile process makes honest plans have a velocity. If we did some initial prototypes
based on feedback. If a mistake is made a new and measured our progress we can make a guess,
plan is created by accepting how far we have but we don't know yet.
come and revising our plans based on the new We don't break down velocity by team
information. There is no blame, there is no sense members because people don't scale, only teams
of failure, we have learned something we didn't do. Everyone contributes something different to a
know before. team effort. Assuming any one team member out
of a team of 8 will be 12.5% of the capacity is
just plain wrong.
Comparing velocity between two teams is
Let's try a simple exercise. Estimate these also a bad idea. Any two teams will have different customer who does not want to make the hard
three lines for me. You probably just made three velocities. Consider for example a team moving decision and is delegating to the manager. If the
estimates in inches or centimeters. Those seem as fast as possible without making mistakes. What manager responds by saying "we will try" then he
like good units of measure except every different happens when you tell them to go faster like some is delegating to the developers. When a customer
type of monitor displays those lines differently. other team? Take an incredibly productive team refuses to prioritize features and drop one or a
Let's estimate them in hectopixels instead. That that severely under estimates their work, what manager demands a change in estimates it may
still doesn't help too much does it? Let me tell you happens if you then decide to pay them less seem like that customer or manager is grabbing
the top line is 1.5 hectopixels long. Now it is easy because some other team consistently over control. They are in fact loosing control by
to estimate the remaining two as 3 and 2 estimates? Don't start a competition to see who refusing to make a difficult decision. Pushing a
hectopixels. has the largest estimates, that is how my table got decision onto another person or group isn't
That was a silly exercise but it has a to be 14 feet wide. honest. An honest plan means you have made all
serious point. We estimate software development Product owner/customer, team members/ the difficult decisions you are responsible for
using units that seem familiar to us like hours, developers, and Scrum master/manager all work making.
days, and weeks, but do we really know how together to figure out what is feasible in the time Another change is the way estimates are
long that is? Every team will produce a different that is available. Product owners don't get every detailed; they aren't. You want a single estimate
amount of work in an hour. You can't multiply an feature, developers don't just work on interesting for each feature represented in the product
hour by the number of people and compute how things, and managers don't get to tell the team it backlog. Customers must weigh the different
much will get done. People just don't add up like isn't doing enough. There are cost and timing options to find the most important things to do
that on a team. At the start of our project we trade offs to be made and getting everyone next. You can't burden them with such issues as
don't know what our units of estimation are. We together to make them is best. dependencies. Put the cost of developing that
learn what our units mean only after we get our Honest plans are more than just truthful feature and that feature alone on every story.
first measurement of actual progress. estimations. They are about realizing that plans If building this feature lowers the cost of
Some Agile projects face the problem by have an expiration date. Scrum recommends a that feature then you have already designed some
using a fictitious unit like story point. It makes no month, Extreme Programming (XP) suggests one shared code. Separate technical decisions from
real difference what units we use so long as the week. Be honest about how long a plan can requirements decisions by estimating each feature
estimates are proportionate to each other. There remain useful and plan on creating a new plan independently and as if that is the only feature you
is nothing wrong with using units of time so long soon. will build. If developing this feature still lowers
as everyone knows they can't be measured by the When asked to prioritize a group of that feature's estimate then lower the estimate only
clock on the wall. features your customer may say they are all after this feature is working. Remember that you
Velocity will be an important parameter to needed this iteration or sprint. What you have is a are creating a shopping list for people without
technical backgrounds.
One dozen Agile words: Iterative planning, honest plans, project heartbeat, working software, team empowerment, and daily communication.
About the Author
http://www.agile-process.org/honest.html 1/1
25/9/2017 A Project Heartbeat
A Project Heartbeat
If your Agile project doesn't have a is feedback. A shorter iteration gives you more
heartbeat declare it dead. A steady heartbeat has frequent feedback and more opportunities to
a fixed length iteration as short as you can make learn and steer your project. Scrum recommends
it. A strong heartbeat produces working software 30 day sprints while Extreme Programming (XP)
ready for deployment to production with recommends one week iterations.
completely finished iteration/sprint commitments. You want your team to have a sense of
A responsive heartbeat creates a new plan each iteration length to work at a steady pace, estimate
iteration based on feedback from the previous better, and be fully prepared for iteration end.
iteration and changing customer needs, not what You want your customer/product owner to see
was left unfinished. new functionality often so they feel optimistic
Steady your heartbeat by making your about progress and can learn about their problem
iteration length a constant then shorten the length and potential solution quickly. You want
to less than you think is possible. Push against managers/scrum masters to feel a sense of
resistance to short iterations forcing your team to urgency in removing obstacles to success so the
learn and adapt to Agile processes. Don't just team continues steadily throughout the iteration
accept that a one week iteration seems and not rush at the end.
impossible. Trust your people to figure it out and You want to set expectations that in a
fix existing broken procedures. Shorter iterations short while customers will receive a new version
actually increase the chances of being done on of the system with the features they identified as almost nothing. With a steady easy to predict
time not reduce it. most important. You want to reflect on how the pace we can make plans that are more likely to
Within an iteration make each day a process went and make improvements. You will come true.
heartbeat all its own. Start each day with a stand make new plans for the next heartbeat. You will Always deliver working software at the
up/scrum meeting. Integrate code at least once a finish as much working software as you can and end of each and every iteration. Conduct a
day if not every couple hours. With everyone make a simple measurement of progress. demonstration of new features every iteration.
integrating often you can frequently pull the latest A measurable, predictable, sustainable End every iteration with a retrospective on what
code from your repository so that you always pace helps you plan and meet your commitments. could be done better next time. Start every
work in the context of the latest versions of Developers are known to steal from the future by iteration with a planning meeting. Iterations must
everything. Work as if everyday has a deadline working many extra hours to stay on schedule start from scratch and not what was left over from
too. today. But we all know trying to catch up always last iteration. Every iteration should feel like a
The one essential ingredient that changes puts us farther behind because we can't continue fresh start, a blank canvas full of new
repetitive development into iterative development that pace. Eventually our pace slows down to opportunities for an empowered team.
One dozen Agile words: Iterative planning, honest plans, project heartbeat, working software, team empowerment, and daily communication.
About the Author
http://www.agile-process.org/heartbeat.html 1/1
25/9/2017 Team Empowerment
Team Empowerment
Traditional teamwork has the project developers is a hard choice and must be done
manager controlling everything. The manager is wisely and kindly.
given responsibility and authority over all People develop emotional attachments to
decisions and plans. If you can only trust one their projects. Agile projects are even worse
person with power then this makes sense. But, if because we work together tightly. Some people
you have a team of good people it becomes will fear getting hurt if a project fails and try to
inefficient and inhibits working at your full sever their emotions or leave before they are hurt.
potential. Don't bottle neck decisions with a single It can seem like people are trying to make the
authority. Change from one person controlling project fail. I call these types of bad behavior
everything to empowering the entire team. "escape velocity." Managers might wonder why
Who is responsible, who has authority? team members would want to hurt the project and
Everyone. The most important thing on a project consider replacing them. That is the wrong point
is good leadership; the least important thing is of view; wonder instead why the project makes
who leads. Leadership and management are two people afraid they will be hurt, then fix the
very different things. Leadership is about seeing a project.
problem then getting people together to solve it. One management responsibility that
Any team member who knows enough to foresee doesn't change is removing obstacles to success.
a problem also knows enough to lead the What does change is that you don't get to decide
solution. It is your responsibility to do so. what is an obstacle and what must be accepted as will not make all of them. Your responsibility as
It may be counter intuitive, but a team that non-negotiable. Your team tells you everyday at an empowered team member is to be aware of
is calm and confident about their work is very the daily stand up/scrum meeting and you must discussions going on that you feel strongly about.
decisive without a single person as boss. There act to the best of your abilities. You are responsible for joining in, and
are plenty of jokes about committees being The manager also decides if the team contributing without prompting.
unable to produce a good design. Bad designs should be refocused during an iteration/sprint. The One thing that can expedite team
can happen to any team if the product vision isn't manager has the authority to schedule planning empowerment is to remove blame. Some of your
strong and well voiced. That is the responsibility meetings (or abnormal sprint termination) and team will hesitate to make important decisions if
of the customer/product owner. must do so wisely. Too many planning meetings they feel someone else will bully them over it later.
Being the customer on an Agile project can create chaos and nothing will get done, too In some companies being late with someone else
isn't easy. You will find yourself almost constantly few planning meetings doesn't provide the to blame is just as good as being on time.
in a leadership role. You must be actively involved customer opportunities to steer the project. Eliminate blame as acceptable by making it clear
in most discussions to make sure your vision is Scrum recommends no changes during the 30 day no one wants to hear it.
followed. You will often be put in the unenviable sprint. Extreme Programming (XP) recommends One of the biggest misunderstandings of
position of breaking hotly debated deadlocked short iterations of one week so an opportunity to team empowerment is that teams just become
discussions. You will decide when the team's change directions is never more than a few days empowered when you announce Agility has
code is ready for deployment. The most difficult away. You must listen to why a mid-iteration arrived. The team starts out following a set of
part will be setting priorities and making the hard change is needed and decide. rules designed to set expectations between team
decision of what will get done and what won't. Everyone needs to get used to distributed members. Most people don't like rules because
This is a far different role from signing the front leadership. The people most involved with a rules usually constrain. An Agile team sets rules to
page of a requirements specification. decision make it when they face it. There is some become free. Create simple rules focused on
If your customer is too valuable to spend evidence from the Lean Development people that defining the interfaces between team members. A
time with your software team then maybe you are putting off decisions till the latest responsible good example is the daily stand up/scrum
building the wrong software. Ask the customer moment when you know the most about the meeting. A rule to have it in the same place at the
what would be valuable and exciting enough to impact is a good idea. I prefer to simply say that if same time for no more than 15 minutes actually
make him want to be there with the team. you know enough to see a decision must be made frees up time for other things.
The role of developer/team member and believe you know most of the consequences Eventually you will feel the ebb and flood
includes programmers, architects, DBAs, testers, then you know enough to make it. If you find it of leadership. You learn to follow reluctant
all of us digital construction workers. Our wasn't a good decision later just estimate the cost leaders because you know they see something
responsibilities now include deciding how to get of going back to it and let the team negotiate with you overlooked. You get organized around
organized and what to do next. We will accept the customer. problems without prompting. You will understand
the responsibility of leading ourselves and looking Highly productive self organizing teams team empowerment enough to mold your process
for potential problems while mitigating risks. This are not easy they require discipline. Good to suit your project and company easily.
is different than just writing code as directed. leadership isn't doing what ever you want when If it seems like chaos could result you are
The manager/scrum master will have many ever you want. The team member with the least correct, unless you also change the way you
new responsibilities. The biggest change is just discipline has the most control by simply not communicate. With a single control point you only
watching the team interact and being there in the following the process. You must set and meet need a single completely informed person. Team
middle of it. If relationships are broken then the team expectations at all times. Other team members can go months without speaking to each
manager must repair them. If the customer isn't members must be able to trust you and know other so long as one person knows everything
leading with a consistent product vision the what to expect from you. and controls everything. Unfortunately even with
manager must act. An unsuitable customer can There will be decisions to make and they smaller projects this command and control model
lead a team in circles and get nothing done. A don't always get made well. Decisions being breaks down quickly. You must eliminate barriers
developer that breaks the process can slow the made by whoever gets there first can cause to communication for Agile to work. No one
entire project down. Replacing customers or significant amounts of disharmony. Accept that works alone anymore.
decisions will need to be made. Accept that you
One dozen Agile words: Iterative planning, honest plans, project heartbeat, working software, team empowerment, and daily communication.
About the Author
http://www.agile-process.org/team.html 1/1
25/9/2017 Daily Communication
Daily Communication
One dozen Agile words: Iterative planning, honest plans, project heartbeat, working software, team empowerment, and daily communication.
About the Author
Copyright 2009 Don Wells all rights reserved.
http://www.agile-process.org/communicate.html 1/1
25/9/2017 Working Software
Working Software
Very important to Agile projects but often Working software is an Agile theme that
overlooked is getting working software done affects everything you do. You will set a project
regularly and frequently. The definition of working heartbeat, but unless you produce working
software may vary slightly between projects, but software each and every iteration your heart beat
not much. Working software is fully integrated, won't be meaningful. Honest plans are only
tested, and ready to be shipped to customers or possible if you have honest estimates based on
deployed into production. That doesn't mean you done meaning finished and working. Iterative
tried it a couple times and it ran without aborting. planning adapts to changes, but good changes
It means you created unit tests, QA tests, and only come from customers looking at, and trying
actually looked at output to prove it works. It isn't out a working incremental version of the system.
as difficult as you think. In fact some teams A big part of your project heartbeat is delivering
deploy new software into production every single working software into production regularly and
day. frequently.
When we were managing our projects by Take your iteration end seriously. If you
activity we needed a way to guard our progress. are using one week iterations it can be tempting to
The people who finished an activity like analysis just push unfinished work into the next iteration. If
might not participate in design or coding. So we you find yourself approaching iteration end with
safe guarded all progress by creating extensive several unfinished stories the right thing to do is
documentation of what was decided and what get your team together and decide which stories
how much is working right now. You can't
was done. We had people with authority sign the could be finished if you work together on them. consider the project half done if all you have is a
front page to verify our efforts were going in the Your project's velocity is a measure of how much
design document. This means you will need to
right direction. software you got working, not how much you
iteratively deliver working software and
An Agile project has all activities going on promise to have working next week.
demonstrate that it is fit for it's purpose. Anything
all the time as needed. We can't use documents When we produce working software in else isn't considered measurable, predictable
with signatures to guard our progress. Instead small increments we are no longer locked into a
progress.
Agile teams rely on automated tests and working minimum cost to get return on investment (ROI).
Working software ready for production
software to safe guard progress. We show We don't need to spend the entire budget (usually
release is easy when you have automated unit
working software to our customer/product owner with overruns) to get something back from our tests, automated acceptance/QA tests, and a one
often and accept changes to ensure our efforts project. We can stop when ever we think we button build that runs them in a reasonable time.
continue in the right direction. You can't empower have done enough or a higher priority projects Your customers don't always know the best way
your team to find its own solution using comes along. how to solve their problem, help them by
documents with signatures, you need the intense Measure your progress honestly. If
demonstrating working software frequently.
feedback that working software provides. software is what you intend to deliver than count
http://www.agile-process.org/working.html 1/1
25/9/2017 The Paradox of Process
Agile-Process.org home | Models are Paintings | XP guided tour | About the Author
Copyright 2004, 2009 Don Wells all rights reserved. Rational Rose is a trademark of the IBM Corporation.
http://www.agile-process.org/process.html 1/1
25/9/2017 Agile Models are Paintings
http://www.agile-process.org/model.html 1/1
25/9/2017 Agile Process Proverbs
http://www.agile-process.org/proverbs.html 1/1