The 4 different types of software

You wouldn’t go into a Rolls Royce showroom and try and buy a cheap family car, nor would you go into a Ford showroom and try and buy a tank or go to a Smart dealership expecting to come away with a limousine. While they are all different types of ground transport they are very, very different things, generally speaking though, most people understand the differences and know what they are looking for when they go shopping.

Unfortunately software is somewhat more abstract that cars, and for many people and businesses, figuring out what sort of software they should be buying isn’t easy. If you don’t know the different types of software, and you don’t know how they relate to the problems you are trying to solve it can be a nightmare experience filled with hesitation, fear, and a range of prices and options confusing enough to make even Albert Einstein scratch his head in confusion.

What follows isn’t intended to be a complete, or even an accurate list of the different types of software, (that would be almost impossible). Instead it’s intended to be a useful list of different types of software. My hope is that it will help orientate you and give you the beginnings of a mental map you can use to find the right software for you.

Boxed Software

This is the software that until recently you could buy in a box at your local computer shop, it came with a licence key, a disk, and an instruction manual. Today its more likely that you would download it off the internet and install it on your computer, but to be honest that’s a detail. This type software does one particular task, and if you need to do that task then you should buy a copy of the software.

Famous examples of this type of software include:

  • Adobe Photoshop which is for performing a range of photo manipulation tasks
  • Microsoft Word Which is for doing all range of tasks involving writing and manipulating text
  • Filemaker Pro Which lets you store large amounts of arbitrary information in a way you can search later

For many years Microsoft was the biggest producer of this type of software, and it was highly unlikely that there wasn’t a Microsoft product that would do your task, whatever it was.

Online Services (SaaS)

Online software services, or Software as a Service (SaaS) are software tools that live on the internet, rather than being installed on your personal computer. Some of them do a specific task, just like boxed software, but the most successful ones let many people use them at once, and collaborate to do either a single task, or a set of related tasks. Sometimes you have to download and install a piece of software to access the service (like with Skype) and sometimes you visit a web site to use the service (like with Facebook). When you have to install software, that’s an example of boxed software whose task is giving you access to an online service.

Famous examples of this type of software include:

  • Google docs, which lets people create and edit text documents, and spreadsheets. (Despite bing a different type of software, this is in competition tools like Microsoft Word. Microsoft has since brought out Office 365 which is an online service version of its office software.)
  • Facebook which lets people share whats going on in their life, and chat to each other
  • Salesforce which lets sales people keep track of the potential customers they are talking to

With most examples of online services, the user can customise some aspects of how they interact with the service, but can’t do much to change the way the service behaves. If that were possible it would change the way it behaves for all users, which would only lead to mass confusion.

Customised Services

Customised services are types of software that allow you to create your own online service. You obtain a copy of the software, install them on an internet connected computer and then access them from any computer on the planet. Because it’s your own service you can customise it to work differently from other copies of the same service. Most software of this type is intended to be easy to customise and extend, and can sometimes be made to do a large range of different things, but there are limits to how far it can be customised effectively. Try and customise it too much and you will end up beset with errors and bugs.

Famous examples of this type of software include:

  • WordPress which is fundamentally a blogging tool. An installation of wordpress lets some users write blog articles, and other users read those articles. WordPress can be customised with features such different visual appearances, social media integration, and even shopping cart / e-commerce features. (WordPress is also available as an online service, giving you a choice of which you want to use.)
  • Joomla which is a content management system (CMS). An installation of Joomla allows some users to add content, which can be text, videos, pictures and so on, while allowing other users to view that content. This can be used for anything from running an online magazine, where the content would be the articles, to the website of a company, where the content would be press-releases, white papers, and so on. Joomla can be very extensively customised with add on modules, that add many new features, like learning management systems (helping users learn specific educational content)
  • Jira which is a tool for tracking bugs and tasks inside a software development project. Jira is now available either as an online service or as a customised service.

Customising a customised service can be done in one of two ways. Either by installing extensions or by paying a developer to write some custom extensions for you. Most examples of software like this have both a range of extensions available, and clear documentation for developers working on creating their own extensions. Typically when the same software is available as both as online service and as a customised service then the customised version will allow much more customisation.

Bespoke software / service

Bespoke software is where you get to throw away most of the rules. You need a team of developers, and to understand how to work with them, but you can build almost anything, as long as it’s within the range of reality. You can choose to either build it as a installable program (like boxed software) or as as a service that can be accessed over the internet.

