IT Outsourcing: How to Develop Viable Apps over the Distance

Dariya Lopukhina
4 min readMay 11, 2016

Such claims as “I have hired an offshore development team, spent a lot of time and money but didn’t get a working application” are a common thing in the modern software development world. And the sad truth is that it is really so, not all project owners who deal with outsourced developers are satisfied with the results of their work. There is no doubt that the problem of getting what you want from an outsourcing service provider exists. However, isn’t it the same with in-house developers? The thing is that it is not enough to have a great business idea, detailed specification and funding. It is also necessary to find the right developers for the technical implementation and properly organize your collaboration with them.

Let’s review some points that are frequently overlooked at the initial stages but which are vital for successful and timely development completion.

Reputation over declared skills

Choosing a development team for your project is a big challenge. There are myriads of software development companies, individual freelancers and various development agencies. All of them say that they are “leading”, “best” and “highly experienced”. They have comprehensive lists of mastered technologies — HTML, CSS, JavaScript and numerous JavaScript frameworks, Ruby on Rails, Java, Scala and whatever else — and they can be really proficient in all of them. The level of skills in a specific technology can be easily checked with some test assignment. But is this check-up sufficient to make the right choice? Unfortunately, no.

Having a canvas, a brush, paints and good painting skills does not guarantee the creation of a piece of art. The same is about application development — a software app should harmoniously combine your business idea with its proper visual representation and software backend. The right development team should be able to provide this but it requires more than knowing all ins and outs of certain programming languages. The service provider should be able to efficiently arrange the collaboration of all involved parties — back-end coders, ux/ui designers, front-end developers, DevOps and project owners, as well as establish smooth communication, planning, tracking workflows, transparency of the development process and lots of other things. A small test project can’t ensure that this will be done right if you start with the same devs a large long-term project.

So, it may not be enough to test the coding skills of your future devs. To be sure that a certain service provider is able to deliver a complete software app, you can run a reputation check. Thanks to the diversity of modern communication and research tools it is quite easy. For example, there are websites like Clutch that contact clients of design and development firms and list their feedback on the service provider’s profile. Another nice option is to ask a service provider to give some references from former clients. It may be really helpful to talk with a business owner who has recently worked with the same development team.

Be ready to become a part of the development team

Well, let’s assume that you have found a perfect development team for your project. Do not relax!

There are development companies that promise to simply take project documentation and deliver a turnkey solution in the end without troubling the clients with questions and discussions on the way. But in this case the delivered software product may differ from the client’s expectations as the things which are not clearly stated in the specs may be misinterpreted or skipped.

The core responsibility of the development camp is to provide technical expertise and build the software application according to the client’s requirements. Designers and coders can create the body of the software product but this body needs a soul which is built up of all the individual traits of a particular application. This can’t be fully described in a project specification. Only the project owner knows each tiny detail of how all elements of the app should really work and feel. That’s why the owner’s constant participation is vital on all stages of the development. Unless you want your future application to be an alien to you, work out a habit of checking and discussing the progress of your project with developers on daily basis.

Filter your ideas

There is a tricky side of the project owner’s participation in the development process. When you see how your application grows and evolves in real time, it is hard to resist the temptation to start making modifications and adding new exciting (but complementary) features right away, before actually implementing and testing the basic functionality. Since there is no end to perfection, these minor updates and improvements may require quite a lot of time and significantly delay the release of your application.

Beware, if you polish the first version of your app for too long, another startup may outpace you with a similar idea or you may run out of budget before a viable version of your application is ready. Do not bury your app under unnecessary frills before checking the initial idea of your app with real users. Try to find a balance between essential updates that should be included in the nearest release and the ones which may be postponed till the next stages.

All the above listed points are based on the experience gained from practice. If you find these tips useful, read more in our custom software development blog.

--

--

Dariya Lopukhina

Head of marketing at an IT company. Blogger, content enthusiast, beer lover and Siberian husky fan.