Mozdev Tools Utilized:
XPCOM - The c++ component handles saving and reading preferences to and from the filesystem via the mediaDownloader object which has two member functions: DoIt() and SaveSummary(). The xpcom component links only to frozen libraries through xpcomglue. This allows a precompiled binary to be placed in the extension/components folder which will autoregister during installation and allow xpcom component functionality by just installing the .xpi! Another advantage of using xpcomglue is that the xpcom component can be compiled using the libraries that are downloaded with Firefox opposed to having to build MineFieldDebug from scratch, which can be difficult.
JS - Displays the pref UI, restoring previous settings. Parses the document for requested tags, handles them by type, and calls urlDownloader() on each after processing.
Primary communication was via google's gmail chat, with chat transcripts being mailed to the HelloWorld mozdev mailing list. Non chat communication was via direct email, including mailing list.
For the majority of the project, communication was good with emails and chats occuring at regular if not daily intervals. As the project deadline approached, interaction increased amongst the majority of the members but dropped off with one member. Ultimately, this lack of correspondence lead to a major feature being dropped. In hindsight better communication during this critical period, would have resulted in a higher quality product and is a lesson I believe all three of us will take away from this.
Some of the techniques we used would be able to scale with little change, whereas other techniques would have to be completely re-thought. The gmail chat would be very difficult to scale as there is no easy way for people to enter into mult-person chats. As the size of a group increased, chat would have to be transitioned to IRC. The mailing list, however, would scale very nicely and relatively few changes would have to be made as member size expanded. Task allocation and managment was handled by dividing the project up at the beginning between the three members. This strategey would not scale well and would have to be completely changed for a bigger project.
Overall, this was a very interesting project that forced members to think seriously about the details of how open source works. Although not always smooth, the project was an excellent first foray into open source and will encourage contribution to open source projects in the future.