Tales about Aviation, Coaching, Farming, Software Development

When your organization is a software company

Innovation at the core of the business

Imagine you are the owner of a chain of restaurants with about 800 locations. One day during travel you discover a restaurant where they have little computers with touch screens on every table, which the patrons can use to order from the menu. You are so intrigued by that that you want to introduce this to your own chain of restaurants. Besides bringing food faster to the table you also envision benefits for your supply chain management.

"We are not a software company"

Your organization is a chain of restaurants. Everybody has a hospitality background and their only connection to software is that they use computers and several programs day in and day out to send email, write letters, do accounting, print checks for the patrons and run statistics. Most of these programs are quite easy to use but some require some training for up to a day. It's probably safe to say that nobody knows how to actually make software but then some of your managers report how their sons and daughters are taught about computers and programming in school so it doesn't seem to be so challenging. Sure, kids in school don't work on large programs but the basics are certainly the same - isn't it?

Reasons to keep it in-house

Because you view this new initiative as being so critical to the success of your business you decide that you should not contract an outside party for the development of it. You fear that this new thing may get into the hands of your competition too soon. Instead of awarding a contract to an established software development company you decide to hire a number of programmers and create the solution in-house.

Things to consider

Ideas are worth nothing. It's the execution that counts. You can ask around at Venture Capital companies and they will tell you that they get hundreds of proposals and never would consider signing any form of non-disclosure agreement.

A company implementing software on behalf of their clients has no incentive to disclose one client's idea to another client or to the public. Doing so would destroy their reputation and their company. There is nothing to gain for them. And don't forget "ideas are worth nothing". Even, if the contractor would disclose your idea to a competitor, it doesn't really help the competitor. He still has to implement a lot of other things in his organization around the idea of the software solution to really take advantage of your idea.

Software development is a difficult undertaking. It is a risky and expensive business that requires a lot of experience and knowledge. Anyone can tinker with code and get something done. It is not difficult to learn how to write a script or even a Java program (or whatever other language one might choose). However, the development of a maintainable software solution that solves a business problem in the right way is a totally different thing.

By keeping software development of any dimension - if you write one line of code, you are basically already doing it - in-house, you have made the decision to learn how to develop software. As with any learning it will take time to master the subject. And while you learn a subject, you shouldn't be delivering any critical work products created using the subject of your studies. Plus - and that's more important in a business context - all that learning takes a lot of time. While you learn your competition may be working on the implementation of a similar idea and in the end succeed at executing their idea while you are still learning how to execute your own.

"We hire qualified software developers" I hear you say. Really? How can you know who is qualified? How can you judge someone's skill without knowing much about their field? If you still want to keep development in-house, the best you can do is to hire a qualified advisor so that this person basically sets up your internal software development shop. But are you prepared to spend the money that such a venture requires. You are basically creating another company from scratch. And for how long? How will that new company - you may call it "department" - live?

I think that unless you are willing to transform your company into a software company you should find a qualified software development company and let these guys do their job. It is much easier to figure out who has successfully created software you like by looking at what they did for other clients than to build an organization from scratch.

This article has been posted to social media sites. There might be comments. Just follow the links: