A Project Heartbeat

If
your Agile
project doesn't have a heartbeat declare it dead. A steady heartbeat
has a fixed length iteration as short as you can make it. A strong
heartbeat produces working software ready for deployment to
production with completely finished iteration/sprint commitments. A
responsive heartbeat creates a new
plan each iteration based on feedback from the previous
iteration and changing customer needs, not what was left unfinished.Steady
your heartbeat by making your iteration length a constant then
shorten the length to less than you think is possible. Push against
resistance to short iterations forcing your team to learn and adapt to
Agile processes. Don't just accept that a one week iteration seems
impossible. Trust your people to figure it out and fix existing broken
procedures. Shorter
iterations actually increase the chances of being done on time not
reduce it.Within
an iteration make each day a heartbeat all its own. Start each day with
a stand up/scrum meeting. Integrate
code at least once a day if not every couple hours. With everyone
integrating often you can frequently pull the latest code from your
repository so that you always work in the context of the latest
versions of everything. Work as if everyday has a deadline too.The
one essential ingredient that changes repetitive development into
iterative development

is
feedback. A shorter iteration gives you more frequent feedback and more
opportunities to learn and steer your project. Scrum recommends 30 day
sprints while Extreme Programming (XP) recommends one week iterations.You
want your team to
have a sense of iteration
length to work at a steady pace,
estimate better, and be fully prepared for iteration end. You want your
customer/product owner to see new functionality often so they feel
optimistic about
progress and can learn about their problem and potential solution
quickly. You want managers/scrum masters to feel a sense of urgency in
removing
obstacles to success so the team continues steadily throughout
the iteration and not rush at the end.You
want to set expectations that in a short while customers will receive a
new version of the system with the features they identified as most
important. You want to reflect on how the process went and make
improvements. You will make new plans for the next heartbeat. You will
finish as much working software as you can and make a simple
measurement of progress.A
measurable, predictable, sustainable pace helps you plan and meet your
commitments. Developers
are known
to steal from the future by working many extra hours to stay on
schedule today. But
we
all know trying to catch up always puts us farther behind because we
can't continue that pace. Eventually our pace slows down to

almost
nothing. With a steady easy to predict pace we can make plans that are
more likely to come true.Always
deliver working software
at the end of each and every iteration. Conduct a demonstration of new
features every
iteration. End every iteration with a retrospective on what could be
done better next time. Start every iteration with a
planning meeting.
Iterations must start from scratch and not what was left over from last
iteration. Every iteration should feel like a fresh start, a blank
canvas full of new opportunities for an
empowered team.