So, you’ve decided to develop your own application.
…but should you develop in-house, or outsource it?
Maybe the answer could be ‘both’
You’ve been asked to commission a new application for your business and you are deciding how you’re going to deliver what has been asked.
Should you be thinking about how to secure internal resource?
Should you be Googling for someone else to take the project on for you?
Or should you be considering a combination of the two?
It’s a difficult decision. Your reputation may depend on it, your department’s success might be resting on the decision and your organisation’s future may depend on you getting this right.
Questions to ask yourself:
- What are the aims & objectives of the project
- What skills do you have in house?
- What is their availability?
- How likely is it, that the available skill-set and capacity is going to be sufficient for your aims/objectives?
The case for in-house development
If you have the staff and the skills to deal with this within the company, then you may be considering running the entire project in-house.
It may be that, whilst you do have the staff, they do not have the precise skills required for this project, because your internal development team may have a broader set of skills, in order to fulfil their role within the business (they may look after databases, applications, website(s) and a host of other pressing systems and developments, for instance).
Even in the latter case, you may want to make use of their foundation skills and improve on skills in discrete areas needed for your project.
A good example of this would be enhancing a development team’s capabilities in a selected development platform, in order to complete the project to a satisfactory degree.
In each case, you may feel that you have a greater deal of control, if the project is completed in house.
That thought-process is not always valid though. In some cases selecting a development resource outside of the company, might provide a greater deal of control and freedom.
The case for out-sourcing development
If you select a third-party to develop your application, you are not bound by the skill sets you have in house.
You simply choose a partner that has the skills that you have deemed appropriate for the job (and avoid re-defining the job based on the abilities to hand).
In terms of resource availability, even if your internal workload is alright for now, what if your development team get pulled into other projects, or staff members leave the organisation and what if the project gets bigger than anticipated, or even completely unmanageable?
With a trusted partner for your development project, it is much easier to define costs and timescale and no need to worry about the prospect of having to hire additional staff at short-notice.
In most cases you will agree on service level agreement, a defined scope of work and agreed project timelines. You may be even lucky enough to settle on a pre-defined cost and timescale, before the project commences.
In achieving any of the above, you have an agreement which the partner must adhere to and therefore reducing the risk of going over budget or missing deadlines.
If chosen as a part of a rigorous selection process, a development partner should be the best in their field, for the elected development platform, whereas internal teams are likely to have a number of focus areas to support the business and thus have a broader, but shallower set of skills.
Using exclusively internal resources can understandably lead to a restriction on the conceived possibilities. Perhaps your team may succumb to ‘target-fixation’, focusing solely on the brief set-out and ‘not seeing the wood-for-the-trees’.
The right development provider will have experience of many different projects, in a variety of industries and may view things very differently, resulting in valuable ideas which might have not been considered otherwise. Your partners may even challenge some areas of the proposed functionality or project definition, or they may re-affirm your concepts, which should help you proceed with more conviction.
Whilst some organisations are flexible enough to explore the merits of outsourcing their development projects (and while some companies even insist on outsourcing as a business-model) it is understandable that in some organisations, there is an aversion to this approach.
However, it doesn’t necessarily have to be an ‘either/or’ decision.
The case for collaboration (‘best of both worlds’)
Maybe you do have the staff and the skills available to you, but you don’t have the time. Perhaps the project demands would be too much of a drain on resources for you to ‘go it alone’.
Maybe you should consider working in collaboration with a development partner and there are various models for collaboration to consider.
You may wish to work with a partner in business logic and high-level application design. After all, you are the expert at what your company does and your partner are experts in how to interpret all of that that in a new business application.
Following this you are likely to want to work with your partner in the actual development and combine the expertise of their development and your development resources. ‘Two heads are better than one’ and exploring a development from different angles, experience and skill-sets can be very valuable.
You might be more inclined to engage with a partner to get the project started and build a foundation system, for your development team to build from there (having benefitted from some on-the-job training) in a ‘kick-start’ scheme.
It could be that you have commenced a project and encountered some difficulties, or just need a hand in applying the finishing touches.
Whichever path you choose, it is important that someone within your company is selected to act as project manager, to co-ordinate on the completion of milestones, tasks assigned to a partner company and management of internal resources.
It is also important to identify the people who will be responsible for the system once it is operational.
For any degree of in-house development:
- Consider a comprehensive evaluation of the skill-sets of your internal developers. (Is it even feasible to commence development in-house? Do your team need training?).
- Estimate how long it will take to complete and build a timeline with milestones. (Are the deadlines set by management realistic? Can you be confident that you have taken everything into account?)
- Complete an internal cost analysis. (This is obviously not as easy as getting a quotation from a third-party as you will need to take into account the fact that internal resource are not completing usual tasks and responsibilities whilst working on the proposed project.
For any degree of outsourcing:
- You may want more than a ‘development house’. If so, ensure that your partner is able to assist with project management and advise on business analysis and involve them from the start (from project definition and requirements gathering onwards).
- When considering any potential partner, ask for a demonstration of work they have done before.
- Ask to speak to one or two of their clients.
- Recognise if any internal development staff are becoming defensive at the prospect of an external company’s involvement and re-assure them that this is for their benefit, in order to acquire new experience and expand on their existing knowledge and skills.
- What is your prospective partner’s website like? (A poorly designed and maintained website is a bad omen for any development company, even if they’re not specifically ‘web developers’). Their online presence should get across their passion for their trade.
- If you’re looking for quick and predictable results, does the partner work with a proven rapid application development (RAD) platform. Such as Oracle Application Express (APEX)?
- Can your partner support you with services after the project is delivered, for continuity and long term assurance?
- Ask your partner to sign a Non-Disclosure-Agreement before work begins, to ensure that any data, project goals or company information is handled with the utmost care and confidentiality.
- Invite a debate with your chosen partner, on your ideas and the brief from the start before embarking on a potentially flawed plan. Perhaps ask for a workshop, before any project activity begins.
- Consider asking your chosen partner to agree to a fixed cost and/or fixed timescale project, for even more assurance.
- Ensure any skills and knowledge transfers are factored in, for the end of the project.
- Make sure that the Intellectual Property for the system belongs to your company, after the development project is complete.
- Ensure that any potential partners are not simply ‘sole-traders’ and have an established office and trading history.
For more help and guidance on any of the above, please don’t hesitate to get in touch with Explorer.
Neil has fulfilled a number of customer-facing roles in the technology industry, from Account Management to Solution Management. He has many years of experience in advising on bespoke solutions, having even been responsible for implementing and configuring timesheet, CRM and project management software in his time. At Explorer, Neil is very focussed on presenting the commercial benefits of the solutions that our development team can provide, with particular emphasis on the Oracle Application Express (APEX) platform.