Sooner or later, all entrepreneurs come to the conclusion that much like in 2018, substantial business growth isn’t possible without a high-performing software representing a company or service. If you discovered the need to get yourself one, then it’s high time to learn how programming products are created, what is IT outsourcing, and how to get most out of your decision to become an owner of a software solution.
The Basic Definition of Outsourcing
Outsourcing is the practice of contracting out some operations and duties to external contractors. Viewed as a cost-cutting and time-saving tool, it became a solid business strategy in the 1990 and has been locking in its position since then. As in 2018, outsourcing allows companies to choose the most effective resources without limiting themselves to a particular location and support the free market economy globally. In terms of software development, outsourcing quickly became an inseparable part of all rapidly growing businesses, especially run by non-tech entrepreneurs.
It all starts when a person (potential client of an outsourcing provider) comes up with an idea for a future programming product. If it overlaps with an early-stage funding, then that potential client starts searching for ways of putting his idea into practice. After having decided between in-house hiring and contracting out (which oftentimes is rather an obvious choice), organizational activities like signing agreements and hiring staff come along. These steps on the way to actual product creation will always differ from one entrepreneur to another. Yet still, if all the preparations are done and the team overseas is ready to start the project, this means your outsourcing journey has officially started.
What Does It Take to Create a Programming Product?
If you are going to become a client of a distant software development team, it’s necessary to get an image of how programming products are created. Most people on Earth have never dealt with software development, not to mention coding itself. Some out there might argue — an average person of today uses plenty of software daily and owns multiple technical gadgets. But instead of making people familiar with programming, this fact actually disconnects users from it. The thing is, we take all the software around us for granted — it just works, so why would anyone want to dive into all the hard work behind that seamless performance? However, by deciding on creating your own programming product, you left the average users chat. Now, it’s your turn to switch your mentality and start exploring.
The main thing you have to realize — developing the software is not all that easy. Even the simplest application that looks primitive to you actually includes hundreds of working hours and resources behind it. Let’s use the login form for a website or an application as an example. The login form means that there is an authentication process integrated
- Build a database.
- Develop a backend app that can retrieve and send the data from/to that database.
- Create a record type so that your database can store and process the information about users.
- Build a sign up/sign in page that asks users for their credentials and sends the entered data to the database for verification.
To implement all the steps listed, software engineers would need at least 16 working hours, not to mention all the other members of the programming crew we’re discussing below. Depending on what extra features you’d like to include for your users (like social media login API) and what level of security your project needs, the number of working hours can be multiplied. And that’s just one tiny component of the whole programming product. Can you calculate all of the other components of your project? We came up with an approximate duration of custom software development with basic functionality and modest design to give you a reference point:
The more features you’d like to see in the final release, the longer it will take the team to implement them as well as there being a bigger price tag. Market-leading applications like Instagram and Uber took plenty of time to be developed and the post-release support with improvements and updates is still ongoing. Naturally, this made their value reach millions of dollars. Don’t get us wrong here; you do not have to be a Rockefeller to afford a software launch. It is really a thoughtful start with an MVP and investments in further product development with its own revenue than risking a fortune in one day. In case you’ve been inspired by some industry-leading software, start with researching their experience, especially — approach to
Software Development Life Cycle
Non-technical people often incorrectly think that to build a piece of software means just to code. However, it is not quite true. Although the implementation of product features through coding is a very important phase of development, it’s still not the only one. All the steps the development team goes through between
- Analysis of requirements, market, and competitors.
- Decisions on architecture.
- Coding, testing and debugging.
- Post-production maintenance.
These steps might have reminded you of any other business project, as the life cycle of, let’s say, marketing campaign or any other non-software release undergoes similar if not the same steps during the creation process. However, due to the number of peculiarities related to programming, the IT industry became surrounded by a number of specific terms that characterize software development process, from all the job titles in a development team to methodologies and engagement models used to structure the workflow.
SDLC is a complex and multi-layer activity that requires deep understanding. Read our extensive guide on the Software Development Life Cycle and its phrases, popular models, benefits and more by following this link.
Roles in a Software Development Team
Regardless of the project scope, you will need the development team for its implementation. And yes, the team cannot consist of one person, even if that person is a software development alpha geek — it’s simply not enough. The minimum full-cycle team includes the following members:
Designs and applies app development standards, manages the production, develops the project scope analyzing all the risks and pitfalls. Acts as a liaison between the team and the client.
Evaluates the potential project, performs business analysis, examines the competitors, identifies project milestones, and deals with the position of a programming product on the market.
Writes the code of an app, performs bug fixing, documents the development process for further work on the product. Deals with the user-facing side of the programming product.
Plans and develops the server-side logic and architecture of an application. Integrates these parts with the user interface elements created by software engineers.
Creates the mobile application to reflect the web version of a programming product. In case you want to cover more than one mobile platform, you’ll need more than one mobile developer correspondingly.
Creates the layout for a future app and defines how an app is going to look like, as well as how users will interact with it.
Follows up every stage of the development process, tests the performance of an app and ensures its smooth and stable performance.
Hourly rates of the development team members depend on the job title as well as geographical region:
Workflow Organization Methods
In the olden days, there were three fundamental software development methodologies — Waterfall, Spiral, and Agile. The first two were very uncomfortable to use and dehumanizing, which led to the Darwinian survival of Agile. Currently, 95% of project managers and engineers admit organizing their workflow by the Agile model or one of the Agile-based frameworks like Scrum or eXtreme Programming.
The Agile model and its frameworks are result-oriented and focused on the needs of team members, not the product features solely. It is also the fastest and the most easily organized and followed-up model. In IDAP, we opted for workflow organization by Agile methods years ago and successfully adapted it to our clients’ needs regardless of project peculiarities. To get a more in-depth image of project management stack we’re using, click here and check out our in-depth overview
Client Relations Frameworks in IT Outsourcing
Just like any other collaboration, your work with an outsourcing provider has to be properly organized and documented. That’s what engagement models were invented. To cut it short, an engagement model is the set of rules all the parties involved in cooperation are obliged to follow. Currently, there are three most prevailing models in the IT industry — Time & Material, Dedicated Team, and Fixed Price. The first two models are suitable for projects of any duration, with a single yet crucial difference: T&M model supposes the client to be a full-on project manager and control all the stages of development on your own, while the DT model assumes all the production to be the vendor’s responsibility. The Fixed Price model is an arrangement for short-term projects and it is usually used to collaborate with freelancers or subcontractors.
The aspect of how to choose an engagement model deserves a separate word and extra careful consideration, so we recommend you checking out the part of our IT Outsourcing Guide: How to Choose an Engagement Model.
Setting Up Your IT Outsourcing Journey
About Outsourcing Destinations
Depending on the state of economy and technology, each of the regions has its distinctive features and prices for software development services they provide. People reaching for IT outsourcing got used to dividing regions into onshore, nearshore, and offshore zones, so you will hear these terms a lot when exploring providers. The countries included in each of the zones depend on the distance between the hiring company and the outsourcing contractor. Hiring people in your own country, but outside your company means using onshore services. If your outsourcing provider is located in a country that borders yours and the time difference is no more than four time zones, this region is considered nearshore. Correspondingly, countries that are more than four time zones away from you belong to offshore zone.
1. Northern America
IT hubs: Seattle, San Francisco, San Jose, Dallas, Phoenix, Waterloo, Vancouver
Countries representing this region in terms of most powerful software development companies are the USA and Canada. Depending on role, tech stack, and exact location (city, state or province), hourly rates there measure from $77 to almost $300. The first thing people associate software engineering in the US with, is probably the famous Silicon Valley — high-tech hub in San Francisco, where industry-leading companies like Apple, Google, Facebook, etc. having their headquarters. Naturally, you can find the highest hourly rates for software engineering expertise there as well. Developers of Canadian origin seem to prefer the US over their hometown country, as current migration trends claim Canada will lose about 200,000 IT professionals to the United States by 2020.
- The oldest and most experienced IT industry globally.
- Most stable economies in the world.
- Very high wages.
- The vast majority of outsourcing providers prefer to distribute their services within the country borders avoiding long-distance collaboration.
2. Australia and Oceania
IT hubs: Melbourne, Sydney, Wellington
Although the IT outsourcing market in this region is smaller compared to the North American market, it definitely has attention-grabbing features. Since the size of the market is not as huge, it creates a more welcoming atmosphere for startups and innovative technology. Hourly rates there are slightly lower and range from from $35 to $150 depending on role and years of experience. Australia and Oceania are full of creative software developers with non-standard ideas, although it does not fit every single project, first of all due to its isolated location.
- Transparent economical and political conditions.
- Highly supportive region for startups and most recent technology.
- High costs for software development.
- Isolated location that results in very expensive traveling.
3. Western Europe
IT hubs: London, Paris, Berlin, Amsterdam
This region consists of highly-developed countries with powerful economies, and that level of life generates high costs for software development services. The a
- High level of well-being amongst residents.
- High level of security and data safety regulated by government.
- Very expensive software development expertise.
- Services and tech stack are targeted to meet the requirements of local companies.
4. Latin America
IT hubs: Monterrey, Mexico City, Tijuana, San Juan, Belo Horizonte
Latin America region is a rapidly growing IT outsourcing destination that is expected to reach 5.8% CAGR by 2019. Leading countries there include Mexico, Argentina, Brazil, Colombia, and Chile. In general, countries located in Latin America locate over a million of software developers — quite an impressive volume of the labor market to choose a contractor from. Median hourly rates there measure from $40 to $70, although companies that work with big data solutions and provide PaaS options, can charge up to $150-$199 per hour.
- Pretty large outsourcing market supported by the government, which is trying to implement positive changes in the local business environment.
- Small time zone difference with the Western part of the world.
- Hourly rates aren’t always affordable, some services cost as much as in the US, UK, and Australia. Such
pricingpolicy can sometimes devalue the possibility of IT outsourcing in general.
5. Eastern Europe
IT hubs: Warsaw, Kyiv, Minsk, Kishinev, Sofia, Prague
Eastern Europe is probably the most booming IT outsourcing destinations, which includes countries appreciated by numerous entrepreneurs from the US, UK, and Western Europe. Leading countries here are Poland, Ukraine, Belarus, Moldova, and Bulgaria among others. The median cost for software development there is between $20 and $110 per hour, however, to get the clearest image, it’s better to narrow down the hourly rate per country. For example, the two most popular countries in Eastern Europe are Poland with $40-$77 and Ukraine with $34-$64 hourly rates respectively. Although this region has been associated with Russia and the Soviet Union in terms of culture, this is nothing more than just a biased prejudice. The local IT industry distributes software engineering expertise abroad in the vast majority of cases with the most common clients being the United States and United Kingdom. Therefore, such aspects like dissimilar work ethic or language barrier aren’t an issue for clients of outsourcing companies located there.
- Highly skilled human resources at low hourly rates.
- Market focus towards Western countries.
- Wide range of IT outsourcing companies with global recognition to choose from.
- Economical and political situation might become unstable from time to time in particular areas.
IT hubs: Bangalore, Hyderabad, Chennai, Mumbai
Indian IT outsourcing market attracts tons of entrepreneurs from abroad with its low labor cost and enormous quantity of software developers. In terms of market size, in 2017 India came close to the US with its 2.75 million local software developers (meanwhile, the United States accounts for about 3.5 million devs correspondingly). By the very end of 2018, Indian software development labor sector is expected to exceed 5 million of professionals. However, as we have concluded by thoroughly comparing one outsourcing destination with another, the bigger the local industry is, the harder it is to implement new technologies in the development routine. Unfortunately, this tendency is proliferating in India. Numerous
- Ultimately low prices for software development expertise.
- Huge number of specialists that provokes high competition amongst outsourcing providers.
- Well established IT outsourcing sphere operating since the late 1980s.
- Lack of professionals with hands-on experience of most recent technologies. It’s possible to find them, yet charges for the service will be higher.
- Weak outsourcing provider loyalty, which is demonstrated by oftentimes absent post-production support.
IT hubs: Beijing, Tokyo, Shanghai, and Bangalore, Kuala Lumpur
This outsourcing destination is represented by China, Malaysia, Indonesia, Thailand, and the Philippines among a few smaller others. According to 2017 A. T. Kearney Global Services Location Index, China and Malaysia take second and third places correspondingly in ranking of most popular business process outsourcing spots, losing the first place to India. Fascinating fact — Malaysia, which we don’t really hear much about when it comes to IT outsourcing, actually hasn’t lost its #3 position since 2004. This country is appreciated by numerous entrepreneurs worldwide, in particular those who reach for expertise in gaming and animation. As for China, this gigantic country has been always known for its low labor costs, which turned it into an attractive manufacture outsourcing option. Later, the overabundant talent for budget-friendly rates started also attracting such tech giants as Apple, which has transferred its research and development processes to China years ago. Currently, hourly rates in China range from $50 to $100, however, in bigger cities like Shanghai, prices can be a
- Absolute political and economic stability.
- One of the biggest labor markets in the world.
- Local industries including IT and business are globally recognized and appreciated by world-leading companies.
- High risk of piracy and weak non-disclosure policy amongst outsourcing providers.
Software Development Vendors to Hire
A lot of people still strongly associate the term “outsourcing” with freelancers. However, hiring an individual freelancer to build a programming product from scratch isn’t a good idea. Why? Simply because a single person cannot cover all the stages and aspects of software creation. Although you can find a lot of self-employed professionals who would be more than welcome to complete your project (or at least promise you to do that), avoid hiring people with diverse yet superficial expertise. It is rather a few people with polished narrowly targeted skills team up in order to create something valuable than one person tries to balance between the architecture, design, code, testing, and support at once. If you want a comprehensive and growing product at the end of your outsourcing journey, a full-cycle software development company is your way to go.
Outsourcing software development companies are third-party service providers that employ people needed to develop a programming product. Cooperation with an outsourcing company can’t be started in minutes; it requires negotiations, legal liability, transactional work, and every other element of B2B relations. Naturally, IT companies provide their services mostly on a long-term basis.
The most drastic difference between freelancers and outsourcing companies lies in the fact that the first one comes with a complete project management on board. This brings numerous advantages to clients of such companies: you delegate the technical part of the project completely, without the need to perform manual checks and hold control over freelancers’ working routine. With a well-arranged software development life cycle, company can handle projects of the biggest scope and effectively serve the projects that last years. Meanwhile, entrepreneurs can focus on the front part of growing business choosing the level of technical involvement comfortable for them. Traditionally, clients keep in touch with the project manager employed with outsourcing vendor, but remote meeting with the development team and participation in recruiting process are also possible. Modern outsourcing vendors are working on decreasing bureaucracy and welcoming client’s involvement without making it obligatory.
The projects running in a company actually define the staff working there; to meet the technical requirements of the clients, outsourcing vendor hires people with corresponding skill set. This way, throughout the years, companies gather the teams operating in particular software development niches. Following that logic, prior to start negotiations and reveal the details of your project to a third party, carefully review the company’s position in the industry and check its portfolio. If an outsourcing vendor has been focusing on, let’s say, a mobile application development for the last year or more, chances are staff working there consists of experienced iOS and Android developers. This makes that particular IT company a great option for all the entrepreneurs having a mobile app project in mind. The bigger the outsourcing vendor is, the more blurry its specification becomes. Everything has its exceptions, but we recommend you avoid service providers with multiple expertise and opting for companies embracing a T-shaped approach to software development.
Beyond question, outsourcing companies provide higher data safety levels than autonomous freelancers. This safety comes with some paperwork, yet still these extra hours spent on outsourcing agreement form solid legal basis for further collaboration and protect all the contracting parties. The agreement you sign with the vendor can be as customized and detailed as needed, containing warranties, payment rates, post-production support, force majeure cases, dates for transactions, etc. Legal liability isn’t the most fun aspect of outsourcing partnership, but the most necessary one.
The bottom line is, people want to hire someone who won’t let them down. And it doesn’t always have to be someone who calls himself the best player on the market — presentation matters, but the way you feel about your potential outsourcing provider matters a lot more.
What to check in a software development company before signing a contract:
- position in the industry;
- business goals;
Legal Arrangement of Outsourced Software Development
a) Contracting the services out to the independent third-party provider from abroad
The first way of legal arrangement of outsourcing is the simplest one — you contract out the service to a foreign company using its employees and infrastructure needed to deliver that service. This option is a great way of trying the software development outsourcing out, rather than start with investing in a subsidiary of your company right away. However, it comes with certain considerations. First of all, potential outsourcing vendor has to undergo due diligence expertise and confirm its performance on similar projects, financial stability, and intellectual property protection. Comprehensive due diligence eliminates the risks of a failed project and crashed business operations. The client’s involvement in the working process with this legal structure is rather superficial and the majority of time you and your outsourcing vendor communicate online.
- Short arrangement time. This structure is the fastest to implement. The client takes full advantage of the outsourcing vendor’s team and infrastructure without the need of managing
- Low cost. Comparing to other structures we discuss below, this one appears to be the most cost-effective. You pay straight for the services provided, without investing in a subsidiary establishment, for example. Of course, globally recognized companies charge more for full-cycle software development than smaller and new ones, but reliability is definitely worth investing in.
- Higher flexibility. Since this outsourcing legal structure is the most informal one, it provides more room to implement changes in the project scope during the development process.
- Weak control. The outsourcing vendor here is a fully independent facility, hence the client in that structure has almost no control over the working process, unlike the legal arrangement through a subsidiary or a potential acquisition of outsourcing vendor in future. Be ready to have less ability to implement your own policy and work ethics, follow up employee performance, and manage the development process.
- Intellectual property burden. Intellectual property protection is a complex set of regulations and actions that differs from one country to another. You have to thoroughly examine the frameworks for intellectual property protection in the country you’re going to contract to, including software ownership assignment requirements and moral rights. The more non-employees (from the client’s side) are involved in the software creation, the harder it would be to obtain the intellectual property protection, even if accorded to the country’s legal framework.
- Private data share. Depending on the kind of software under development, clients oftentimes share private data to the third-party vendor. This may include such sensitive topics as tax returns, medical records, and user personal info like addresses and private messages. This risk can be eliminated if all the private data stored on US-based servers and the only access third party can get to it would be a no-download one.
b) Establishing a subsidiary in the location where the service provider operates
This structure assumes the client opens a secondary establishment within the same legal terrain (country) as an outsourcing vendor. In this way of legal arrangement, a subsidiary acts as a separate legal entity that follows local governmental regulations, yet remains under the control of the US company owned by client. This approach eliminates business risks by providing higher level of control over the development processes. This control will be performed by the top management of a subsidiary company you’ll hire yourself if choosing this structure. Since the distance stops being an issue, a subsidiary employees can easily oversee daily operations of software development services provider. These two also cooperate within one legal terrance, which adds to effective handling of intellectual property and privacy.
- Greater level of control over the development process. The local subsidiary can manage the actions and daily operations of an outsourcing provider more closely. The top management of a subsidiary establishment have no trouble conducting onsite meetings and checking whether the outsourcing vendor meets the project objectives.
- Higher transparency of legal arrangement and intellectual property matters. The secondary establishment runs in the same legal field as the contractors and it is also employs local managers and lawyers, which decreases the chances of confusion over the local legislation.
- A lot of time to implement. The subsidiary legal arrangement structure takes the biggest amount of time for implementation. You would have to deal with a lot of legal and organizational formalities associated with starting a new company abroad. Also, a lot of
- High cost. Obviously, opening a secondary establishment abroad takes a lot of money — you’d have to get an office setting and build the company’s infrastructure from scratch.
- Human resources. Not only will you
needto relocate the recruiting process abroad to hire local staff ,the subsidiary structure is also exposed to a risk of employing certain human resources needed eventually, but not on a daily or weekly basis. This brings up the bureaucracy and employee engagement issues.
- Long-distance operations. Although the subsidiary shortens the distance to the outsourcing vendor, the headquarters (based, for example, in the US or Europe) is still far away from it. Do not expect the subsidiary to function properly without your careful oversight. As a business owner, you’ll need to dedicate a lot of time and effort to keep the subsidiary top management motivated, engaged, and high-performing.
c) Signing agreement with a local subsidiary owned by the outsourcing provider
This legal structure fully reflects the one described above with a single difference — it’s not you who maintain the subsidiary, it’s an outsourcing vendor. Meaning, the IT outsourcing company takes all the burden of running a secondary establishment in your country (most likely the US) so that you would operate under the same laws and regulations. The subsidiary under the control of the outsourcing vendor usually employs top managers, but not the production division, so the software development process will still be distant for you.
- Almost no time for legal arrangement needed. Basically, everything is already set and ready to start a collab anytime. The only thing you would need is to sign up an Outsourcing Agreement with ownership of intellectual property and non-disclosure aspects negotiated.
- Ease and reliability of use. The outsourcing provider that already runs an establishment in your region has strong expertise of local legislation system and specific regulations applied to software development. You two would unlikely have any miscommunications or issues.
- Balanced rates. This outsourcing structure isn’t the cheapest one, yet it is the most balanced one for sure. You will invest in software development done by a reliable third party operating in your location, while saving the costs needed to start your own subsidiary.
- Limited range of outsourcing providers to choose from. Not all the companies that offer programming expertise own a subsidiary in your region, or anywhere else at all. This will limit the range of companies you would choose from. However, the ones that maintain a secondary office abroad, usually also have better position in the industry.
The IT industry with its fast pace and diversity can easily scare people with no programming background. Same goes with software development outsourcing — each and every case is different, and a bazillion pages wouldn’t be enough to describe them all. But when you break it down to smaller components like which country to choose and how to organize the working process, suitable choices for your particular project start popping up leaving the wrong ones behind. If you want to get an extensive information about your potential project, as opposed to general overview, drop us a line and we will be glad to consult you on this matter.