Everyone dedicated to project management software (whether a startup, an established company or a company that develops software for others) at some point has contracted with another software company. You can go further in this statement and in my case, I can say that …
20 years dedicated to software development has not been any company for which I worked where not trust the development of a software component to another company
… Whether by the added value brought to us in the form of expertise and also by the need for resources.
Several types of outsourcing and the concept of BPO is almost as old as the computer. What then differentiates an agile outsourcing other types of outsourcing? Well … the agile label was perhaps too used to abuse. Not everything is agile and one thing is “do agile” and quite another to be “agile”. The agile methodologies have in common the use of short iterations where the feedback is very important. These adaptations inspired agile to apply this philosophy … we eg marketing agile, agile BI, agile infrastructure …
A good way to define an agile outsourcing may redefine the agile manifesto from an outsourcing perspective:
Individuals and interactions over Processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Simply applying these 4 principles effectively, we can achieve higher performance collaboration with the subcontractor:
- Prioritize people and relationships over processes and tools results in making the offshore work as a real extension of the department involved, giving developers visibility both sides with meetings and modern methods of continuous communication. Develop a collaborative and trusting relationship between the external and internal equipment culture is fundamental. We must make sure that the objectives are clear to everyone, transparency, visibility and communication are key.
- Prioritize software running on Documentation in all its forms is very important and means that each time, the client must be able to see the development installed on a machine test, staging or demo … It should be noted that without good coverage of tests (unit, integration and functional) and a system of continuous integration and automated deploys this is a chimera.
- Prioritize collaboration with the client on a contract negotiation is also a drastic change. The project is based on sprints that are decided with the client, the client prioritize and decide the scope of each user story or functional increment. Older systems functional analysis and development of a closed period of time were actually quite unfair, or customer paid much more for something that cost less or the developer was negative for not knowing every detail or have disabilities … This point does not conflict with the need to master agreements to define other aspects of the relationship with the customer, these contracts are still needed. The change is that once defined the framework contract, the project is estimating as it takes.
- Prioritize the ability to respond to change over following a plan translates into being able to meet customer needs if it, based on the feedback of the project decides to pivot or change functionality. In practice, it is right and necessary to draw a roadmap for the product and give the corresponding amounts in order of magnitude, but to no avail draw a comprehensive roadmap of one year for example. As developers we can not predict the future and not customer but if we can be prepared for that if we have to change technology or the entire front-end, costing as little as possible. This also has a very technical backdrop and no agile development is difficult if not impossible.
Some experts even stand in the next three years there will be an increase in outsourcing firms between 10 and 30%.According to forecasts by international consultancy AT Kearny, given the complexity, the need to incorporate new technologies and adapt to new challenges …
… Outsourcing is one of the sectors that evolve in the future.
Finding the right partner in each sector or how to anticipate costs and calculate risks are evident as a very important part in managing software projects, not to say that it is an indispensable role in the skills of a project manager . In the end, it is clear that outsourcing is a necessary strategy and that is when no longer wonder whether or not outsource …The question is where hiring services development, how to hire and who will undertake this strategic process for our company … In the next three years, words and offshore outsourcing will sound much.