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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Q: I noticed that the bug fixing tasks on page 406 both had<br />

estimates. Where did those estimates come from?<br />

A: Good catch! Bug fixing tasks are just like any other type <strong>of</strong> task;<br />

they need an estimate, and there are a number <strong>of</strong> ways that you can<br />

come up with that.<br />

You can derive the estimate, dividing the total amount <strong>of</strong> days you’ve<br />

calculated evenly by the number <strong>of</strong> bugs to fix, or you can play<br />

planning poker with your team. Whichever approach you take, your<br />

total planned tasks for bug fixes must never be greater than the<br />

number <strong>of</strong> days calculated from your spike test.<br />

Q: When fixing bugs, how much time should I spend on<br />

cleaning up other problems I notice, or just generally cleaning<br />

up the code?<br />

A: This is a tough call. It would be great to fix every bug or<br />

problem you see, but then you’ll likely finish all your tasks late or,<br />

worse, end up refactoring your code indefinitely.<br />

The best guideline is to get the code into a working, pretty decent<br />

state, within the time allotted for your bug fixing task, and then move<br />

on to the next task. First priority is to get the code working; second<br />

is to make it as easily readable and understandable as possible so<br />

that bugs are not accidentally introduced in the future. If there are<br />

problems you found but couldn’t get to, file them as new bugs and<br />

prioritize them into a later iteration.<br />

Q: What did that five-day spike test period do to our iteration<br />

length?<br />

A: Right now, we’re getting ready for the next iteration so we’re<br />

between iterations. If there’s a master schedule, the five days needs<br />

to be accounted for there, but in terms <strong>of</strong> iteration time, it’s basically<br />

<strong>of</strong>f the clock. After you get your board sorted out and everything<br />

approved by the customer, though, you should kick <strong>of</strong>f a normal<br />

iteration. If you’re forced to do a spike test in the middle <strong>of</strong> an<br />

iteration, that’s a case where it’s probably OK to slip the iteration end<br />

date by a week, assuming nearly everyone is participating.<br />

If only a small number <strong>of</strong> developers are participating in the spike test<br />

and everyone else is continuing the iteration, you probably want to<br />

drop that five days’ worth <strong>of</strong> other work from the iteration, but still end<br />

on time.<br />

Remember, this is five days per<br />

person, not five days total.<br />

Download at WoweBook.Com<br />

bugs<br />

Q: You said try and get code into a “pretty decent” state.<br />

What does that really mean?<br />

A: This is really a judgment call, and in fact this is where you<br />

get into the aesthetics <strong>of</strong> code, which is a whole book on its own.<br />

However there are some rules <strong>of</strong> thumb that can help you decide<br />

when your code is good enough and you can move on.<br />

First, the code must work according to your tests. Those tests<br />

must exercise your code thoroughly, and you should feel very<br />

confident that the code works as it should.<br />

Secondly, your code should be readable. Do you have cryptic<br />

variable names? Do the lines <strong>of</strong> code read like Sanskrit? Are you<br />

using too much complicated syntax just because you can? These<br />

are all huge warning signs that your code needs to be improved in<br />

readability.<br />

And finally, you should be proud <strong>of</strong> your code. When your code is<br />

correct and easily readable by another developer, then you’ve really<br />

done your job. It doesn’t have to be perfect, but “pretty decent” starts<br />

with your code doing what it should and ends with it being readable.<br />

Q: This sounds like the same approach as the perfect-versusgood-enough<br />

design stuff we talked about earlier, right?<br />

A: Yes, it’s based on exactly the same principle. Just as you can<br />

spend hours improving a design, trying to reach perfection, you can<br />

waste exactly the same time in your coding. Don’t fall into the trap<br />

<strong>of</strong> perfection. If you achieve it, then that’s great, but what you’re<br />

aiming for is code that does what it should, and that can be read and<br />

understood by others. Do that, and you’re coding like a pro.<br />

Beautiful code is nice,<br />

but tested and readable<br />

code is delivered on time.<br />

you are here 4 409

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

Saved successfully!

Ooh no, something went wrong!