Outsourcing software projects allows a company to concentrate on their core business, but it isn’t as easy as opening the Yellow Pages and looking for a provider. There are several crucial steps to take, from the first realisation that a service is needed, to the delivery of the product and further.
It’s not about hiring a painter to paint your house, a one-off job that has its own time frame, but more about establishing a short or long term partnership with the software outsourcing company.
Many businesses appear to neglect the stages needed to form that partnership, and end up with a nasty separation, a job that goes off the rails, or even a product that doesn’t do what was intended.
There is a lot of hard work to be done, and I’d like to cover some of the aspects. Of course, each business will have its own special requirements for their respective fields, be they medical, financial or another form of commercial setting.
Define your needs and requirements first
What reason made you look at outsourcing in the first place? Maybe you have an idea about a product or service but you don’t have the necessary skills to complete that project. Or perhaps your IT department is too busy with day to day operations. There are plenty of reasons why outsourcing is considered to be an excellent option for companies, such as potential cost savings, top level experience, a singular focus on a project, and perhaps good staff retention. Additionally, there are no concerns about workplace benefits, healthcare costs, vacation time and other attachments that go with in-house employment.
Research potential providers
After identifying your requirements, now it’s a case of ‘Where’s Waldo?’, trying to identify one company in thousands.
Questions need to be answered. Are you looking for a short term, one-off deal with a provider that simply produces what you need, or a long term partnership with more involvement and communication? What programming languages are needed, if the product is for internal use and connectivity to existing software? Do you wish to go Onshore, Offshore or Nearshore? Would you prefer a big, established software company with long chains of command, or a smaller one with sufficient experience which is more personable? Decisions, decisions.
Software companies that have been around for at least 5 years have a well tested methodology for successful project completion. They have experienced the pitfalls that accompany most projects and they have survived. If the original owners and senior management are still there, that is more proof of a success story. Developers get headhunted regularly, but if there are any ‘boomerangs’ (employees who left for greener pastures, but returned) in the business, that is a great indication that the top dogs look after their employees.
Use your network of contacts to get referrals, good feedback and a speedier search, or use a review platform like Clutch. Refine your list of ‘possibles’ into a short list of ‘quite likeables’. Check out the company portfolios online and try to get a feel for their business strategies and values to see if they align with yours.
Up next are the meetings, preferably face to face, but in these peculiar times, a video conference may have to do.
Initial meetings - questions to ask
If at all possible, go to the providers offices and have a good old face to face meeting. In many respects, it gives you an idea of the company, premises, and employees, especially if you can pre-arrange to shadow a team leader for a period of time, gaining useful insights into the culture. You should have an IT person with you who can clarify some of the more technical language (unless you already speak it!).
If the provider is able to mention them, ask for any past or current clients that share the same business activity, so that you can get a better understanding of the initial few weeks of working together.The EU General Data Protection Regulation is very strict, and so the provider may be unable to provide those details.
Data security is monumental. Providers sometimes farm out parts of a project to other software developers, especially if there is a time-sensitive aspect. Not many clients are aware of this, so the question should be addressed about any effects of this. You need to know how the provider protects sensitive information. How do they protect the source code?
Physical security should also be evaluated. How do people gain access to the building, and is the property monitored 24/7? Do they have a disaster recovery plan? The security standards should at least meet the legal and industry requirements, or surpass them.
What processes and tools will be used by the company in the development of the software? Do they use an agile approach to quickly respond to changes, or are they more Waterfall- driven? What project management tools do they use, and is the client included in the loop?
Communication mishaps can be avoided by having a comfortably constant two-way flow of information, updates, change requests and so on. Find out how the provider can maintain clear communication, preferably in real time, to alleviate any problems as soon as they occur.
Legal aspects will raise their necessary heads at some stage. Who will actually own the finished product or service, the codes, and licences? Who will be responsible for monitoring it? Is there a warranty?
There is little doubt that there will be a certain amount of give and take from the first meeting to subsequent ones. But as long as the framework is clearly defined, everything should be able to go forward with minimal problems. The key, of course, is communication. Evaluating a software development company for outsourcing is a heavy task, but totally rewarding. Mutual success with a quality product or service and satisfaction are great outcomes.