When starting a new project, I find it important to create an infrastructure first. I avoid the term “framework”, because I think it is used too extensively.
Preparation is everything, this includes proper research. Before I actually started the project, I implemented the UML 2 metamodel core to get a feel. I also wrote a prototype for graphical editing to make sure my skills are up to the task.
After the kickoff, I had asked myself how I would plan the releases. While working actively on the Z-machine preservation project, I had a release every two or three weeks, which worked pretty well, as it kept me focused on the goal and forced me to define feature sets that I could implement in the short periods. I’ll try to adopt this for TinyUML as well and see how it will work out.
Two weeks after the kickoff, I am pretty close to my first source code checkin and preliminary release code-named “Gogo” (see roadmap). I decided to name the releases after characters from the Final Fantasy series. The first three releases will have the purpose to stabilize the project structure and design rather than rushing a lot of features out and introducing a ton of bugs. These three initial releases probably won’t do anything useful to anyone but me, so they will not carry a version number. The “Gogo” release actually will include much more than I expected, a working drawing and event system, an initial user interface and even an SVG export via Batik.
Still some way to go to a “Dog Food” release though, the “Quina” release, which is planned in six weeks will try to deliver something that I can probably start to “work” with. Well, one who played Final Fantasy IX before knows, that “Quina” eats about everything….