Software Development Cross Solution - Index of - Free
Software Development Cross Solution - Index of - Free
Software Development Cross Solution - Index of - Free
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Q: How do you know the first graph<br />
is things the team missed? Couldn’t it<br />
be things they didn’t expect, like extra<br />
demos or presentations?<br />
A: Absolutely. The burn-down graph isn’t<br />
enough to go on to determine where all<br />
those extra work items came from. You need<br />
to look at the completed tasks and figure out<br />
whether the extra work came from outside<br />
forces that you couldn’t control or if they<br />
were a result <strong>of</strong> not really understanding<br />
what the team was getting into. Either way,<br />
it’s important to make progress in addressing<br />
the extra work before the next iteration. If the<br />
work came from outside sources, can you do<br />
something to limit that from happening again,<br />
or at least incorporate it into your work for<br />
the estimate? For example, if the marketing<br />
team keeps asking you for demos, can you<br />
pick one day a week where they could get<br />
a demo if needed? You can block that time<br />
<strong>of</strong>f and count it toward the total work left.<br />
You can use the same approach if things<br />
like recruiting or interviewing candidate<br />
team members is taking time away from<br />
development. Remember—your job is to do<br />
what the customer wants. However, it’s<br />
also your responsibility to know where your<br />
time is going and prioritize appropriately.<br />
If the extra work came from not<br />
understanding what you were getting into, do<br />
you have a better sense now, after working<br />
on the project for another iteration? Would<br />
spending more time during task breakdowns<br />
help the team get a better sense <strong>of</strong> what<br />
has to be done? Maybe some more up-front<br />
design, or possibly quick-and-dirty code<br />
(called spike implementations) to help shake<br />
out the details?<br />
Q: So spending more time doing<br />
up-front design usually helps create<br />
better burn-down rates, right?<br />
A: Maybe...but not necessarily. First,<br />
remember that by the time you start doing<br />
design, you’re already into your iteration.<br />
Ideally you’d find those issues earlier.<br />
It’s also important to think about when is the<br />
right time to do the design for an iteration.<br />
Some teams do most <strong>of</strong> the detailed design<br />
work at the beginning <strong>of</strong> the iteration to get<br />
a good grasp <strong>of</strong> everything that needs to be<br />
done. That’s not necessarily a bad approach,<br />
but keep an eye on how efficient you are<br />
with your designs. If you had driven a couple<br />
stories to completion before you worked<br />
up designs for some <strong>of</strong> the remaining ones,<br />
would you have known more about the rest<br />
<strong>of</strong> the iteration? Would the design work have<br />
gone faster, or would you realize things<br />
you’d need to go back and fix in the first few<br />
stories? It’s a trade <strong>of</strong>f between how much<br />
up-front design you do before you start<br />
coding.<br />
Having said all <strong>of</strong> that, sometimes doing<br />
some rough whiteboard design sketches<br />
and spending a little extra time estimating<br />
poorly understood stories can help a lot with<br />
identifying any problem issues.<br />
Q: For that third graph, couldn’t the<br />
velocity be a big part <strong>of</strong> the problem?<br />
A: That’s a possibility, for sure. It could<br />
either be that the team’s estimates were<br />
wrong and things just took a lot longer than<br />
they thought the would, or their estimates<br />
were reasonable but they just couldn’t<br />
implement as fast as they thought. At the<br />
end <strong>of</strong> the day it doesn’t make too much<br />
difference. As long as a team is consistent<br />
with their estimates, then velocity can<br />
be tweaked to compensate for over- or<br />
underestimating. What you don’t want to do<br />
is keep shifting your estimates around. Keep<br />
trying to estimate for that ideal workday<br />
for your average developer—if that person<br />
was locked in a room with a computer and<br />
a case <strong>of</strong> Jolt, how long would it take? Then,<br />
use velocity to adjust for the reality <strong>of</strong> your<br />
work environment and mixed skill level on<br />
your team.<br />
Download at WoweBook.Com<br />
ending an iteration<br />
Q: So should the team with the third<br />
graph just add time to the end <strong>of</strong> their<br />
iteration to get the extra work done?<br />
A: In general that’s not a great idea.<br />
Typically, when the burn-down graph looks<br />
like that, people are already working hard<br />
and feeling stressed. Remember one <strong>of</strong><br />
the benefits <strong>of</strong> that graph on the board is<br />
communication—everyone sees it at each<br />
standup, and they know things are running<br />
behind. Adding a day or two is usually OK in<br />
a crisis, but not something you want to do on<br />
a regular basis. Adding a week or two... well,<br />
unless it’s your last iteration, that’s probably<br />
not a good idea. It’s generally better to<br />
punt on a user story or two and move them<br />
to the next iteration. Clean up the stories<br />
you finished, get the tests passing, and let<br />
everyone take a breather. You can adjust<br />
your velocity and get a handle on what went<br />
wrong before you start the next iteration, and<br />
go into it with a refreshed team and a more<br />
realistic pace.<br />
Q: We have one guy who just<br />
constantly underestimates how long<br />
something is going to take and wrecks<br />
our burn-down. How do we handle that?<br />
A: First, try to handle the bad estimates<br />
during estimation, and remember, you<br />
should be estimating as a team. Try<br />
reminding the person that they aren’t<br />
estimating for themselves, but for the<br />
average person on your team. If that still<br />
doesn’t work, try keeping track <strong>of</strong> the date<br />
a task gets moved to In Progress, and then<br />
the date it gets moved to Done. At the end<br />
<strong>of</strong> your iteration, use that information to<br />
calibrate your estimations. Remember, this<br />
isn’t about making anyone feel bad because<br />
they took longer than originally expected;<br />
it’s to calibrate your estimates from the<br />
beginning.<br />
you are here 4 323