After analyzing the hiring of external resources, either by a startup own product or an enterprise software development, etc … the logical question is Who to hire? Obviously the answer to this question will be determined by the type of company that hires the services. You can raise the following scenarios:
- Startup self-funded.
- Startup from the first round of investment
- Company that develops software for others
- Consolidated company IT department
- Consolidated company without IT department
There is an important point in all of them and it seems necessary to reduce costs without compromising quality when embarking on the adventure of outsource development. Many companies have thought outsource or have outsourced to an offshore or delocalized company located in countries where resources are cheaper. Today that
advances in collaborative tools and connectivity, make hiring in person becomes an option to take into account.
Following along the lines of optimizing resources, work with remote resources is not only feasible but is also productive and economically desirable. Since the location is no longer a problem to become an advantage prefectamente can apply the process of choosing an outsourcing company to a delocalized company in India, Vietnam, Sri Lanka, Argentina, and Romania …
It is clear that from a purely economic assessment, it is profitable to hire resources where these are literally less than half an appeal in Europe or USA.
There are yet powerful for not hiring an offshore in traditional or non-agile, based on specifications and project documentation reasons.
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.
We called the agile development process applied in offshore agile extended enterprise.
To apply agile offshore and considering that each of the different types of companies have different needs, but the order of magnitude will vary … (number of resources, project size, budget available, etc …) can find similarities in the design process of hiring external resources in another country, working safely, giving a high level for project success.
Our offshore agile process consists of the following steps:
STEP 1: DEFINE THE METHODOLOGY
For numerous reasons, we will use an “agile” methodology, we do short iterations, probably a week and how to work should be transparent and smooth on both sides. The use of collaborative tools should be defined and bounded.In Apiumtech use Jira, Jenkins, Skype, Sonar, Github.
An important part of the agile methodology is the definition of roles, in the case of purely technical work between the two companies will have at least the following:
- Product Owner
- UX Designer
- Team Lead
- Developers
- Internal and external QA
The responsibility of the Product Owner is to write user stories and prioritize the backlog. This role must be on the client side, though, if necessary, outsourcing should form the Product Owner and accompany him to be independent.
The figure of UX Designer is responsible for implementing interactions front-end application and to define the style and graphics. Works closely with the Product Owner. This role can be in the client or outsourcing.
The Team Lead is basically the part outsourcing partner. Because the relationship with outsourcing has to be flexible, it may be the case that the Team Lead or technical project manager is on the client. In this case, you must also be a Team Lead in the part of outsourcing to fulfill the functions of dialogue.
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.
To ensure the quality of the deliverables is correct, there is the figure of QA (Quality Assurance). There needs to be within the team outsourcing this figure in order to functionally test the user stories that are delivered to the customer receives free software bugs. When no explicit QA is the own development team which assumes QA tasks when the user story is completed.
Once defined the roles involved in the project and the tools to use is currently drafting the relevant contractual documents. We recommend working on a framework contract where SLAs are defined the procedure and the object of development. It is also important to define how agile work by highlighting the use of collaborative tools to have the greatest visilibilidad the project at all times. 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 development and milestones we want to achieve is imperative.
From the Roadmap, the Product Owner will write user stories that are deliverable unit work.
After defining user stories, the team gives their estimates … outsourcing is when the product owner sets a date for a selection of user stories ( sprint ) that are prioritized 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: it an agile company with projects technically verifiable success. The approval itself is fulfilling some points:
- Frequent commits. It is to see progress at the time.
- Coverage unit and integration test. Distrust of companies that do not master this material, unit test, the agile simply does not exist.
- Continuous integration. The development process should be subject to validation at all times.
- Auto Deploy. To view the progress (working software) are not necessary technical systems or responsible for the release. 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 can rapidly deliver functionality.
- Scalability. Ability of the company to absorb more workload or to hire specialized resources (Designers, Maquetadores, Backenders …)
It is advisable to contact at least 3 companies outsourcing.
STEP 4: PILOT PROJECT
Once you have completed the above steps can plan a first sprint Sprint 0 or where to get quick feedback. The Sprint 0 be a short sprint, no more than a week where one has to be very careful to verify compliance with the agreement with the approval of the supplier. Although it is very important to begin to see the skills of the team and that communication is correct or that the roles doing their job … is more important to observe the attitude of the team address impediments, on the other hand, inevitable until the equipment is not rolled.
The most important metric is definitely the progression of the team. From experience, no project has begun with positive results. What to appreciate 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 an unprofessional relationship in which the cost of customer dedication makes unfeasible collaboration and ultimately the project.
STEP 5: PRODUCTION
After the pilot project and once the integration period of the customer and the outsourcing team. The management is itself an agile project. There are a number of methodological tools to monitor progress, deviations, etc ..
One of the important aspects once the computer is running is scalability, ie, if we print speed development … How many resources can grow oursourcing month? How long does an appeal to be productive? These issues must be dealt with outsourcing in order to have a clear idea of which is the growth rate.
In conclusion, note that offshoring has grown steadily over the last 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 call centers (12%) or research and development (R & D) in 38% … and partly due to the thrust of the phenomenon startup every time is outsourced more and better.
But not everything is positive, a project offshore has very high chance of failure if traditional management systems are followed. It is for this reason that the only way to ensure success is to work with agile metodolgías applying Offshore Agile. A study consulting firm Aberdeen Group states that the main motivation for companies in the US, around 82%, is the reduction of costs. However, Aberdeen continues 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 than recruitment in other countries, so without proper risk management and an effective methodology is largely a strategic error. For this and other reasons we recommend applying an agile methodology oriented as agile offshore outsourcing.