Case Study: A Folk Tale called Axe Porridge and Free Out-of-the-Box Solutions

There is an Eastern European folk tale that is called Axe Porridge1. The story begins:

Once upon a time, an old soldier was returning home from the wars. He had been walking all day. He was tired and hungry. Night was drawing close. He needed a meal, and somewhere to spend the night. Soon he came to a little village. He knocked on the door of the first hut.

A little old woman opened the door.

‘What do you want?’ she asked him.

‘I am looking for a place to stay the night,’ replied the soldier.

‘Come in then,’ said the old woman. She opened the door wide, and stepped aside to let him enter.

The soldier entered the hut and set down his belongings in a corner.

‘I am hungry, ma’am,’ said the soldier. – ‘May I trouble you for something to eat?’

The old woman had plenty of food in the house. But she was mean and miserly and didn’t want to share. She pretended to be very poor and wept:

‘Oh poor old me! I have nothing in the house. I have eaten nothing myself all day!’

The soldier was a clever and observant man. He could see that the woman was not poor. He suspected she had plenty of food in the house. Noticing an axe lying in a corner, he said, ‘Well, then maybe I could make us some porridge out of that axe.’

Many times during my IT project practice I have been faced with clients that want to keep their costs down and think they can use an out-of-the-box solution. So they are enticed by a free open source solution or some low cost proprietary solution, such as WordPress or Drupal, with some functionality included. I’m not going to criticize such an approach because it’s pretty reasonable. But I have my thoughts and recommendations to improve that approach and to avoid making mistakes.

In the original Axe Porridge fairy tale the soldier washed the axe and put it in the pot. He filled the pot with water and put it on the fire, and waited for it to boil. When the pot began to steam, he dipped a spoon into the water and tasted it.

‘It will soon be ready,’ he said. ‘It’s delicious, but would have been better for a bit of salt. Too bad that you have no salt.’

‘Oh, I do have salt,’ said the old woman, quickly handing him some.

The soldier added the salt and tasted the water again.

‘Hmmm. Even better. Now if only I could add some oats to it. Too bad you don’t have any oats.’

Time by time the soldier ask the old woman to give him small amount of different foodstuffs and finally an excellent porridge was done.

There are several ideas that we can get from this fairy tale.

  • When the client has a limited budget, find a way during initial discovery to work with a low cost or even free out-of-the-box solution to begin the relationship.
  • It’s obvious that these solutions will not cover 100% of the needs of the client and the client needs to expect change requests. The project manager will need to explain to the client why these changes will require additional work and the corresponding budget to get them done. The difficulty that the project manager faces during this process is that in some cases the price for the changes may be much more expensive than initial out-of-the-box solution.
  • There are cases when the initial solution is not included in the final project release. Like the Axe porridge that was eaten without the axe. In hindsight does it make sense to start with such a solution? From a strictly software development perspective the answer is no. But it can make sense for many clients to quickly develop something for them to see what their solution can look like.

Here is a quick example that illustrates the importance of initial discovery of the out-of-the-box solution. One client wanted to use Drupal, a free open source platform for building his website, and found a Drupal theme and Drupal distribution that included the most common features for a corporate web site such as slideshow, blog, news block, products and services, etc. We did a quick discovery to set up this distribution and to check the main features. After the discovery we and our client decided to start with this out-of-the-box solution. But when we started working on less common details we found that some capabilities weren’t there or didn’t work in an appropriate manner. For example, there was a subscription form. It was not implemented as a webform or as popular contributed solution. It was hard-coded as an html form with validation but nothing else.

So we had to replace it by developing a solution. That raises the question of whether more time should have been spent on preliminary discovery of this out-of-the-box solution when budget is limited. If more time was spent in discovery then we could possibly save time during the development stage.

But there are other examples. In several of our projects we have used the Parade module and the LandingPage module as a quick start for simple landing pages in Drupal. Both of these approaches have allowed us to create a beautiful landing page in several hours. I would encourage everyone to try them.

So there are times when you have to put in more discovery time if your are going to use complex out-of-the-box solutions with a large number of features. Sometimes simple out-of-the-box solutions can work great and other times announced features might not work as expected.

My experience with using of out-of-the-box solution is that it is the right thing to do if the solution covers 80% or more of the required functionality. But we should not use an out-of-the-box solution if it covers less than 50% of the required functionality. Otherwise it will only be an axe in the project porridge. In between those numbers is a gray area and needs to be addressed on a case-by-case basis.

So before we start development we should spend several days and maybe several weeks in the case of large scale project and do discovery of the possible out-of-the-box solutions, find the best one and check if it covers at least 80% of the required functionality. In a future blog post I’ll cover the topic of the budget of preliminary discovery and developing an estimate.