Forrester Research is conducting a survey on the impact of agile processes on technology companies. They are looking for feedback from both technical and business people within organizations. It takes only about 10 minutes to complete the survey, and I encourage people to do so. Take the survy here.
A challenge to think of a feature in Microsoft Word (as an example) that is new functionality rather than a better way of doing something that could have been done 100 years ago.
Hot in the TDD Yahoo group is a discussion concerning the perceived continuum between the "Classic" and "Mockist" TDD. Steve Freeman, Nat Pryce, Michael Feathers, Dale Emery, and many more discuss terminology and describe their approaches. The discussion also debates whether there even really exists such a continuum, and if so, what distinguishes the approaches that represent it's extremes? By Mike Bria
Warning: academic theorizing and hypothesizing follow. Oh, and half-baked pontification.
I just finished refactoring reek to drive in a major new chunk of functionality (configuration files) which I’ll release soon, when I’ve had time for some thorough testing.
The refactoring needed to accommodate the change was huge, occupying much of my free time over the course of [...]
По-моему, отличная статья Алексея Омельянчука о том, как применяется Agile в проектах разработки электронных устройств.
Потрясающе интересный опыт итеративной разработки в абсолютно (казалось бы) непригодной для этого среде. Кроссфункциональности нет. Сборка занимает 2 недели (а не 5 минут, и даже не 3 часа). Куча смежных проблем.
В общем, читать всем :-)
For me being empowered is a property of 'the system' in which we play a part. It's constructed between people, by the actions they take individually in the environment they occupy.
Having the right environment is essential. When it's safe and fun people are motivated by trust. They begin to demonstrate the courage to be creative and they take risks and make mistakes. An environment that tolerates mistakes to cultivate learning helps people face their fears and act decisively. And when people are able to perform freely they become energized and create a buzz.
Empowerment is not something that can be assigned. I can't give you empowerment and you can't give it to me. So don't try to empower people. Concentrate on creating the right environment for people to construct their own empowerment and step back.
Unit and Integration testing often get more importance in Agile teams as compared to acceptance testing. Gojko Adzic and Lisa Crispin suggest approaches to efficiently include acceptance tests as a part of development. By Vikas Hazrati
The Eclipse Foundation has announced the immediate availability of PDT 2.0, a major upgrade to the popular Eclipse PHP Development Tools project. PDT is an open source development tool that provides all the basic code editing capabilities developers need to get started developing PHP applications. By Alex Blewitt
At the end of the sprint, the Product Owner, Team
and Scrum
Master meet to review the progress of the sprint. The product owner has
to
evaluate the state of the project so s/he can decide what to do next.
How does
the Product Owner ensure that s/he gets a complete and correct
understanding
about the state of the project, including all inconvenient truths? Here
is a
simple agenda/meeting template to follow, to make sure all the bases
are
covered.
Last week, I introduced that concept of a Sprint
Contract to
define the parameters of the sprint. The factors Scope, Quality, Time
and Cost
will be familiar to any project manager. Scope is defined by the
stories and in
particular their size. Quality is defined primarily by the definition
of done.
Time is fixed by the sprint duration. An upper limit on the costs is
set by the
team size * sprint duration, after adjusting for absences and other
tasks.
A simple sprint review needs to
<!--break-->
The Scrum Master should take a few minutes to
review and
summarize the agreement between product owner and team. How many
stories? How
many story points? What is the definition of done? How much effort did
the team
plan to invest?
Next the Scrum Master should present a summary of
what the team
actually accomplished. How many stories achieved done? How many story
points?
Did the team invest more, less or the same effort as planned? If there
were any
important differences, now is the time to make them visible.
The Release Burn Down chart is the primary tool
for
measuring progress and scope of the project. Scope, progress and
estimated
completion date are all clearly presented in one easy to interpret
chart.
Everyone in the project should see the update release burn down chart
after
each sprint. It's even better to keep it posted on the wall.
Is this enough? Beyond the basic burn down chart,
it might
useful to keep an eye on the other parameters of the project, i.e.
quality and
cost.
Monitoring quality builds confidence in the
product and
keeps your technical debt under scrutiny. The number of unit tests and
acceptance tests defined and passed should increase every sprint.
Insufficient
tests are warnings that technical debt is accumulating or that
requirements
could change suddenly as the project nears completion. A rising number
of open
bugs may be a sign that the quality is not sufficient. Your next
retrospective
would be a good to time ask yourselves how to produce fewer bugs.
I think the main reason for monitoring work
invested is to
make sure that your teams efforts are not being diverted from the project.
Monitoring
budget in actual money will keep your top management happy and make
your
Product Owner's life easier. Budget can be tracked with a burn down
chart, just
like scope, and the budget divided by burn-rate should be sufficient to
cover
the remaining sprints.
Your team is only allowed to demonstrate finished
functionality, i.e. meets the definition of done. My experience has
been that trying
to demo unfinished functionality causes trouble -- things which haven't
been
fully tested often break. Everyone should get a chance to talk, so each
developer should demonstrate the functionality s/he was primarily
responsible
for.
As a product owner, you should ask questions and
explore.
This is a demo of product which your users will use, not a tour through
the
mine field. So everything you see should work or fail gracefully.
Once you've seen everything that is done, you can
discuss
briefly anything which was not successfully delivered. Why wasn't it
delivered?
What needs to be different, so that it can be completed in a future
sprint? Or
do you need to rethink?
Here is a sample agenda for the meeting, with
timings for a
2 week sprint.
Present: Product Owner, Implementation Team, Scrum
Master
Moderation: Scrum-Master
Duration: 1 hour per week of sprint length
Agenda:
|
What |
Description |
Who |
Duration |
|
Confirm that the team has delivered on its |
Review Sprint Contract |
Scrum Master |
0:05 |
|
Confirm that the project is on track |
Review & Discuss Release Burndown Chart, |
Scrum Master |
0:05 |
|
Examine the functionality which has been |
A spontaneous guided tour, led by the |
Product Owner and Team |
1:40 |
|
Discuss functionality which was committed |
Understand what happened and why, but save |
Product Owner and Team |
Up |
Lean Software Development has its roots in Toyota Production System and it helps software organizations optimize their processes and production methods in order to deliver their products to the market much faster and with better quality. Lean movement can be considered as a new development method that tries to identify and eradicate all problems and "disabilities" of old methodologies like Waterfall. Lean puts main focus on people and communication - if people who produce the software are respected and they communicate efficiently, it is more likely that they will deliver good product and the final customer will be satisfied.
Lean Software Development subsequently gave birth to Agile Software Development methods and its main branches like Scrum or Crystal Clear. For many people who know the subject Agile is just another word for Lean or Lightweight.
In one of the most popular books on Lean subject, namely "Implementing Lean Software Development - from Concept to Cash", Mary and Tom Poppendieck explain how to implement Lean by following seven principles - principles that are some kind of Lean commandments:
<!--break-->
If this brief introduction to Lean Software Development is still not enough for you I strongly recommend buying and reading Poppendiecks' book "Implementing Lean Software Development - from Concept to Cash".