Agile SCM – Review of 2007 and Predictions for 2008, written by Brad Appleton, Robert Cowham and Steve Berczuk. An interesting read.

Installable vs. Hosted

January 8, 2008

This 37signals’ post started a long thread of interesting comments Ask 37signals: Installable software? Quite insightful opinions although mostly leaning towards the hosted SaaS approach.

It would be highly unlikely that we’d sell installable software. This question is actually more about business than it is about software. 

  • We’d be a different company
  • Hosted = Controlled development and deployment environment
  • Installable = Lots of room for things to go wrong
  • Backward compatibility headaches
  • Upgrade cycles

And then also this interesting follow up  Installable vs. Hosted , by Kevin Dangoor, in defense of installable software.

However, I think for a many apps, quite a few potential customers will be left behind by only offering a hosted version.

I’ve seen a number of products start off with one approach and then add the other. I can name two off the top of my head that started off installable and added a hosted option.

Our experience is quite opposite, we have started with a hosted version and later added an installable one. We distribute a free open source version of our product so if you study and de-bug our code it is fine with us, that only helps us make it better 🙂

The SaaS model was a good start, it helped us to mature our product and test the market. It is a significant part of our offering. One of the main reasons though vendor companies choose SaaS model is because it is easier for them. You do not have to worry about all those bullets expressed by 37signals. Is it always a good model for your customer? Not always, if you start paying more attention to your data security and privacy.

Our SaaS/OnDemand version offers a number of free services and we do not lock-in your data (you can always take it and move to your own server). And still, we see that more users prefer to download our open source version and install it on their premises (even though it takes some of their precious time). I bet the data security (in our case we are talking about release/project/feature plans) and in some cases compliance with Sarbanes-Oxley Act plays significant role in their decision making process. We are not Google or Salesforce so we did not expect that everyone would trust us with their critical business and customer related data so we went for an installable version too. And it has been quite rewarding: more users, more useful feedback, our code improved significantly, even the article in O3 magazine.

