My job at Bungie these days is about one core piece of technology we use to make our games. It's a system that all the artists, designers and sound designers use to get their work into the game. So, like any technology job where you're building a product other people use, there are two kinds of work: the work of building the technology and the work of supporting the people using it.
Things have been busy enough lately that I was trying to focus just on the coding and not do much support work. It wasn't really working out. All around me the artists, designers, and sound designers were struggling with issues while I was trying just to plow ahead on the coding work we need to get done. When the support work boiled over and I had to stop and attend to it, it took a ton of time and effort. Because I'd been burying my head in the sand trying to get code written, I didn't have any context for what was happening with the users. If I had to help someone, first it took me a good half-hour of asking random people questions just to have enough context to even understand what the problem was and what needed to happen.
I couldn't ignore the support work, though. Eventually I had to turn my attention towards it, and so I did, one week, and it consumed basically my entire week. I got just about nothing else done. It was frustrating seeing the coding work pile up, so my response was to keep trying to minimize my involvement in the support work. I'd do as little as I could get away with, try to hand off problems to someone else. Bu it didn't seem to actually help. It still took a ton of time just to figure out enough about a problem to know how to hand it off to someone else, and if anything that ramp-up time was getting longer.
* * *If you've ever watched the Tour de France, or the road biking events in the Olympics, or ever seen any group of people riding road bikes together, you've probably noticed they tend to cluster together in a compact formation. They're not just riding close together because they like the company (and the increased risk of crashes and injuries.) No, they're riding close together because of drafting.
On PeaceofCode Blog
It is one of the most mind-numbing tasks in the software development process, and one loathed by both developers and customers alike - akin to self-editing a manuscript for a writer who has spent three months pouring over the same text - bug checking is by no means a fun exercise and can be quite frustrating when facing deadlines and customers eager to launch their sites.
Nonetheless, bug testing is an inevitable necessity for any software development project, including website development. For someone who's not familiar with software development, bug testing seems like it shouldn't be necessary, "How come you guys didn't just get it right the first time?" Of course, anyone who's actually coded anything themselves knows that it is virtually impossible to code anything with out any errors in a single pass. Just as a writer needs to create a first draft, then get feedback from an editor and other readers before making a series of adjustments before their publisher approves and prints the final edition, software development requires review, feedback, and modification to produce fully-functional websites that are ready to launch to the public.
And so we must anticipate and budget for bug testing for all website development projects, and there are a number of ways to do this. Most approaches rely on creating lists of "bug reports" that are processed by developers until the list is exhausted and the website is ready to be launched. Whether it's done on a piece of scratch paper or with an advanced ticket management system, the purpose of creating bug reports is to document each and every fix, tweak, error, and adjustment that needs to be made to the site to bring it up to acceptable professional usability standards.
However, not all approaches to bug testing are equally effective, and disorganized approaches will very quickly expose the need to implement efficient and effective practices for documenting, assigning, and completing bugs as they are discovered and resolved often by a team of multiple individuals. In order for multiple workers to coordinate their efforts, proper bug reporting becomes essential, not only for ensuring that all work is correctly completed, but also because poor bug reporting will result in redundant work, excessive time spent clarifying bugs, and ultimately a longer development period (which extends the cost of hourly or salaried workers).
An effective bug-reporting process should include the following: