Monday 6 January 2014

Are we being used?

One of the questions that haunts many open source projects is "How much is the thing we're developing really being used?" For commercial software, it's an easy question to answer, you can count the licenses. It's indirect of course - you don't know that someone who owns a license is actually using the system - but it is accurate enough for most especially as it generally relates to income!

For us at OpenUnderwriter, the download count is the most obvious stat to look at. Right from the beginning, we saw many more downloads than we imagined we would. Having always considered enterprise insurance software to be reasonably niche when compared to most types of software.

However, our total download count currently stands at 16,428.

Given that typical OpenUnderwriter distribution is around 210Mb, even downloading it shows some level of commitment ;)

But what does that number mean. Are there 16,428 instances of OpenUnderwriter running in the world? Well, I'm an optimist by nature but that’s a stretch even for me, the truth is that we don’t know. That isn't because we're lax in keeping records or disinterested, it is simply the nature of the way that we do open source development.

We don’t insist that users contact us to get a license key, we don’t ask them to registering their interest in the system or even give us a “like” or a rating or a review. And if the system works for them, and they have no questions, there is no reason for them to post on our forum.

The most common way to gather usage stats these days is via services like google analytics. We started gathering stats related to OpenUnderwriter usage in 2010. This is far from being a complete picture too of course. Users are free to disable it if they wish, and it will only work from environments that have the necessary internet access, but it gives us some feedback.

So, what does Google Analytics tells us? Well, we know that OpenUnderwriter (and OpenQuote before it) has been installed in 28 countries, and used from 146 countries. Interestingly, the heaviest users have been in Guatemala and Bulgaria, followed by the UK, Mexico and the US. We can also see that it has been installed on at least 127 different servers.

The actual number are likely to be much higher as most users will have disabled analytics well before going live with the system. Others will be running it internally with no external access.


Ultimately though, the numbers do show that there is plenty of interest in OpenUnderwriter. Certainly enough for us to be committed to its future.

Naturally, if you do "like" us on facebook or sourceforge, or follow us on linkedin, google+ or twitter, we will very much appreciate it!

Sunday 22 December 2013

OpenQuote becomes OpenUnderwriter


There has been something of a hiatus in OpenQuote 2.0 development lately, but the break has allowed us extend the scope of OpenQuote which is something we're very excited about. In fact the scope has been extended to the point where the name "OpenQuote" is now simply too restrictive. So we've renamed the whole project.

The new name is OpenUnderwriter.

OpenQuote still exists, but it is now a component application within OpenUnderwriter. Along with the other component applications: OpenActuary, OpenPolicy and OpenClaim.

Extending the project to cover areas outside of quotation is something that we have been working towards for sometime. OpenQuote focuses on new business and whilst it's functionality could support other areas (quoting for new business is not so dissimilar from quoting for mid term adjustments or renewals for example) the support has never been built out. We now have the project structure in place to do this.

So, what kept us busy during the hiatus? The Ghanaian Insurance Industry Database project. Our website has the full story, but essentially this project allowed us to add an actuarial facility to OpenUnderwriter. The project has now been delivered into pilot and is viewed by all those involved as a complete success. From our perspective as well as being a technically interesting project and one that allowed us to work closely with a very talented and committed team in Ghana, it was also a good demonstration of the benefits of open source.

As a result of the project, OpenActuary has been developed. It is covered by our normal GPL license and can be downloaded and used by anyone who is interested in it's features.

So now the team is focused on 2.0, what is now known as OpenUnderwriter 2.0. Right now that work is concentrated on upgrading the platform from Liferay 6.1.1 to the latest release: 6.2.0. Most importantly for us Liferay's support for WebDAV is much improved in 6.2.0. That had been something of a blocker for us and had lead to a set of lengthy and rather painful work arounds being necessary in order to make product development possible at all. Under 6.2.0 the process is a lot (and I mean an awful lot!) smoother.




Sunday 30 June 2013

EA3. Now available in a shop near you

A fortnight has passed since the last release, so it was high time to get another release out with the latest set of fixes and enhancements. The EA3 release includes two big enhancements along with a collection of smaller fixes. The two big things are the addition of support for multiple PageFlow types and a much enhanced sandpit portlet.

Multiple PageFlow types

The support for multiple PageFlow types is actually among the biggest changes that we've seen to OpenQuote's functionality in quite a while - most of the changes in 2.0 so far have been about the new platform, but this is a real functional improvement.

When 2.0 is complete it will support Mid Term Adjustments (MTAs), Renewals, Cancellations, etc. in addition to the new business quotation that OpenQuote has always supported. Key to getting this to work is the ability of a product to support more than one PageFlow and that's exactly what EA3 includes.

