In an previous article of this blog, I wanted to explore some important topics when some company choose a partner with whom to outsource development when necessary. Now, we will see that once past the period of approval, it is necessary to use continuous integration with some variations to integrate with an offshore safely and effectively.
This is the variation of continuous integration we used in Barcelona to work with Vietnam… And it works !
Summary of the “agile” process to outsource safely
In the post, he speaks from a technical perspective. The goal is to provide accurate methodological tools to reponsables.
Once you get to the team, as would Tom DeMarco … it becomes a “jewel team”, we can climb a layer and start focusing some “agile” practices that help to work remotely with the outsourced team.
CONTINUOUS INTEGRATION
Already today there are few development companies that have not implemented this practice. The initial creator, Martin website Martin Fowler explains that …
… continuous integration is to make Automatic integration of a project as often as possible in order to detect faults early.
It is no coincidence that the same Fowler, later wrote in his famous article on Agile Offshore a major exhibition dedicated to the continuous integration:
To avoid headaches at the integration between your company and the offshore, use continuous integration.
INTEGRATING BARCELONA AND VIETNAM
The starting point is two teams, 20,000 miles away, with different languages but speaking English. Different cultures, different skills.
Barcelona is responsible for customer contact, meetings, etc … and product management.
Vietnam is the software factory.
How to make this work ? These is the guideline we follow:
- We are agile. We sprints for two weeks where we have previously agreed scope.
- Working with visual requirements. In fact much more specific for everyone here understand it perfectly.
- Using Jira, the client knows in real time at the point of sprint where we are.
- We use Confluence for project documentation. Everyone knows where to find product information but also and even more important: technical information.
WE APPLY CONTINUOUS INTEGRATION WITH VARIATIONS
The next practice that allows us to work remotely is as stated above, do implement CI with steroids.
- We have implemented a corporate jenkins where projects run and pass the unit test, integration and functional.
- The quality of code is under constant surveillance with Sonarqube type tool. We require a minimum of 70% coverage of test, normal is 80%
- Deploy processes are also in jenkins to ensure we are quick to teach what we have done to the client.
- Each project has a pipeline as to orchestrate all builds
- To share the generated code as executables and resources (artifacts) have habilidado servers dependencies. Also for classic units frontend node.
- Productivity tools that help communication are very taken into account: HipChat, desktop sharing, videos, etc …
In a few words… continuous integration is not only to install a jenkins … Actually is that all members of team, both in Barcelona and Vietnam, are integrated throughout. Integrated not only at the code level but documentation, process, methodology and overall illusion. We love what we do.