We've been wanting to do this for years, but we can’t get the resources from our IT
How often have you heard or even uttered this sentence?
If you work at a moderately sized or a large company I bet you have once, or twice.
If we analyse this statement it seems that the overall perception is that things don’t get done if you try to involve your IT department. This can’t be a good thing and is in many cases probably not correct, but why has it come to the point that there exists an eternal friction between business units and IT? After all, everybody should be in the same boat rowing in the same direction.
At Ankeri, we have given this issue some thought and we believe that the underlying reason is that IT is again and again being tasked with projects whose inherent nature means that they can never turn out to be truly successful, when developed in-house.
This is especially true when it comes to developing software for business units. All too often companies are set up in such a way that when it comes to taking decisions on introducing new software the normal approach is for IT or a small army of consultants and contractors to take on the task of developing and delivering the software and its value. The supporting argument for doing this is often that it will provide a solution tailor-made to the company’s "special needs" while ensuring that security and data protection policies are being enforced every step of the way. Some even argue that this is cheaper since the IT personnel is on the company’s books anyhow.
However, in software development this is a dangerous strategy.
Following are nine reasons for why this strategy is dangerous and how using externally developed software provided by external software vendors is a different and better approach.
Difficult to get resources Every IT department is always loaded with assignments and projects. Chances are that when you finally get the resources from IT it will not be when you needed them the most. In contrast, an external software development company is geared towards being ready with the solution you need when you need it.
Hiring the right people can be difficult For a software project you might need a special type of competence. However, hiring this competence can be difficult if you can’t foresee a full-time job or vision for the person in question. You might then be left with relying on contractors to provide you with the capabilities you need, which can also be expensive and precarious. At external software companies there is more continuity in the software development process. They are therefore more likely to have the competence needed as full-time employees.
Internal software development projects tend to be too short and not part of a long term product vision When you finally get the time with your IT department it is usually for a fixed and a relatively short period. Internal projects tend to be no longer than 3 to 12 months long. And when they are finished there is no guarantee when you will be allocated the resources for the next phase of the project. This means long running product vision which requires continuous improvements and frequent updates to the software is generally out of the question. When you buy from an external software vendor you are also buying into a product vision strategy that has a much longer timespan than 12 months. The vision and the product will also mature and progress without your direct involvement.
Large upfront costs before you see anything tangible Internal software projects tend to start from scratch meaning that there is a long development time before the business unit gets anything tangible to see, test or work with. The nightmare scenario is that the project is delayed and before you know it the time is up and you only have a fraction of the features you requested. When using an external software vendor you are in almost all cases getting a solution that is ready and battle hardened. It is only up to you to start using it.
Big chance of costly delays Software development is hard. There are usually more unknowns in software projects than you realise at the beginning. Projects therefore tend to get delayed for one reason or the other. But what do you do if an internal project is delayed? Usually the only option you have is to keep funding the project, that is, if you are not prepared to abandon the project or make do with a restricted feature set. An external software vendor will swallow the costs of development delays. In addition developing software on time and within budget will be the external software company’s bread and butter. In internal software development this can be a murkier issue between departments.
Software development is not part of your company’s core competence Chances are your company is not a software development house with the mission of delivering valuable software services to its customers. Rather, for example if you are in merchant shipping, your competence lies instead in providing products or services for clients to move cargo in as efficient manner as possible. An external software company will therefore always have a different mindset to software development since software is part of the software company’s core and reason for existing.
Not easy to quit A few years in, if you finally have the software you requested in use, you might find that it is not adequate for your overall needs or that there exist better solutions on the market, that you would like to start using. However, quitting to use the internally developed software system in favour of an external system can proof to be a political minefield. In the worst case you might find that by quitting to use one internally developed software solution limits your chances of getting service from the IT department (since you don’t want to use what they develop anyhow). You might therefore become stuck between a rock and a hard place. In contrast, if you design your interfaces to the external software correctly and ensure there are ways of exporting data from the externally developed system, switching between external software vendors should be a lot easier and less expensive.
Internally built software is usually not software-as-a-service orientated When you build internally you usually tend to think inwards, within your own firewall. Your emphasis will not be on extendability and connectivity which is the strong suit of the software-as-a-service model and the emerging API economy. Externally developed software solutions will usually have more emphasis on interoperability and using the best of breed APIs for getting the job done.
New features will always have to originate with you When you develop in-house you are going to have to be the originator of all new features. Externally developed software will have many other clients making product features suggestions and requests. Software developed externally will therefore have a life of its own that does not require you to hold its hand and feed with product requests every step of the way. The features developed externally and not on your watch will however be at your disposal without any effort from you.
Design your business around flexibility and not rigid decision making
It therefore makes sense to use externally developed software and software vendors as much as you can. It helps you stay flexible and helps you avoid making decisions that costs you a lot of time, effort and internal politics to change your mind if you need to. It also helps you to switch vendors if you need to or have multiple vendors providing specific software domain solutions instead of possibly relying on one monolithic vendor (external or internal).
But do external software companies have all the answers?
No! They certainly do not and they will need your expertise and guidance to arrive at the right product for you and the market. To have the most say on how a software product you are using matures over time you should build an innovative partnership, or charter program, with the software vendor that allows both parties to exchange ideas and discuss potential future solutions. For this you need to select software vendors that share your overall vision and are committed to excellent products and customer service, but can also help you widen you current understanding on how your business domain will evolve and what kind of solutions will be needed in the future.
But what role does IT then have?
The IT department will remain very important for your company to keep your IT infrastructure ticking smoothly. However, as pointed out above it will not be able to better best-of-breed software developed by external vendors. At least not in the long term.
Instead, IT should be responsible for ensuring user and data security conforms to company wide standards and that the externally developed software employed is accessible for retrieving and making backups of data when needed. IT should also be involved to provide technical know-how for selecting between vendors and ensure that the digital strategy of the company is followed. Furthermore, IT should be used to make internal data available for the software solutions chosen to create the biggest synergy between solutions used in the company.
So stop asking IT to do things it is not equipped to do and instead allow it to provide you with the support to make your company successful and competitive in the long run.
If you manage that, everybody should be ready to start rowing in the same direction again.