Cape Town managed to lose power for a few hours this afternoon in time for our company lunch and general meeting. Part of the general meeting was discussing KnowledgeTree version 3. As Brad put it, discussing document management is hardly something a normal person wants to spend their Friday afternoon doing in the heat (air conditioners require power), but that's why we have non-normal people like us. But Brad's great KT3 UI work is best understood with screenshots, and the projector requires power too.
Actually, perhaps it was a blessing in disguise. Brad really nailed a number of points about what KnowledgeTree 3 is about.
It's about making the user experience as painless as possible. It's about making the customisation of KnowledgeTree to make it suit your needs as painless as possible. It's about having as few extraneous items as possible. It's about having a tight and stable central core and being extensible. We're after clarity - only showing what's useful and making what's useful understandable.
I'm nowhere near as good a talker as Brad, so I stuck to a conservative format and topic by talking about the more specific features and changes in KnowledgeTree. I had (very hastily) prepared a presentation, which my colleagues never go to see, but which you can.
I'm very heartened by how the lines of code and number of files have steadily decreased per feature.
Since only about two months ago, we've added about 20 minor features, and some not so minor features - in particular the non-linear extensible and flexible workflow system, the overall plugin architecture, and the overhauled permissions system. In that two months, while we've added about six thousand lines of core library code, we've reduced the presentation-related code of the entire system by seven thousand, and reduced the number of files involved in presentation by eight. So in adding some pretty nice new features, we've had a net effect of reducing the lines of code involved in the system.
And this is prior to the final UI integration phase starting next week. That should reduce the number of files involved and lines of code in the presentation system by about a half, as we apply the treatment to the legacy code. I think in total the new UI system adds about four thousand lines of code, which still leaves us at half of the lines of code in presentation that we had two months ago.
In terms of library code, there's still quite a bit of opportunity to move stuff out of the core and into plugins. Probably in the region of four thousand lines of code. Around two thousand will be overcome by the new KT3 UI, and another two thousand or so from vestigial code of removed/replaced features. Result, tighter core code, more happiness, and ultimately world peace.
Anyway, if I've been quiet, now you know why. UI integration starting next week, first beta tentatively around the 25th.