Depending on how you want your product to work, it may be that its MTA quotation PageFlow and renewal PageFlow are very similar to its new business quotation - just with answers pre-populated with the answers given during the original quotation; or it may be that these PageFlows are very different. In all likelihood though there will be at least a few differences, this is where PageFlow inheritance comes into its own.

You can define the Renewal PageFlow, for example, to be the same as the new business one but with just one or two differences. There are still some new services to be added, but this step forward on its would have seemed to be worth making a new EA release, but there are the sandpit updates too...

Sandpit

The sandpit was overdue some attention. Its the place where product developers spend their time when they are developing and testing products, and the UI was rather basic in 1.4. Since the move to the 2.0 platform it had also taken on a couple of new and rather annoying bugs. A couple of screen shots:

A page form the IrishBrokerPI product viewed from the sandpit.

The all-new XML view. 

I'm very happy with the new XML view. Under 1.4 this was just a textarea, which doesn't offer a lot of help when editing XML. For 2.0 we're now using codemirror which does an excellent job of syntax highlighting even on the fly as you type.

WebDAV & Windows 7

This has to be the frustrating topic in the OpenQuote team this week. Product development in OpenQuote 2.0 relies heavily on WebDAV. Essentially, the product structure in CMS is exported to a file system on your machine where tools like Eclipse/Netbeans/IntelliJ/Notepad/Emacs/Vi (or practically any editor you like) can be used to edit products. 

Personally I use a Mac for all of my development work and, I'm not gonna make a big thing about it but, on a Mac WebDAV just works. On Windows 7 however it's a different story. We have had an inordinate amount of trouble! The internet is awash with comments and suggestions, but nothing seems very robust, practical or authoritative. The only option that we do have working is enabling digest authentication - which feels like something of a cop-out. 

There'll be more on this is a later post I'm sure!

Sunday 9 June 2013

Hot on the heels of 2.0EA1 comes...

Well, you probably guessed it: EA2. It's just under a month since EA1 was release and the number of changes that fell into the "that's really quite useful" category had reached a critical mass. Also, naturally, being an open source project we always aim to "release early, release often".

One thing that didn't make it into this release which I was hoping would is support for multiple PageFlow types. Quite a bit of preparatory work as been done, like splitting the pageflow source into a separate module, but there is still some midnight oil to be burned on this one. Particularly in the area of how this works in the sandpit. EA3 looks achievable though, and it will bring a whole new dimension to the product capability.

Things that did make it in that are worthy of a mention are the enablement of SSL. This has pretty obvious benefits, but it was primarily done to allow Liferay's WebDAV to work on Windows platforms. There will be more fixes for WebDAV in future releases because we still have the fairly major restriction of not being able to create files directly via WebDAV alone.

The OpenQuote theme has had a little attention to tidy up the login page and the use of font size - which were having the effect of making the tool pages look a little "Fisher Price - My First Product Development Kit". A couple of gratuitous screen shots:




We also included a very useful fix which stops product Registry.xml's from being corrupted. A timing issue between the document library listener hook and the product reset service lead to a very great deal of confusion. An update to a Registry.xml would apparently save correctly and kick of the necessary product reset, but on checking it you'd see different results depending on the technique you used to down load it. Sometimes you'd get the old version, sometimes the new version but truncated to the length of the old one! Just proves that development of async services is all about... timing.

The rest of the detail about what is in the release can be found, as always, on the release page. And should you want to play with EA2 you can download it from sourceforge.

Saturday 11 May 2013

2.0EA1 is released!

Finally. It's been quite a long haul to get here, but I've just published the first early access release of OpenQuote 2.0 to source forge as a packaged, downloadable binary.

Download it from here: openquote-community-2.0EA1.zip

Some screenshots... just because I can:



The old adage that in software development the last 20% of progress takes 80% of the effort seems accurate. Since I last blogged, some new features have been added, and some others improved. The intention that 2.0 should effectively deliver the same feature set as 1.4, just on a totally new platform still holds more or less true, but in some cases the new platform made it considerably easier to do things in a very much more technically concise and more user friendly way than was possible in 1.4.

A good example of this is the way the configure system and it's caching mechanism deal with changes at runtime. In the world of 1.4 a product developer would frequently have to manually reset configurations and clear caches to get their latest product change picked up. In 2.0, thanks to a Liferay document library event hook, a bit of JMS magic and some enhancements to the configuration services, it should never be necessary for a user to think about reseting configurations or clearing caches - it will all happen automatically.

