Reinventing the wheel, again

I spoke to the CEO of a small service company recently about the shortcomings of her CRM and booking system (large, internet-based ones). Her problems were all similarly themed. Essentially, online business software of this kind doesn’t offer services that fit well enough with how she wants to interact with her customers. She would like more control over how bookings can be made and would like to be able to get hold of underlying data more easily so that she can do her own analysis.

What she asked for was a new, bespoke CRM. As a developer, I was very keen to build her one – I love writing software and the chance to satisfy some requirements with a greenfield software project sounded lovely. How often do you get to break ground on a brand new code base?!

Unfortunately, as we talked, rationality went and got in the way of my new project. The CRM she uses does some pretty good things for her:

  • it connects to some web-based accounting software, books meetings in her calendar and so on. It would take me a while to make those integrations work
  • because it’s established, other software already connects to it, making integrations even easier (and often slicker)
  • it’s GDPR compliant, which helps her company to be GDPR compliant
  • it’s cheap! I’m not kidding, we’re talking Netflix cheap here for a single user, at least
  • it’s under active development and already has lots of other users knocking bugs out of it

So, although my instincts as a developer are to write her a shiny new CRM,  it would be expensive and, for some time at least, not as good as the solution she has right now. This made me think about how best to help her…

A developer’s job

Our job, as developers, is not just to build stuff. We also have vital experience in two important, but different areas of business planning:

1. We know, better than anyone else, what is hard and what is easy to build inside a computer. We are therefore uniquely placed to advise people on how something should be built. That said, we sometimes get this very wrong…



2. We have more experience than everyone else in building things and seeing them used. We are therefore well placed to tell people whether something should be built.


At the risk of being dogmatic, if you address 1 but ignore 2, you’re not doing your job. It’s your job, at an early stage, to make sure that the client understands the consequences of building their own rather than using something off the shelf.

I can think of a few scenarios when building something is the best approach:

  1. Nothing like it exists in the world and the business case doesn’t work without it. These are the wonderful, original ideas that some empires are built on. Facebook anyone? However, there may be a good reason why nothing like this exists. This means that when your client asks you to build a professional-grade 3D modelling app for the iPhone, it’s your job to point out that the form factor doesn’t lend itself to that kind of work, and to ask why users would use it in preference to a desktop environment.
  2. Other solutions exist, but you think you can do it better. I think a good litmus test in this scenario is to ask if the new software is providing the USP for the business. If you’re a standard financial business looking for a complicated calculation thingy, use Excel. It’s only usually worth building an Excel replacement if you’re planning to replace Excel for everyone. In which case, good luck re-imagining the spreadsheet!
  3. You need more customisation than would be available with a third party solution and you’re prepared to pay for it. This is the scenario I think a lot of companies end up working in. You could just use off-the-shelf software and cobble together some sort of business process around it, but you would prefer some customer-facing and/or employee-facing software that guides/streamlines/prevents errors/looks professional… This is a complicated area where there is often room for some custom and some off-the-shelf software. I’ve integrated plenty of custom software of this kind with Excel and similar, so as to piggyback off the rich feature set offered by the off-the-shelf stuff.
Back to our problem…

Now armed with more information, my new friend the CEO decided that she did not want to commission a new CRM.

I had a look at customising her existing CRM and booking app but they’re locked down tight. I encouraged her to contact the support teams for these apps to ask for new features (always worth asking!) or a more customisable API, but it isn’t looking hopeful in the short term.

So, as of right now she is coping with the software she has and looking around for a better off-the-shelf solution. She has a better idea of how expensive a bespoke development would be and we are looking for workable customisations and adaptations that would make a difference to her business without costing the Earth.

One other thing. I took a look at some of the smaller frustrations she was having with general website performance and we managed to improve that. She found a way to allow customers to get through to booking more directly, which she was rightly very pleased with. This, combined with a reasonably detailed look at how her existing systems work, left her much happier with her current technology solution. The grass no longer looks so much greener elsewhere.

*cartoons courtesy of the excellent XKCD

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s