Why Pay Someone to Develop Software?

As a software consultant I get asked by non-software developers why do people  have me write custom software when there are easy-to-use tools out there, like Microsoft Access, FileMaker, Visual Basic, and REALbasic?  It’s a tricky question to answer because they aren’t software developers nor or they power users.  They use their computers to write documents, email and surf the web – not exactly the rocket science apps of the world.  So I came up with an analogy that people understand.

This comes from the world of ‘Do It Yourself Home Repair’.  In my younger days (you can read that as not having a lot of money) I would always take a stab at doing all those little projects that come with owning a house.  Faucet needs replacing?  No problem!  I’d go size it up as best as I could, go to the hardware store and pick up what I thought were the parts and tools I needed.

Some of you know where this is going.  On the second trip to the hardware store I’d get the parts I REALLY needed to do the job and on the third trip to the hardware store I’d pick up the things I had no clue I needed to begin with (or possibly to fix what I broke in the process of fixing the original problem).  The final trip to the hardware store is to return all the unused parts.  And all that is assuming I don’t find a leak in the next day or two (or two weeks later).

Did I get the job done?  Sure but it took three trips to the hardware store and an entire day to do it.  I called a plumber to do the same thing recently and they were in and out in 30 minutes and if I’m not happy or something doesn’t work right they come back out (typically for free because I’ve already paid).  My job isn’t too much different than the plumber.

When people come to me for a project I can guess how much work is going to go into it a project before I’m done reading their requirements document (if they have one).  I’ve worked on three accounting applications and the ones that don’t like their current accounting app get excited about that.  I tell them that unless they’re willing to spend a boatload of money and wait a year it won’t happen.  Applications of that complexity are huge, hairy monsters that take time to develop and even then there are yearly (and sometimes monthly) updates (especially if you want payroll taxes calculated automatically).

Sometimes it’s a shame that there are easy-to-use products like FileMaker, MS Access and to a lesser extent Visual Basic and REALbasic.  FileMaker and Access are  powerful tools that let mere mortals do some complex things with a database.  Just like me having a set of minimal tools doesn’t make me a plumber these tools give the user the false impression that they’re a full-fledged database developer when in reality they know how to use some tools.  That’s not to put these folks down because they’ve done some really cool and complex work.

The plumber has a truck full of fittings and miscellaneous parts.  He or she also has a set of specialized tools to aid them in their work and have years of training.  Likewise, software developers have  specialized tools to help us as well and we have years worth of miscellaneous code, controls, libraries that we’ve learned to use.  And perhaps most of all, the software developer knows how to use the tools and parts together.

So sure, you could do your software project yourself and you’ll learn how to do preferences, file I/O, database operations, error handling, licensing and registration, automatic updates, custom controls, and a million other little things.  Software developers already know how to do that.  In the long run, how much is your time (and frustration) worth?

Thoughts?  Did I use the best analogy?  What other benefits are there to having a pro write your software for you?  Do you have any drawbacks?

4 thoughts on “Why Pay Someone to Develop Software?

  1. Bob,

    Your analogy is spot on and I suffer from it myself. Part of it is that I’m cheap and flawed when it comes to home improvement, but its also about control and that’s something that small businesses don’t want to give up. I.E. we’ll to it cheap and simple in-house rather than risk bringing in an outsider to possibly do it right. That trust stage in the sales process is huge. Its more than just the sale of the work, its about your client exposing a vulnerable side for you to fix.

    I’d also argue that the person or developer is more important than the platform. I do a lot of SQL server VB/Access work and a good bit of my client base comes from those that started with Access because its an app that lets “mere mortals do some complex things with a database”, but eventually the company, data set, or business logic outpaces their ability. A well written Access front-end can handle millions of records and some serious business logic. It can also seriously suck when written poorly.

    -Bernie

  2. Another big advantage is that when you hire the professional software developer you are getting their experience that comes with that. Not only will the initial version get done quicker, but you can bet (if they are good) that the application will be better written using advanced software engineering techniques which will make it more expandable and easier to upgrade in the future.

    Sometimes it’s amazing when you have to deal with poorly written code, just how much work is required to add in what seems like it should be a simple feature. You can avoid this hidden cost down the road if you invest to get the software done correctly.

  3. OPC (Other Peoples Code). I cringe every time I get one to bid one.

    Funny enough, the contractor that just finished remodeling our kitchen has similar terms for do it yourself remodelers. None of which I can print. 😉

  4. Yes, good analogy. However, it also applies across all professional services. First off, people frequently balk at the estimate/quote for a job which covers all the work and expenses of the job in one figure, yet will happily spend ten times as much piecemeal trying to do it themselves. Secondly the DIY battle-cry “how hard can it be?” – if you do not know what is involved, watching an expert it looks easy. Third, how often do people figure in to the costs the expenses involved in getting things wrong then paying to fix the problem?

    (From the lawyers point of view, DIY Wills are often very profitable – sorting out the mess in the executry/probate can double or triple the legal fees)

    OTOH, if you do have the skills needed, employing someone else comes under “outsourcing”, and it is a case of comparing your cost of time against the alternative. Shifting analogy slightly, you may employ an electrician to install a new light fitting at home, but it is probably a waste of money to pay someone to replace the lightbulb; however if you manage a large hotel it will be more cost effective to pay someone to change lightbulbs (among other jobs) than do it yourself.

Comments are closed.