As software professionals in a community of software professionals, the most important thing we have to share is our experience. Software is such a diverse industry, there are so many different ways to make software, and there are so many different ways to use software, that what seems utterly routine to one person may be a revelation to someone else. For learning about software and for teaching about software, there is no better vehicle than the experience report.Software testers are in a unique position in this regard. Unlike every other role on a software team, the most important artifact that testers generate is a species of experience report: the defect report. Great defect reports contain only what the tester has actually seen and experienced. Good testers have a reporter's instinct for factual stories. The trick is to get a lot of good stories. Good stories come from new and unusual experiences. There are a number of ways to pursue such experiences.
Changing jobs frequently is one way to achieve a diverse range of experience. While it is difficult to face a completely new situation every so often, doing this can be rewarding in terms of gaining wide experience. Another possibility is to change teams or to change roles frequently within a single company. Many companies encourage and reward such actions. Another possibility is to spend some time as a consultant, working on a variety of different project for different clients over
Nurture a sense of curiosity. Learn to use a debugger in order to watch code work. Learn how networks work to see how data gets moved around by software. Learn a few programming languages at least well enough to be able to create something useful. Learn how operating systems work. Learn databases and file systems. Being curious about such things leads to new understanding and new experience.
No software process is perfect. In any company, for any role on a software team, there is almost certainly some change to be made that will make things better. Perhaps the code could be reviewed better, or the build system could be improved, or the test data or the test environment better managed. Inventing new ways to do things in the service of improving one's own software development experience is a great source of experience reports.
Everyone fails sometimes. Failure is by its nature interesting. One sets out to achieve something, but something else happens instead. What actually happened is almost always an excellent story.
There is a saying that experience is the best teacher. But having learned, it is far better to share that learning than to keep it secret. Bring on the experience reports.
This was first published in October 2010