Our software is riding on UAMP (Unix,Apache,MySQL,PHP) stack which makes it easier to produce the installable version of our product. The release and testing process actually makes our SaaS solution ( much more robust. It was quite a challenge and alot of work to create a proper development infrastructure and to start producing the installable version but now after over a year of releasing it I should say it is not that hard anymore.

There are many advantages for a vendor to use SaaS model but here are a few that I personally like in the installable open source software model too:

  • More potential customers who otherwise would be concerned with SaaS
  • We are not responsible for the security and privacy of customer servers/data
  • You can test at a few selected beta-sites before rolling out new version to everyone
  • Our users help us make our software much better by seeing our code

We really like our SaaS model too. Would the trust/security/privacy issue be easily solvable this would be just enough, I think. But at the moment the combination of hosted and installable makes alot of sense to us. Appliance is a good model too, unfortunately we have not reached that stage yet. A good example is SugarCRM which offers all three models!


Here is an interesting post by Christina Noren, Automating and opening up product planning. Yet another example of a team trying to hack and integrate a few existing tools to build a useful product management flow. The problem I have been describing in my earlier post, Think bigger, Think Agile Product Management. Seems like many teams face the same inconvenience and some new, more integrated tools could help.

So the experiment: We’re hacking Jira, our bug tracking system, in order to automate the entire product planning and marketing process and facilitate real-time communication back to customers, internal stakeholders and even the community at large via our public roadmap. 

This means that we setting it up to automatically bring enhancement requests from our SugarCRM system into a PM work queue within Jira; asking PMs to enter call reports and market datapoints; linking all of these to problem statements;

What I especially like about this post is that it confirms our efforts with our project Yoxel Systems. Yoxel is exactly that integrated system: request tracking, release planning/tracking, key CRM capabilities, and even customer portals! And if you really like your Jira, Bugzilla, Mantis, GNATS, Yoxel can connect to them too.

Customers with enhancement requests tracked through the support portal will be able to see how they’ve been triaged, how the problem has been interpreted, and what requirements are at what stage of delivery to meet the request.The public roadmap will be maintained in real time, with the potential for drilldown into more of what’s behind each listed feature. 

Once again, Bridging the worlds of PLM and CRM  seems to be creating value and helping you build better products.

Check out our demo accounts as

 Yoxel v1.18 is available for download with a significant extension to YOXEL SLS (for sales) suite: License Management System. You may ask, “Why YOXEL SLS?” – when the focus of the project is agile product management. The reason is that our active users encourage us more and more to link into CRM world and as I wrote before this seems to make alot of sense: Bridging the worlds of PLM and CRM

So what is this License Management System?

Think of it as of yet another flavor of Yoxel request tracker. The requests ask to cut a license (produce a license file) for a customer, deliver it to the customer, and confirm that it is installed successfully. That is what your customers and eventually your sales people request internally from your R&D, Support, or IT team (whichever is in charge of your license cutting process), and if you have many customers and many such requests you’d better keep it all organized. So there is a certain workflow for the requests (customization is of cause possible), and here are the main states of the default workflow:

  • State ‘open’ – a sales guy files a request. At this point the sales can help by specifying required details: license server platform, hostid, list of individual feature keys and their parameters (#keys, expiration dates, …).
  • State ‘assigned’ – the request gets automatically assigned to a technical owner of the account (your support or sales engineer). This person will cut the license himself or work with other department to get the right license file.
  • State ‘generating license’ – the technical owner is working on generating the license. He will generate the license file externally and then attach it to the request. We have also provisioned a feature-set construction panel and hooks for running external license-generators (require some customization work) so that license cutting itself could be done from Yoxel too. So the owner simply constructs the feature set from available keys and then presses button ‘save’ – the license is generated and the file is attached to the request.
  • State ‘license ready’ – the license is ready so it can now be sent to the customer
  • State ‘verified’ – the customer has confirmed that the license has been installed and is working.
  • State ‘closed’ -the request has been complete!

Purchase Order Tracking?

In many cases each license request is a result of a purchase order (PO) that has come in from a customer. This means that the a $$ amount could be associated with each request too. We have provisioned a field (booking) for that but in this 1st version of the LMS we would like to stick to the technical side of the license tracking and generation mostly. Your feedback on the PO part would be very appreciated.

Feature set construction

Besides pure tracking capability of the LMS another key part of the system is license key management. License files are usually constructed as a set of individual keys, each enabling a certain product or feature. People that use Macrovision’s FlexLM are very familiar with the concept of Time Based Licenses (TBL) and license files that are sets of those feature keys. So the LMS allows you to define all your available keys, their descriptions, and their fee information. Then at a license submission stage or license generation stage one can easily construct/modify a set of required keys and use that for license file generation.

Once-off, TBL, and billing/maintenance fees

There are many different software licensing schemes: charge once per installation, bill periodically as long as the product is in use, get a payment ahead of time for a license that will expire (TBL), … We have tried to accommodate a few popular strategies. You can associate all this fee related information with any key that you define. Then when a feature set is constructed, that is when you specify a desired list of keys, #keys, expiration dates the LMS computes for you final once-off amount, pre-payment TBL amount, billing/maintenance amount. This is meant to be used as a worksheet mostly, to have a good idea of what kind of fees your license file is entailing. The actual booking amount entered for a request is up to the sales person (ideally it is the once-off fee + the TBL sub-total). The worksheet also informs you of planned billing schedule.

Check it out

So the 1st version of LMS is available for you to try at our demo accounts at and for download. I am sure it is not perfect yet and requires quite a few useful features to be added, we have some interesting ideas and will be enhancing the system in the next releases.


To see what else is new in v1.18 please visit our news section at and explore our demo accounts.


Release v1.17 ( has a bunch of new capabilities and I am quite excited to list a few of them here:

  1. YOXEL SLS (an experimental suite for sales teams), that has been only available in our on-demand version, is now included in the open source version. You get two subsystems: sales forecast tracking and product evaluations tracking. Many other CRM products have forecast/opportunity tracking solutions but you will not see many good product evaluations tracking solutions. We would like to think that ours are quite unique and powerful, plus they become integral part of the whole product management solution:

    Bridging the worlds of PLM and CRM

  2. Profile editing capabilities added for customer/contact logins. Besides entering contacts information only on your side (correct name/email/password/opt-out options/…), the traditional CRM way, you can now rely to some degree on the contact itself. Certain fields have been opened for your contacts, that have login access privileges, for editing. This kind of makes it CRM 2.0 – more interactive relationship with your customers and better feedback management :).
  3. CVS and basic Subversion integration is enabled though email comments support. Besides capturing email responses related to requests and attaching them to the request history/log, Yoxel in a similar way now can attach your commit messages coming from CVS or Subversion.
  4. Responding to a request from one of our users, support for Retrospectiva external bug-tracker has been added too. Now it is possible to configure Yoxel to import requests from one of these bug-trackers: Bugzilla, GNATS, Mantis, Retrospectiva. For a smooth transition to “agile”!
  5. … other more specific capabilities and bug fixes …


PS: And please send us your feedback.

This quote, that has been around for a while, is quite funny:

“BSD is what you get when a bunch of Unix hackers sit down to try to port a Unix system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a Unix system for the PC.”

Yoxel v1.16 in the news!

August 22, 2007

This is the first time our project got some coverage in press. And it is a very pleasant surprise because I had no idea the article was coming out in O3 magazine (Issue #7):

Issue #7: Agile Product Management

John Buswell, the author of the article, contacted me yesterday, just a few hours before the press release with some last minute questions. The bonus for me was to find out that his company had been using Yoxel for 6 months now and was quite happy with it.

John, your article made my day! I could not hope for a better review of our products coming from an unknown and hence objective user. I also learnt quite a bit about our own products from your article, like for example why our approach is so unique and different 🙂 – “highly business and customer focused”. I was trying to express this in my blog but I believe you did this much better with your article.


For those who had a chance to read the article I wanted to add a few comments here, a few clarifications.

1. When John is talking about the release/iteration planning process in YOXEL SW

In the planning stage, tasks (or requests as they are called in Yoxel) are added to the plan. The requests are assigned to a particular component of the project. Each request is then classified as either an enhancement to existing code , or a completely new development. … Once this is done, you can later go in and add the details to each step.

he describes a quick way of creating a list of tasks with brand new requests. I would like to add that the release planner also is linked to your backlog (requests and bugs you have filed before) and you can easily include any of those into the list too. There are buttons [add existing request] and [add request by number]. You can include bugs into your plan this way too.

2. Regarding the estimates:

The estimate tab generates time estimates based on all the data entered for a particular release .

Essentially all your developers and testers enter their estimates for the tasks in your list/plan and the planner uses these to estimate the project end date and suggest more balanced resource allocation.

3. About the common approach:

YOXEL IT is very similar to YOXEL SW . In fact the ticketing system is practically identical to the request system used for Yoxel SW , and the IT project system is pretty much the same as the Yoxel SW release management.

This is very true. The heart of Yoxel is a scalable and parametrized workflow and request tracking engine. It takes little effort to create yet another tracking system (software, IT, sales, evaluations, KB, …). The base code (the RequestTracker class) is always the same and sure the UI looks somewhat similar for all the trackers.

4. About YOXEL KB

The knowledge base only applies to the software module.

Actually all menus in Yoxel portal are customizable so one can easily add the KB tab under IT section/module and add categories related to IT too. You may find files that control all the menus under individual sub-directories, although at the moment we have not yet documented them.

5. John had a good tip on securing Yoxel /includes directory.

Depending on your Apache configuration, you will probably have to secure up some of the directories within the Yoxel package . In particular, you will want to secure up the includes, not only with file system permissions , but also in the apache configuration.

I would actually recommend securing all .inc files, not just the /includes dir. A few of those (like and are spread out in other directories:

<Files *.inc>
Order allow,deny
Deny from all
Satisfy All

6. MySQL:

The database is called local_yoxe ldb2. You will need to create this with MySQL: create database local_ yoxeldb2;

Actually you do not have to worry about this. The first time you connect to Yoxel portal it creates the database automatically.


I think this is all I wanted to add. Other John’s tips are quite useful, I will incorporate them into our README (installation instructions) file.


PS: And by the way, Yoxel v1.16 was released on Aug 17 with more enhancements to our dashboards engine. Please, come check it out in our demo account at