After analysing the concept of hiring external resources, by a startup or by a software development company, the most important question is “who to hire in agile offshore?”. Obviously, the answer to this question will be determined by the type of company that hires the services.
You can raise the following scenarios:
- Self-funded startup
- Startup with its first round of investment
- Company that develops software for others
- Consolidated company with an IT department
- Consolidated company without an IT department
When embarking on the adventure of outsourcing development, all of these companies have a common point, they want to reduce costs without compromising the quality.
Reducing costs without compromising the quality
Today, the advances in collaborative tools and connectivity make outsourcing agile offshore an option to take into account. Many companies have thought about outsourcing or have contracted outsourcing services of an offshore or delocalised company, in countries where resources are cheaper.
Following along the lines of optimising resources, working with remote resources is not only feasible but is also productive and economically desirable. Since the location is no longer a problem, we can perfectly add to our options choosing an outsourcing company offshore in India, Vietnam, Sri Lanka, Ukraine, Argentina, Romania, etc…
From a purely economic assessment, it is profitable to hire resources that cost literally less than half what you would pay in West Europe or USA. But by hiring a traditional offshore or a non agile offshore, based on specifications and project documentation, you can end up compromising the quality you aim for.
Said in another way and based on my experience working with India, Argentina and Romania, I can say that the traditional way of outsourcing leads inexorably to failure.
I won’t go over the general benefits of the agile development process, but you can read more about it if you’re interested.
Apply agile offshore process
To apply agile offshore we have to consider that each of the different types of companies have different needs (number of resources, project size, budget available, etc…). We can still find similarities in the design process of hiring external resources in another country, working safely, giving a high level for project success.
Our agile offshore process consists of the following steps:
Step1 – define the methodology
For numerous reasons, we will use an “agile” methodology. We do short iterations, probably a week. The work is transparent and smooth on both sides. The use of collaborative tools should be defined and bounded. In Apiumtech, we use Jira, Jenkins, Skype, Sonar & Github.
An important part of the agile methodology is the definition of roles. Usually, we will have at least the following:
- Product Owner: The responsibility of the Product Owner is to write user stories and prioritise the backlog. This role must be on the client side. If necessary, the outsourcing company can form the Product Owner and accompany him to be independent.
- UX Designer: A UX Designer is responsible for implementing interactions in the front-end application and to define the style and graphics. Works closely with the Product Owner. This role can be on the client’s side or from the outsourcing company.
- Team Lead: The Team Lead is usually from the outsourcing part. Because the relationship with outsourcing has to be flexible, it may happen that the Team Lead or technical project manager is on the client’s side. In this case, you also need a Team Lead from the outsourcing’s side to fulfill the functions of dialogue.
- Developers: The Developers can be both client and outsourcing. The idea is to outsource without losing intellectual capital or control over the core of the application to develop. For collaborations based on modules or applications uncoupled, intellectual capital is the source code.
- Internal & external QA: To ensure that the quality of the deliverables is correct, there is the figure of QA (Quality Assurance). He needs to be part of the outsourcing team in order to test the user stories that are delivered to the customer and make sure they are free of software bugs.
Once that the roles are defined, we talk about the tools to be used. We recommend working on a framework contract where the procedures and the object of development are defined. It is also important to define how agile works by highlighting the use of collaborative tools to have the greatest visibility during the whole project. Remember:
It is an agile relationship (frequent commits, test coverage, continuous integration, automated deploy, full transparency)
Step 2 – scoping
The starting point of the project is the Roadmap. Knowing the purpose of the development and setting milestones we want to achieve is imperative.
From the Roadmap, the Product Owner will write user stories that are deliverable work units.
After defining user stories, the team has to give its estimate. The product owner sets a date for a selection of user stories (sprint) that are prioritised based on the business value and time (cost).
Step 3 – Approval of supplier
This is perhaps one of the most critical steps for the project. Just a tip, an agile company with projects that are technically verifiable is approved. The approval itself is fulfilling some points:
- Frequent commits. It is to see progress at all time.
- Coverage unit and integration test. Distrust companies that do not master this material. Without unit test, agile simply does not exist.
- Continuous integration. The development process should be subject to validation at all times.
- Auto Deploy. The pipeline deploy must be implemented and operational. The customer goes to test the development clicking on a button.
- Technical excellence. DRY YAGNI, Design Patterns, SOLID principles, Domain Driven Design… make the difference and define the functional scalability, this is how fast functionality can be delivered.
- Scalability. Ability of the company to absorb more workload or to hire specialised resources (Designers, Maquetadores, Backenders…)
It is advisable to contact at least 3 outsourcing companies.
Step 4 – pilot project
Once you have completed the above steps, you can plan a first sprint “Sprint 0” where to get quick feedback. The “Sprint 0” has to be a short sprint, no more than a week. One has to be very careful to verify the compliance with the agreement of the supplier. Although it is very important to see the skills of the team and be sure that the communication is correct and that each member is doing his job, it is more important to observe the attitude of the whole team and how it addresses impediments.
The most important metric is definitely the progression of the team. From my experience, no project has begun with positive results. But what is wanted and appreciated is that the team learns quickly and that this knowledge is assimilated properly.
Only in the case of a complete fail coupled with an inability to admit mistakes and unwillingness to learn, we will make the decision to terminate the relationship. A withdrawal time, especially at this early stage is preferable to maintaining a relationship.
Step 5 – production
This step is after the pilot project and once that the integration period of the customer and the outsourcing team is done. The management itself is an agile project. There are many methodological tools to monitor progress, deviations, etc..
One of the important aspects once the computer is running is scalability.
How much can we grow per month? How long does it take to be more productive? These issues must be dealt with the outsourcing team in order to have a clear idea of which is the growth rate.
In conclusion, note that agile offshore has grown a lot over the past decade, the most conservative statistics show that more than two million jobs in IT have been contracted by offshoring. Many of these jobs have been engaged in traditional ecosystems such as China or India. 43% of the IT sector in Europe/USA has outsourced development companies beyond their borders. Apart from the traditional sectors such as distribution offshore (26%), offshore callcenters (12%) or research and development (38%), day by day outsourcing increases and with higher quality.
But not everything is positive. An offshore project can have high chances of failure if traditional management systems are followed. It is for this reason that in my opinion, the only way to ensure success is to work with agile methodologies, applying agile offshore. A study from the consulting firm Aberdeen Group states that the main motivation for companies in the US to offshore outsourcing a(round 82%) is the reduction of costs. However, Aberdeen also states that:
- About 50% of projects contracted abroad fail or simply fall far short of what was agreed
- 76% of businesses stated that management costs made the project economically unfeasible
- 30% of surveyed companies reported serious deficiencies in the management process (inadequate management, lack of resolution of technical locks and miscommunication)
- 51% reported that companies engaged in offshore were well below expectations.
It seems clear that despite what may be economically attractive about recruiting in other countries, without a proper risk management and an effective methodology it is largely a strategic error. For this and other reasons we recommend applying an agile methodology oriented as agile offshore outsourcing.