Hey,
It's been quite a while since I posted a Developer Diary, so I guess it's a good time to give you some updates on what's happening, since the release of 1.9.3. I plan to give you some details of what happened since the 1.9.3 release until now, when we're finally getting close to have a solid 1.9.4.
In this topic, I'm planning to describre and analyze most of what happened, while developing 1.9.4 version. This analysis is planned to be posted in two (possibly three) parts, where this one is the first part. I hope you enjoy it.
Assembling a team and organizing development
Since 1.9.3 release, both the community and the developer team started to find TONS of bugs that hadn't been previously encountered, even with many of them were quite simple to find. It become clear to everyone on the team that we lacked a quality assurance (QA) team. Furthermore, we didn't have a centralized lead for the SourceForts team, was it a single person or a group of people.
Step 1: Organizing the team and centralizing resources
A little background to get we started:
As crazy as it may seem, while we had a good team, it was unstructured and divided, and we didn't have a central place to keep everyone on the team focused on a common purpose. Initially, we had HisChild - and unofficially thePlayer - working on one branch of 1.9.4, while I was working on another branch. Eventually, this led to an internal conflict, where it became difficult for two independent teams work on the same codebase with almost no communication, and, to summarize, I was assigned to start developing Haven (our nice internal codename for SourceForts 2), and HisChild kept working on 1.9.4.
After some time, and many bug fixes,
real life issues caught up with HisChild and caused him to take an indefinite break from SourceForts. Consequently I was reassigned back to working on 1.9.4 and without a programmer only the conceptual side of Haven kept ticking over. While I thought it would be just needed to fix 3 or 4 bugs - and I guess we all did - it was a lot more than that...
One of the first few screenshots from the earlier haven build.
Flags, capture points and 2x3 blocks implemented.
We definitely needed resource to keep everyone working all the time. There were a few attempts doing so, with quite some 3rd party software, specifically for the bugtracker. Eventually, I noticed that keeping everyone always in the same place - the forum - would be the the best way to keep everyone integrated and working together, without needs to keep opening another site with the bugtracker to check if anything was updated since the last visit. Still, most of the team checked the forums at least once per day, so, the forums was the right place to center our attention.
While the bug tracker worked okay, discussion still seemed to spill over to the forum more often than not, making information harder to find. I decided it would be best to centralise everything on the forums and enforce our own rules as to how bug should be reported, giving the testing team a more familiar interface. And ensuring most of the team would check it daily.
Instructions for our first really-functional bug-tracker.
It was rough, but it worked great, and sped up development a lot!
As you can see by the above screenshots, our bugtracker was nothing fancier than a forum with some rules laid out. It was a damn good experience to use it, and infinitely useful, very simple, but very effective, as everyone committed their efforts into a single place, thus, dastically speeding up the process of triaging and fixing bugs.
At this point the bug tracker contained three or four fairly small bugs. Within less than a week it would contain just under twenty, a number that would keep growing faster than bugs could be fixed.
When the forum had proved itself as the best place to handle bugs I went ahead and modified vBulletin to allow certain sub-forums to act like a bug tracker, with a more feature rich toolset than we'd previously had.
Few of the latest bugs fixed in Sourceforts 1.9.4.
The list was long, but we're close to fix them all!
So, we've reached the end of our first part. I hope you have enjoyed it as much as I enjoyed writing it!
On the next part, I'm planning to talk about our new SVN Server, programming standards, testing and QA. Stay tuned!