I bet you didn’t see that coming!
I think it’s sometimes a good idea to conduct a thorough hard-hitting interview with yourself about a subject to fully explore said subject. There now follows an interview between you (U*) and me (I), where I pose and answer the questions I think you might ask of me, and I’m not going to hold anything back…
U: So, FogBugz On Demand is public, is there any likely-hood of a CaseDetective On Demand then?
I: Yep. CaseDetective On Demand is being developed as we speak, well not at this very moment as IMiJ Software’s sole developer is all tied up answering your inane questions … but it is being developed when I’ve got any time available.
U: Cool! Tell me more, what’s it developed in, I guess it’s not a REALbasic application then?
I: Your guess is right on the money, how clever of you! CaseDetective On Demand is being developed in Adobe Flex for that Rich Internet Application (RIA) experience. In fact, it’s not just CaseDetective On Demand that’s being developed in Adobe Flex, CaseDetective 2.0 is too.
U: Eh, CaseDetective 2.0 for FogBugz is being developed in Adobe Flex, how’s that going to work, I thought Flex ran in Flash?
I: Adobe Interactive Runtime, AIR for short. I can use pretty much the same code base for both CaseDetective 2.0 and CaseDetective On Demand.
U: Now that really is cool! If CaseDetective On Demand and CaseDetective 2.0 are being developed in the same technology, from pretty much the same code base, are they going to offer the same features?
I: Almost, but not quite. As it stands, I’m thinking of making CaseDetective On Demand a free taster of what’s in the installable CaseDetective 2.0.
U: So what’s going to be different then?
I: Nothing’s set in stone just yet, it’s very early days so things are very very likely to change as development progresses, but this is how I see things panning out…
CaseDetective On Demand will look almost identical, but obviously will be running in your web browser rather than on your desktop.
CaseDetective On Demand won’t be caching data like CaseDetective 2.0 probably will†, it’ll grab “live” data from FogBugz when ever a selection changes. If it’s being run online, then you’ve got to have an internet connection anyway, right?
CaseDetective On Demand is unlikely to have all the report outputs of CaseDetective 2.0, these will be reserved for CaseDetective 2.0 as an incentive to download, but you will probably be able to get a good idea of what would be printed or extracted from CaseDetective 2.0, you just won’t be able to actually save it out.
U: Will CaseDetective 2.0 work with both an installed version of FogBugz and FogBugz On Demand?
I: Yep. In fact, if the installed version of FogBugz has it’s API URL available to be called from the internet, then CaseDetective On Demand will work with that too.
U: What if people find CaseDetective On Demand to their liking, and want it to become a fully featured application that they can access from any modern web browser?
I: If there is enough interest, then we’ll just have to see about making it so.
Plan A was to make CaseDetective On Demand a fully working online application, with a small subscription charge per month per FogBugz user id used (with the first one being free). But by plan X things had settled down to CaseDetective On Demand being a great way to get a taster of the full CaseDetective 2.0. Who’s to say that in the future plan Z doesn’t loop right back to something similar to plan A?
U: I’m sure you can call web services such as the FogBugz API from within a REALbasic developed application, why are you jumping from REALbasic to Adobe Flex/AIR for CaseDetective 2.0, surely development time would be less if you stuck with REALbasic?
I: You’re probably right, if I stuck with REALbasic as my development platform for CaseDetective 2.0 I’ll probably be finished a bit quicker than I expect to be with a complete re-write to Adobe Flex/AIR.
The thing is, if I stick with REALbasic I’ll probably not be able to offer CaseDetective On Demand, I simply don’t have the time to be able to develop a brand new application of this scale for the web, and make the extensive updates necessary to CaseDetective for FogBugz 6.0. By developing in Flex/AIR I’m killing two birds with one stone, as the rather ugly saying goes.
U: Ugh, yes that really is an ugly saying, thanks for that! I’m still not completely sold though, why not forget about CaseDetective On Demand and just update CaseDetective for the FogBugz 6.0 changes?
I: OK, you want the real reason? The huge improvements to FogBugz 6.0 scare the life out of me!
One of the most sort after updates to FogBugz for quite some time has been the beefing up of the filters, making them much more flexible, with many more options. The rumour is that FB6 will have some seriously improved filtering and searching capabilities, just the thought of having to develop the changes needed to duplicate this functionality with direct queries to the database scares me rotten. And there’s a lot more coming in FB6 than just filter and search improvements.
With that in mind, and the fact that the FogBugz has an API that can be called as a web service which includes such things as a list of filters, and retrieving case details for those filters, there is nothing for it but to switch to using the API. And if I want to support FogBugz On Demand, it is absolutely necessary as there is no access to the database.
U: But you’ve pretty much said all that already, surely that’s not the real reason?
I: Switching to the FogBugz API is a big job, and although REALbasic has good web service features, other technologies do it better, Adobe Flex being one of them. When I first heard about AIR (called Apollo at the time) my interest in Flex was piqued even more.
When I took a long hard look at Adobe Flex 2, I saw lots of stuff I really liked. It’s got a very nice IDE (Flex Builder, based on Eclipse), MXML is very flexible and quick to work with, ActionScript 3.0 is familiar without even having seen any before (it’s very ECMAScript compliant), and the optional chart components are fabulous.
It’s those chart components that finally tipped the balance. The charts functionality introduced in CaseDetective 1.1 has been a big success, but they are very basic, and frankly not as good looking or feature full as I would like. It would take me a humongous amount of work to improve the current charts, in fact they would most likely have to be re-written from scratch as at present they are a third party component that hasn’t seen much improvement of late. Flex’s charts are really good looking, easy to work with, and have many options for extension.
And besides, I’m still looking for a development platform that I can take forward and start consulting with when Informix 4GL finally dries up. Flex is much much more exciting to work with than Informix 4GL, and has a much bigger job market than REALbasic even at such an early stage in it’s own development, so I’m hoping I’ll be able to get some serious experience in Adobe Flex with this project and a couple of other projects I have in mind to show off to prospective clients or employers.
U: Ah-ha! Now the truth be told! You’re developing CaseDetective 2.0 and CaseDetective On Demand in the technology you’re looking to use for making a real living at for the next few years!
I: That is the truth m’lord. As much as I’d like to think CaseDetective could pay the the mortgage, it’s a long way off from it at the moment, I mean light years away at present.
U: What about backwards compatibility, will CaseDetective 2.0 work with FogBugz 4 and 5 as CaseDetective 1.3 does now.
I: Unlikely.
U: That sucks.
I: Yeah, I know. FB5 will be partially supported as there is a version of the FogBugz API available that can be downloaded and installed already, in fact the skeleton of CaseDetective On Demand has been developed so far using that existing FB5 API. But it’s very light weight, hardly any data is available.
From what I can tell, most FogBugz users upgrade within a few months of a major upgrade being available, so I can’t imagine there’ll be a lot of new customers wanting to use CaseDetective with FogBugz 4 or 5 in the not too distant future anyway.
I expect FogBugz 6.0 will be available quite a bit before I’ll be able to get CaseDetective 2.0 developed and out anyway, so I don’t think backwards compatibility is going to be a major issue, it might be the case that CaseDetective users upgrade their FogBugz install to v6 and then start contacting me about when CaseDetective will support it! I’m more worried about that.
U: Hmmm, that is tricky, how long of a delay are we looking at before you’ll get CaseDetective 2.0 out the door with support for FogBugz 6.0?
I: I really can’t say at the moment. Life is pretty darn busy, I’m in a full time contract for a few more weeks, with an extension being offered for a few more months, and I want to spend some time with my wife and baby daughter now and then, so development time is pretty scarce.
With some feature prioritisation, missing out the least used features for now, concentrating on the core of CaseDetective’s being, I might be able to get something out by the end of the year, but it’s more likely to be early next year.
U: Wow, that’s quite some time away until release, sorry to hear that.
I: Me too.
U: Is there any good news for existing customers?
I: Well yeah, of course!
I’m confident CaseDetective 2.0 will be a much nicer experience for the user, Flex/Flash/AIR has some usability features that can make an application much more enjoyable to use.
Those new charts should look great, and those much requested pie charts will finally be available.
CaseDetective 1.x will still be around, supporting FB4 and FB5 for a while. Although all development efforts are aimed at CaseDetective 2.0 just now, any show stopper bugs in CaseDetective 1.3 will be squished where necessary.
And CaseDetective 2.0 will be a free upgrade to existing users of CaseDetective 1.x.
U: CaseDetective 2.0 a free upgrade to existing users, that’s a nice gesture.
I: It’s the least I can do, considering the delay and what not.
U: Well, thanks for such a candid warts ‘n’ all interview, your time is very much appreciated.
I: You’re welcome, thanks for giving me the opportunity to talk to you, I enjoyed it‡.
Were my questions and answers simply not good enough, do you have some proper questions for me? Then please post your questions in the comments for this post.
* I was going to use Y, but I simply couldn’t cope with Y-I, “pet” kept popping into my mind.
† Caching of data on the desktop may not make it into CaseDetective 2.0, it may have to come a little later. I want to make CaseDetective a lot lighter than it has been, this may take considerable work.
‡ In fact, I enjoyed it so much I might just be doing this kind of thing at lot more often!