You’re almost finished! The team’s been working hard, and things are wrapping up. Your tasks and user stories are complete, but what’s the best way to spend that extra day you ended up with? Where does user testing fit in? Can you squeeze in one more round of refactoring and redesign? And there sure are a lot of lingering bugs...when do those get fixed? It’s all part of the end of an iteration... so let’s get started on getting finished.
Your iteration is just about complete... :
You’ve made it! You’ve successfully put your process in place: the stories have piled up in the Completed section of your board, and everyone’s
ready for a little breather. Before people head out for the weekend, though, let’s do a quick status check :
Suppose all your hard work has resulted in a day or two to spare at the end of your iteration. What else could you do if you had more time?
...but there’s lots left you could do :
There are always more things you can do on a project. One benefit of iterative development is that you get a chance to step back and think about what you’ve just built every month or so
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkvD8DMNCgLFkQ9UTdaKz9RwE4ldULyEraOhORikRX-l6hcuFDNfRkl_VVTUDaxGE3smKIRY1cT7gEN5GTPZEE9tYxa9qFx4HGMCBnPyGTva6xIQhcS_wZ-MAoS9OUfP-1TzINLO7MvIo/s720/Ch9_p319-1.jpg)
System testing MUST be done... :
Your system has to work, and that means using the system. So you’ve got to either have a dedicated end-to-end system testing period, or you actually let the real users work on the system (even if it’s on a beta release). No matter which route you go, you’ve got to test the system in a situation that’s as close to real-world as you can manage. That’s called system testing, and it’s all about reality, and the system as a whole, rather than all its individual parts.
Key Point:
...but WHO does system testing?
You should try your best to have a different set of people doing your system testing. It’s not that developers aren’t really bright people; it’s just that dedicated testers bring a testing mentality to your project.
- Developer testing
- Tester testing
Good system testing requires TWO iteration cycles :
Iterations help your team stay focused, deal with just a manageable amount of user stories, and keep you from getting too far ahead without built-in checkpoints with your customer.But you need all the same things for good system testing. So what if you had two cycles of iterations going on?
This assumes you’ve got two separate teams: one working on code, the other handling system testing. But the same principles apply if your second team is other developers.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGZeh51Rr6dYg_n5c2iWR71NX-qX2K8gzWvaXwnVPqrQvufP7vkVzI9REe82UUn8H755RkBCch4WPNNL6U_qwAwc2FfehC05-BcwBJC7B-OrJrX2AQC2iI4PN32L4qtvwc_GoVZ8Ik2ig/s800/Ch9_p328-1.jpg)
More iterations means more problems :
System testing works best with two separate teams, working two separate iteration cycles. But with more iterations comes more trouble—problems that aren’t easy to solve. Running two cycles of iterations means you’ve got to deal with :
- LOTS more communication
Not only do you have inter-team communication issues, but you’ve got two teams trying to work together. The testing team will have questions on an iteration, and the development team wants to get on to the next story, not field queries. One way to help this is to bring a representative from the test team into your standup meetings as an observer. He’ll get a chance to hear what’s going on each day and get to see the any notes or red stickies on the board as the iteration progresses. (It’s not a time to prioritize bugs or ask questions about how to run things.)
- Testing in a FIXED iteration length
If you’re keeping your two iteration cycles in sync—and that’s the best way to keep the testing team caught up— you’re forcing testing to fit into a length that might not be ideal. To help give the test team a voice in iterations, you can have them provide you a testing estimate for stories you’re planning on including in your iteration. It might give you some insight into where the testing team might get hung up or need some help to get through a tough iteration.
- Fixing bugs while you keep working
The development team will start getting bug reports on their second iteration about the time they’re getting into the third iteration! And then you have to figure out if the bug’s important enough to fix right away, roll into the current iteration, or put off for later. The straightforward approach is to treat a bug like any other story. Prioritize it against everything else and bump lower-priority stories if you need to in order to get it done sooner.
Another approach is to carve off a portion of time every week that you’ll dedicate to bug fixes. Take this off of the available hours when you do your iteration planning, so you don’t need to worry about it affecting your velocity. For example, you could have everyone spend one day a week on bug fixes—about 20% of their time.
- Writing tests for a moving target
Functionality in user stories—even if it’s agreed upon by the customer—can change. So lots of times, tests and effort are being put into something that changes 30 days later. That’s a source of a lot of irritation and frustration for people working on tests. There’s not much you can do here except communicate. Communicate as soon as you think something might change.
Key Point :
The life (and death) of a bug :
Eventually, your testers are going to find a bug. In fact, they’ll probably find a lot of them. So what happens then? Do you just fix the bug, and not worry about it? Do you write it down? What really happens to bugs?
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhnzJwDC9gQT4impzlMYDVQU-DdEhYXpcr5qeqRhLh-7rcD7w7WmhFSPd2miDRHHf64X_ztv0h-sjvqSIileAdaOfnjnqnOhJX8SVVCSfICjFqtWVSZDi7mVsfE0GAaFolUYilWKWo9cs/s800/Ch9_p334-1.jpg)
Bugs belong in a bug tracker :
The most important thing about dealing with bugs on a software project is making sure they get recorded and tracked. For the most part it doesn’t matter which bug tracking software you use; there are free ones like Bugzilla and Mantis or commercial ones like TestTrackPro and ClearQuest. The main thing is to make sure the whole team knows how to use whatever piece of software you choose. You should also use your tracker for more than just writing down the bug, too. Make sure you :
1. Record and communicate priorities
2. Keep track of everything
3. Generate metrics
Anatomy of a bug report :
As a general rule of thumb, the more information you can provide in a bug report, the better. Even if you work on a bug and don’t fix it, you should record what you’ve done, and any ideas about what else might need to be done. You—or another developer—might save hours by referring to that information when you come back to that bug later. A good bug report should have :
* Summary
* Steps to reproduce
* What you expected to happen and what really did happen
* Version, platform, and location information
* Severity and priority
Time for the iteration review :
It’s here: the end of your iteration. You’re remaining work is at zero, you’ve hit the last day of the iteration, and it’s time to start getting ready for the next iteration. But, before you prioritize your next stories, remember : it’s not just software we’re developing iteratively. You should develop and define your process iteratively, too. At the end of each iteration, take some time to do an iteration review with your team. Everyone has to live with this process so make sure you incorporate their opinions.
1. Prepare ahead of time
2. Be forward-looking
3. Calculate your metrics
4. Have a standard set of questions to review
A GENERAL priority list for getting EXTRA things done... :
You’ve got to figure out what’s best for your project, but here are some general things you can look at if you’ve got extra time in your iteration.
- Fix bugs
- Pull in stories that are on deck for next iteration
- Prototype solutions for the next iteration
- Training or learning time
Tools for your Software Development Toolbox :
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh-03gCk25g7nXNbjrYRHYVS5AtmMP4Azc6QPfo5lqaMZEs9pOtCsUmYJLaP4G3U6fAtIVA26jzP9OnMXL8IF71cQBRGBCye4fDCQnFJGb0Y9KIyLX-O6aVXjrWSRiL1bRV38YNUfEXg8/s800/Ch9_p346-1.jpg)
沒有留言:
張貼留言