A big chunk of the that last 20% was about testing and getting the new Bamboo server working (thanks again to Atlassian for letting the project use their OnDemand service). Historically, OpenQuote's continuous integration build didn't run any tests at all. Obviously, this is not a good thing. In fact, it's rather shameful, and something that 2.0 had to address. Now the unit tests and integration tests are run during each build. The UI tests are still manual.

The move to OnDemand Bamboo was far more involved that expected. Elastic bamboo is a truly fantastic thing though. Bamboo controls the builds, but all of the actual build activity takes place on Amazon EC2 instances which are started/stopped automatically as needed. Getting elastic bamboo up and running wasn't too much of a problem, but some curious build errors that couldn't be reproduced anywhere but on the build server caused a prolonged head scratching episode.

It turned out that the errors were caused by a configuration difference in MySQL. But I only found this out moments before the men in white coats were scheduled to arrive with some new brightly coloured smarties for me to try. On MacOS and Windows, MySQL installs itself by default to use case insensitive queries. On other flavours of Unix (e.g. our elastic bamboo instances) it is case sensitive by default. Simple when you know it, obvious even. But I'd been down any number of dead ends before I discovered this little nugget.

So, 2.0EA1 is finally out of the door. EA2 will not be too far behind it. The priority now is to split PageFlows out and make them independent of the quotation process so that they can be used for other things - like MTAs and Renewals, but also things which aren't related to policies at all. We also need to work on the themes. The new OpenQuote theme (did I mention that?) works well and keeps screen clutter to an absolute minimum, but it doesn't make the quote screens themselves look very pretty and we need new themes for the demo products too.

Much to be done. No time for rest!

Thursday 14 February 2013

2.0EA1 - so close you can smell it

It's quite a while since I last blogged, but we're making swift progress towards the first Early Access (EA) release of OpenQuote 2.0. If the term EA doesn't mean anything to you, there is a page on the wiki that explains all.

So, since the last post, here's what we've been up to:

  • The configuration reset mechanism has been enhanced so that it a) happens automatically when the system is first started up, and; b) can be invoked via a web service. OpenQuote has always had some support for web services, but we're building that out to cover more services for 2.0. For the EA release this will include the ability to reset configurations and clear caches.
  • The 1.4 integration tests now all pass in 2.0. So we now have both unit tests and integration tests working. This just leaves the product tests, of which the widget showcase test is already passing. Most of the problems found by the integration test were related to class loading. The accessors and the factories do quite a bit of reflection and were, for the most part, picking up the wrong classloaders for use in JBoss 7.
  • The Quotation portlet is now working. This was a major step forward. The configuration of the portlet (i.e. the way in knows which product to quote for) has been much simplified. Rather than editing the portlet XML files as the product developers has to do in 1.4, you now simply switch the portlet to edit mode and select the product that you want from a drop down menu. Much simpler.
  • The Sandpit portlet is now working. This, again, was a major step forward. Though not as much work as it reuses the Quotation portlet. However, this now means that we're in a position to run all of the product tests.
What's left before we call it an EA? Well, we need the cache manager portlet to be working. Using the web service to do this is okay, but a bit painful for everyday use. The product catalog portlet also needs to be ported across from 1.4. These are both quite simple portlets, but I want to move them on from the current JSF implementations into the brave new world of GWT. There isn't a huge advantage to using GWT in such simple portlets, but we have more extensive places for GWT in future so it makes sense to cut our teeth on something simple first.

Thursday 10 January 2013

Long live OnDemand JIRA

The old OpenQuote JIRA is dead. Long live the OpenQuote JIRA.

I'd been putting off migrating our old JIRA to Atlassian's OneDemand service (which I blogged about a while ago). But now it is done, and it turned out to be a lot simpler than expected.

In principal migrating between instances of JIRA is easy. You simply use the admin functions to export content from one server, and the import it into another. If you have a complex setup there can be more to it, but our setup is simple so that should be all that's necessary. However, our old server was very old. We were running version 3 of JIRA and the OnDemand server is running version 5. You can't import version 3 format exports into version 5.

Thankfully, Atlassian provide very detailed docs on how upgrade between version. Very detailed and very copious docs which rather put me off. But a couple of days ago I found myself with a spare hour or two so I took a punt at it. And in that couple of hours the job was done.

All I needed to do was to create an export from the old server. Install a standalone JIRA 4.0 and import into it. Then immediately export again from that server. This gave me a version 4 export which imported without issues into the OnDemand system.

The URL remains the same: http://openquotecommunity.org/jira, it now redirects to OnDemand. All users have also been migrated. In fact even the site logo and look and feel customisations came across too. Can't be bad.