01.02.2013 Views

Software Development Cross Solution - Index of - Free

Software Development Cross Solution - Index of - Free

Software Development Cross Solution - Index of - Free

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!