Just exactly on schedule, I TinyUML has now reached the “Quina” milestone. The goals were to finalize a persistence model and to add more connection types. This is the last “conceptual” milestone, since “Quina” was intended to be the first “dogfood” release for myself. It is also the release where I planned to review the progress so far.
As opposed to my earlier plan, I wiggled myself out of the temptation to create a custom file format and use serialization instead. The downside is that the files are not compatible between releases for now. The advantage is that I can focus on the application instead of half-baking something. Opting for serialization already paid off, because I had to conciously review the design. There is also the possibility to integrate XStream to make the file format more robust to changes.
Creation of elements is now refactored to employ the Prototype pattern. It works very well now. Overall, I feel that with the better understanding, the design becomes tighter on every release cycle.
According to my roadmap, I’ll be due for the next release in exactly one week. I have to push that a few days to the back, because I need a short break. I’ll use the time to do a post-mortem on the concept phase.
Looking back, it is now six weeks since I started the project. Could I have progressed faster ? Definitely. Everyone can. I could probably have done it three times faster, but would have ended up with the need to rewrite the whole system at some point (and probably giving up in doing so). It is nice to see how a system changes over time and directly reflects the understanding.