Based on my past experience with user interface development for a P2P client (remember ShareDaemon?), I estimated Hydranode user interface development time to three months. Some persons close to the project's development indicated that it should be possible to do it in two months, and three months is too much, but I stand by my original assessment. Last 20 month of development has proved that my working speed is around +3000 lines of code/month (note: that's additional code, all maintenance coding doesn't show up in the +lines/month rating really). Considering that ShareDaemon interface was ~15'000 lines of code, for Hydranode user interface I've chosen more advanced toolkit which reduces both development time and code size, I estimated the initial code size of Hydranode interface <8'000 lines of code, which equals under three months of development.
Today, after roughly a month of development, we'r looking at 2506 lines of c++ code plus 3333 lines of layout XML, plus quite a lot of work on core-side and protocol-side. With this data, I was able to prognoze and set next ten month's development timeline in place, and will present it as it is currently planned.
- March 2006 - user interface closed testing and feedback integration
- April 2006 - user interface public testing and feedback integration
- April 30th, 2006 - Hydranode 0.3.0 launch with user interface and new website
- May 2006 - Vacation for me; designer will be designing first skin for user interface
- June-August 2006 - Integration of user feedback into the user interface; skinning engine and initial skin for user interface; Kademlia network support
- September 5th, 2006 - Hydranode 0.4.0 launch with skinning engine and Kademlia
- October-December 2006 - Gnutella plugin development; maintenance and bugfixing for existing codebase (at this point exceeding 100'000 lines of code already)
- Christmas 2006 - Hydranode 0.5.0 launch with Gnutella plugin and new website
As you can see, we're scheduling roughly four-month development cycles between releases, and all major releases include some major features. You can also notice that I increased my vacation time (twice a year) from two weeks to full month - it has become apparent that two week vacation every six months just doesn't cut it, and considering that I work without weekends or public holidays, I believe it's justified to take two months a year off. Furthermore, some time off the project is required to keep the project floating financially, as well as to give me some perspective on the project as a whole - you can't do the latter when you're deep in development mode.
Gnutella plugin was chosen as the next major network component (besides Kademlia, which is merely support component) since it gives something that Hydranode lacks at this point in time - fast single small file downloads - neither eDonkey2000 nor Bittorrent provide that.
The release dates (beginning of September and Christmas) were also chosen for publicity reasons - people return from summer vacations at the beginning of September, and Christmas is also a very good time for a release.
Note: Actual release dates for 0.3 and 0.4 may vary slightly depending on different factors - to either earlier nor later; they are provided in this timeline as general guidelines, rather than hard requirements.
Madcat.