Over the weekend, I bought something rather frivolous. When shopping around at various used stores in Green Bay, the pre-played in Appleton had a copy of Metal Gear Solid 4 Limited Edition for $60. So, even though I already own the game, I bought this edition for the extra things that come with the Limited Edition, which is just a Blu-ray of 'making of' featurettes and a Soundtrack. It also comes in a spiffy case.
Sometimes my collector's nature overcomes me, so today I started watching the Blu-ray to sort of put worth to my purchase and I watched the first featurette called Hideo Kojima's Genes.
This focused very much of Kojima; his thoughts, feelings and goals for Metal Gear Solid 4. And also the final 4 grueling months of work before the games release. Blah blah blah... he has a vision for the future of the series, and he wants new developers to take the helm and continue with new characters and stories in the universe that Solid Sanke started.
What interested me were how they handled the bugs. Their bug tracking system works a lot like the process we used at Distance Education at UWP rather than what we do at Widen. At Widen, we use an incredibly fast piece of software called Fog Bugz. Each bug, feature, and enhancement has a specific case number and it gets assigned back and forth to different people. When the case is complete, it's set to resolved and then passed to QA who either re-open it and assign it back to someone to fix again, or it's closed. Cases can be assigned to user created categories and time tables. It's really helpful. ^_^
The process we used at Distance Ed is far more archaic, but it's pretty much the same thing except printed out. Someone would print out some pages from our website and draw on the changes they wanted. Whether it be layout changes, text changes, or anything really. This worked well for them because of the physical nature. If you didn't know how to completely explain what you wanted, you just drew it out. Then they'd have a cover letter for each bundle of papers paper-clipped to the top with who the change was from, who fixed them, and who verified their fix.
My inbox would be full of black and white printouts with red ink all over them. I'd take them to my desk, make all the changes, then sign off the changes. I'd go back to the office area after finishing all the stuff and distribute them to people to verify them.
From the looks of things Kojima Productions does something quite similar. They have a sheet of paper that represents a single bug. On the top are several squares for people's names throughout the flow of the bug resolution. The person who found it, the person who fixed it, the person who verified the fix, and the person who found it will write off it's resolution.
The rest of the paper is where the bug details are written, but there's plenty of room to draw out the scenario too. Several of the bugs I saw had a quick sketch of a map to show where the bug was found. Another other has sketches of guards that were holding guns a little awkward. They weren't incredibly detailed, but each bug made their point pretty well. There were still instances where the programmer had to talk with the case opener to understand exactly what the bug was. ^_^
I find it interesting that in these 3 examples, where the overall products are completely different, the whole bug finding and fixing processes are essentially identical. They're just slightly tweaked in each case to fit the needs of the crew. In the case of my current job, Widen, paper would be an absolute mess. I'm really glad I'm no longer in an environment where the printer is constantly running.
In the featurette, there were several points where the programmers were super-pissed off at Kojima's persistent revisions. It's really amazing that they made the June release date when they re-did parts of the dialog at the end of February! Add smoke here, adjust the difficulty there. They showed plenty of clips where they'd just be walking along or watching a cutscene and the debug screen would POP up with a status report saying something was wrong.
But through the month of March, they starting getting the outstanding bugs under control and began smiling about their product. I've gotten to this point several times. Kojima described it as a "Developer's High" It's around the point where you see the end of the tunnel, but more importantly when you see the full extent of the fruits of your labor.
Much like when you're climbing a mountain. You're always looking up, looking forward to your destination. You'll hit a couple way points on the way. A chance to look down and see how far you've come. You look back at your success that has brought you to this point and even though you still have a ways to go, you impress yourself. You feel accomplished and you have something to show for it. ^_^
At Widen, I've been working on two areas of our development that are pretty much my own, programming-wise anyways. Certainly anyone can work on them, but our team is small enough that the amount of tasks fall into more categories than developers. So, for the past two or three releases these areas are mine. It's interesting to reinstall a version of the software before I started messing with it and see how far it has come since then. What once were simple pages are now full of technology in the background to streamline the process. Basically automated robots doing manual work.
Each release has had an impact on how they work and I'd be interested to see just how far reaching these changes make it. Unfortunately, the nature of our product pretty much prevents me from finding out. Oh sure, we'll get managorial feedback that this is helping and I'll see an email here and there. But I don't get to see the smile of a satisfied user. I'm not really sure if there would be one either, since what I'm making is a software solution for someone's job. My work basically facilitates the work of someone else facilitating the work of someone else.
The developer's high in this case comes to the amount of work put into these "robots". I've built a pretty slick assembly line with all the little rules and exceptions to those rules and exceptions to the exceptions to the rules that the client has laid out. It's neat having all these complicating guidelines, translating that into code, and that watching the works move along with only the occasional hiccup.
The developer's high at Kojima Productions for Metal Gear Solid 4 is a little different. They understand their product more because it's intended as entertainment and directly for the public. I understand what I do in the context and the language of the terms given to me. I do understand how and why it's used, but I don't have the experience of using it. I can only imagine what might be more useful. Well, fast, reliable, working software is always useful ^_^
Anywho, I'm not really sure where I was going with this but it's pretty neat to see that mountain from the top looking down. Also, writing all this was another way to justify my frivolous purchase.