Monday, February 22, 2010

More Communication and Tools

Well, it's been a while since I last posted; I have been rather busy with school and more recently, and I always found an excuse to postpone the writing of this post. However, a few key events recently paved the way to an end of said procrastination. Once again I will be drawing on my experience as a developer for HackWars, since that is an ongoing experience from a beginning developer's point of view (and it does make a great example).

Good Communication
As I discussed in my previous blog post, communication is key to a successful and smooth development process. This was made very apparent with the new direction HackWars development has turned towards. It all started with an email sent out to all of us developers, highlighting the need to examine our methods and to establish better communication between all of us. As a result of that email, the dev team held a meeting soon after. The meeting completely revolutionized the current state of our team, such is the power of good communication. For me personally, the meeting was more than just a laying out of plans for the future. It was a great morale booster. Having our entire team together, actively discussing our next steps in developing the game was something which hadn't happened in a long time; I felt a lot more motivated towards fulfilling my role. Since the meeting, we all have kept this communication level, and will doubtless continue to do so. With the much greater amount of information flow between us, developing has been a much easier process, and the future of HackWars looks much brighter.

To work effectively, you need ...
Tools! Yes, tools are getting another discussion as well as communication. As a result of the meeting, we decided on a new development process. In the past, development tools were batch/shell scripts, notepad or a similar editor, and a basic code repository. This led to some massive disorganization with respect to pretty much any changes to code. I had at least 4 different local copies of the repository all at different states. Although these were somewhat organized, it's still not an effective method of keeping track of code and progress (My only excuse for this is inexperience). As a result of this meeting, Ben, who has been learning a lot about professional development thanks to his awesome job at a startup, decided that we should have a professionally organized repository structure. This enables us to keep much better track of any major code updates, the current stable version, etc. Just recently, we decided to upgrade our development process even more by using the project management software, Trac. Most project management tools include features such as project timelines and task / ticket tracking. This addition to our toolkit has greatly bolstered our ability to effectively produce new, working, tested code, fix bugs, and to track down new bugs introduced by new code. Furthermore, we can keep track of what's been accomplished so far and where each task is relative to it's completion. After using Trac for only a few days, I can already see how absolutely necessary it is for any dev team working on a major project to have a good project management system to support them. Even though HackWars got a late start on this, "better late than never" holds true. I look forward to watching our development process grow and become refined as we learn through our experience.

In summary, the HackWars dev team is going in only one direction, up! Since I joined, I have seen constant improvement both in the game and in the way it is developed. I have learned a lot so far about developing on a large scale, and will no doubt continue to learn. Experience is another very valuable asset I have obtained from helping HackWars, and this one you can only gain by doing. Heck, in a couple years, I might even be a half-decent developer with the background to back up my ideas; who knows? Some of my other projects besides HackWars might be known by that time as well.

So long for now, I'm going back to my schoolwork and dev work!

No comments:

Post a Comment