The main difference between a customised service and a bespoke service is that with the customised version you start with a piece of software which already does something, and with the bespoke option you start with nothing. The developers have to build everything, either from scratch or using frameworks and libraries (bits of code that make the task easier and faster). This can be slower, but provides a lot more flexibility if you want your software to do something unique.

Deciding whether you should start with a customised service and customise it or start from scratch is a very difficult decision, and one you should take advice on.

Summary

Most companies will find they need to use a range of different software to find the best way to get their work done. A typical range might include Microsoft Word (boxed software) for creating letters, Gmail for emailing the outside world (online service), WordPress for running their company blog (customised service). Many companies have also brought bespoke software to help with the most unique parts of their value chain. For example the software that Uber uses to decide when to start surge pricing will be bespoke software.

Some companies start out doing their core activities manually without software, then start to replace parts of their workflow with either boxed software or services, before eventually commissioning some bespoke software. Other companies are in a position to start building bespoke software much sooner. Whichever you plan to do I suggest to take a look at 5 Steps to better business software for some pointers.

By |January 18th, 2015|Software|0 Comments

5 Steps to Better Business Software

Everyone knows that using the right tool is essential to doing a good job. Trying to hammer a nail in with a screwdriver is an exercise in frustration, and trying to tighten a screw with a hammer isn’t going to end well either! Whoever has the right tool is going to do a better job.

The same thing is true with software. Using the right software for your business is just like picking the right tool. The right software can make it easier for you and your team to do the right thing, whether that’s follow up on customer complaints, deliver the right end product to the right customer or make sure you remember to order the thank beers you promised your team for last week’s hard work. With the right software, all your tasks become easier, more cost effective and probably more fun too. But to pick the wrong software when your competitors pick the right software is to let them have then an unfair advantage, and that’s never a good idea.

So how do you make sure you make the right choices, and make sure you have better business software than your competitors?

  1. Understand your work
    All the work you do can be broken down into a series of sequential steps, sometimes called a workflow. The steps that whoever does the work has to follow. It’s important to understand these – what are they and how long do they take. It’s important to remember that the people actually doing the work will always understand them better than any analyst can do. So make sure you speak with the people who do the work, and preferably have at least one of them working with you to make your software choice.
  2. Find software to improve one step of your workflow
    The temptation is to try and build software to help with every step of your workflow, but that’s a mistake. It makes it hard to work out what works well and what works poorly, as well as adding a lot of complexity in finding (or creating) software that can do the the entire workflow.

    Instead pick just one step of your workflow and use software to make that faster/better. The step you pick should be the one you think its most amenable to being done better by a computer. There are some tasks computers can do many times better or faster than a human, while other tasks computers will never be able to do very well. No computer is ever going to make an upset customer feel better. Computers are really good at tasks that involve repetition, accuracy, or large amounts of data.The step you pick to improve is closely related to which tool you choose.

    You can use an off the shelf program like a spreadsheet, or a custom written piece of software. Doing this well requires a good understanding of what’s possible with technology. If in doubt get advice from a technology expert who can help you figure out what’s easy, whats possible, and whats impossible
  3. Wait and review the results
    Once you software is doing, or at least augmenting, one step of your workflow, wait a bit and measure how well the entire workflow is working. A common mistake is to just measure whether or not that one step is working better or not. Tempting as that might be, I don’t think it’s something you should measure. It doesn’t matter if one step is working better if the whole system is working worse, and sometimes that happens.

    If you improve one step in your workflow that affects several other steps. This happens because the steps connected with each other and are not independent. Sometimes those effects are beneficial to the entire system, and sometimes they are not. The quickest way to find out is to make a change and watch the result. If the result is negative you can either undo it, or tackle another step in your workflow, if you think fixing that will be better.
  4. Rinse, repeat and simplify
    You can repeat the steps above as many times as you like. As you do you will find that the complexity of your software begins to grow. This is probably because you are using a different software tool for each step in your workflow.

    Every so often it’s worth getting all your team together and reviewing the benefits in your workflow, and comparing them to the complexity of your software. Maybe using the same tool for every step makes some of the tasks a bit harder, but the time saved switching software makes up for it. As a general guideline, simpler software is better. As Einstein said “Make things as simple as possible, but not simpler”
  5. Review regularly
    Now you have software working for you, you need to keep an eye on it. It’s a frustrating fact of business that things change. Customers want new things and you need to change the work you do. So you can’t get away with not changing your software. Keep following the process above and allow your software to evolve over time. If you stop, your system will get out of date, and will start to hold you back rather than helping you lead the pack.
By |January 5th, 2015|Software|0 Comments