The Journal 5 Post-Mortem
I launched Project Vee/The Journal 5 in September 2007. This was to be the first major version upgrade of The Journal since The Journal 4 was released in November 2004.
Unlike some past major version upgrades, The Journal 5 wouldn’t be a ground-up re-design or re-write. Tthere would be a lot of changes to core components, of course. And while I would retain the main features of The Journal that had accumulated in 11 years (at the time), I would be (in some cases finally) adding some new features and functionality that I considered crucial to the future. For example, thorough Unicode support, a new client-server-capable database, stuff like that. What I consider strategic features. Plus, I had my eye on some cool new functionality to make The Journal even easier to use.
I think I achieved most of that.
Back when I started, I expected to release The Journal 5 in 2008. That’s not what happened.
What Went Right
1. I achieved most of the “strategic features” originally planned.
The Journal 5 on its release included most of the strategic features I had planned:
- New, modern Delphi development environment.
- New client-server-capable database (in case I decide to go client-server at some point) with built-in support for Unicode.
- Nearly 100% Unicode (UC2) support throughout the software.
- A foundation laid for localizing the user interface.
- Lots of streamlining and enhancement of internal data structures and processes, which allowed for some cool new flexibility in handling entries, categories and even Journal Volumes.
- New, modern user interface.
Of course, there were some grand plans that didn’t make it. Full localization support, for example. I laid a good foundation for it, but I decided to push localizing the user interface off until after the initial release. The software was in too much flux, even through testing, to try to translate it as I was developing it. However, I’ve just now begun to take advantage of what I did, and I look forward to having the user interface fully localized for a number of languages in the next few months.
2. I improved The Journal.
Even if I have to say so myself, I took a working, full-featured application, and I made it even better. Significantly better. I even drastically changed how the software looks. And yet, somehow, it still *feels* like The Journal.
I credit that to my development process. I started with low-level pieces, improved them (sometimes totally redesigned them), and then spent (a lot of) time making the new code support the old functionality that the rest of the code still expected. By focusing on one sub-system at a time, I kept The Journal largely intact throughout the process, always building it back to what it had been.
3. I finished it.
I may have taken a lot longer than I expected (as I’ll discuss in more detail shortly), but at least I got it out the door.
What Went A Bit Less Than “Right”
1. 2 years? Really? 2 YEARS?
Only about 18 man-months of full-time development, I figure, but still, from the beginning of September 2007 to the end of August 2009 is, yes, 2 years.
And there I was, at the beginning, naively expecting to be done in 2008. In testing by summer 2008 at the latest.
What happened?
I think I fell prey to one of the classic blunders. The most popular of which is: “Never get into a land war in Asia.” But only slightly less well known is: “Never accept project completion estimates from a programmer when nothing is on the line.”
There was no hard deadline. And, really, no hard new feature list.
I went into the project with rather open-ended goals, and I got rather open-ended development.
Should’ve seen that coming.
2. I didn’t manage user testing as well as I should have.
I was too haphazard in my approach to user testing.
Next time:
- I want to start user testing earlier in the development process–instead of after a year and a half.
- I want a centralized bug reporting mechanism that testers can use and see what other testers have reported and what’s been fixed.
- I want a public beta period. I’ve done this in the past with The Journal, releasing a beta version for public consumption to gather a wider spectrum of feedback. This time, though, I kept the test group kinda small. Probably too small.
- I want a mechanism to force users to not start using the test version “live”–until I think it’s a good idea.
3. I’m just one guy.
I think the main reason The Journal 5 took so long to develop and release is that I’m just one guy.
I do as much as I can to “outsource” as much as I can. I’ve purchased libraries and tools from all over the world (Russia, Germany, Panama and more; even the USA sometimes) because there’s no way I could personally design and build everything I need for even such a narrowly defined niche product like The Journal.
Just to mention it, though, when I did a full build of that narrowly defined niche product yesterday, it compiled over 999,000 lines of code. And that’s only the fraction of the whole, the libraries and components that I have the source code for (including the quarter-million or more lines of code that I wrote myself). Further, that’s just the program itself, and doesn’t consider all the other services I use to put The Journal together and offer it for sale, like the Web page, payment processing, CD fulfillment, help file creation, customer support, and so on.
There is a limit to what one person can achieve, even someone who leverages third parties and automation as much as he can. I wonder sometimes if I’m not beginning to get close to that limit.
On the other hand, I still see a lot of potential. I’m not stretched too thin yet.
Conclusion
Even though I’m writing this port-mortem of The Journal 5, that doesn’t mean I’m finished with The Journal 5. Like I mentioned before, I’m working to localize it now. After that, I have some ideas for new features that I want to pursue.
I continued to update The Journal 4 from its initial release in November 2004 through February 2008. I expect a similar run with The Journal 5.
One of my goals for The Journal 5 was to create a new foundation to build on. I think I achieved that. I’m looking forward to seeing what develops in the future.
-David


