If you have been caught with this article, ten to one this means you have some great idea for the startup. But you do not know...
Outsourcing Software Development: In Conversation with Pratham MittalKhyati Sehgal
Outsourcing software development is more than just a buzz word. VenturePact Co-Founder Pratham Mittal explains how.
Q1. Outsourcing is sure a buzzword, but how exactly are businesses benefited from it?
Ans. Software development outsourcing, if done right, can help startups and businesses retain tech talent and focus more on their core competencies. Besides, 33% of CIOs believe that outsourcing IT services is a great way of bringing experts on board and improving their organization’s bottom line. Hiring a freelance developer or a firm can help companies iterate on software and reduce costs while focusing on their core competency. Many startups like Fab.com and AppSumo have successfully outsourced their product development efforts to software development firms. AppSumo built their first version of the product over record time with an outsourced team in Pakistan, while Fab rapidly scaled its engineering team to 300 engineers by initially working with and eventually acquiring a software development firm in India. So you see, outsourcing is more than just a buzzword.
Q2. Agreed. But does this mean every business should outsource? Or is it meant for a certain business segments?
Ans. Outsourcing is great, but it may not be appropriate for certain functions. The Rule of Thumb is, ‘If something comes in the first few sentences of your pitch, You probably don’t want to outsource it.’ For instance, Google’s pitch is that its search algorithm provides better results than everyone else’s. It is their core offering and prime differentiating factor. Hence, they probably should not outsource the development of the “PageRank” search algorithm. Now, even google may decide to outsource some non-‐core software such as the front-‐end work for the android web page or sales support CRM for their Adwords team. In fact, they do. According to Google, a business should “Eliminate, automate or outsource any of the non-‐value transactional work-‐ it has really freed up ourselves, and it is a never-‐ending exercise to constantly refine that.”
Q3. So once a business has decided to outsource, what all should they have in place before they begin looking for a service provider?
Ans. It is important to have clear specifications before you outsource. This ensures that there are no last minute hassles. So it’s best to have a checklist with you before getting started with a service provider. A few things which you must keep in mind are – having thorough mockups ready, defining a budget, having a definite start date (or period) and completion date on mind, specifying any language/framework/platform preferences you may have, and last but not the least, knowing your priorities. Having all this in place increases the chances of your service provider responding to your request by 5%.
Q.4 Wow! That’s solid. So now getting down to the business, whom can businesses outsource to? How can they decide upon a service provider?
Ans. One thing to keep in mind while choosing an outsourcing partner is ‘not to generalize’. You will find good as well as bad developers all over the world. However, every geographic location may have its own strengths and weaknesses. While communicating with an American firm may be easy, hiring it may be expensive. Or while you may face time zone issues while coordinating with Indian firms, their development costs are relatively low and they are readily available. However, all of this boils down to 2 things – what is your budget and what are your preferences and priorities.
Q5. Selecting a service provider is one thing, but how does someone choose the right software developer?
Ans. A good developer paves the foundation of a project. Thus properly vetting a developer becomes really important. Some criteria which will help you shortlist the right developer include checking their portfolio and skimming through references, making sure they have done relevant work in your niche before, checking if he has specialization in the technology you want to use and will he work for a trial period or a test project. Besides, if you are offshoring, make sure the developer is well-versed in English so that you don’t have a hard time communicating with him. And also see if your developer is responsive or not. The fate of the project largely depends on this.
Q6. OK. But these projects include contractual obligations as well, right? So how does one take care of that part?
Ans. A contract indeed holds a lot of significance in outsourced projects. You can enter into either a monthly contract or go for a fixed price engagement. Fixed price contract works well if you have your requirements detailed out and you are certain about your needs. This kind of contract has minimum risk, but in case there is a change in scope, you’d have to negotiate the prices accordingly. Another way of doing this is paying the developer on a monthly/weekly basis (Time & Material Model), especially if you are not certain about your requirements. You only pay for the resources you utilize, thus allowing you to make changes as and when the need arises.
Q7. Another thing is change. We know change is inevitable. So how do you handle changes?
Ans. Product roadmap changes often. You must agree upon a system which allows change requests and accommodate associated budget and timeline modifications. This isn’t much of a problem when you opt for T&Mmodel. But if you go for a fixed price contract, make sure you decipher small changes from larger ones. Small changes are defined as changes which can be completed within hours as opposed to a few days. Larger changes can take more than a day to implement and might even involve undoing something already done. While small changes are usually absorbed by developers, larger changes need to be tackled differently. This can be dealt with in two ways – you inform the developer of changes and he comes back with a revised quote and timeline or you can decide to pay on T&M basis for any changes. But make sure you are certain about the functionality you wish to alter.
Thanks Pratham! This was great advice on outsourcing software development. Nice talking to you.