Can you apply agile methodology when outsourcing software development? Yes.
There are however a few key factors to consider, before applying agile approach to a nearshore software house.
Is your business accustomed and knowledgeable in regards to agile software development as well as agile project management practices? If not, then outsourcing a fraction of your software development efforts will only complicate the process and make it more challenging.
Agile approach requires a lot of open communication, collaboration and trust between all parties involved; the client as well as the nearshoring partner have to be on the same page when it comes to the software development process. You need at least some semblance of understanding of how agile methodology works and how it’s applied, and if you do not possess the necessary information then it’s advised to pick a partner who does have it instead as he’ll be able to assist and introduce you to it.
What if you already are have a nearshore software development partner but you’re a beginner and have no idea how to properly apply agile methodology to your current situation? Will it make the process more challenging that if you tried this in-house? Well the most obvious answer also happens to be the correct one; yes, it will be more challenging and demanding but with proper fail-safes even this conundrum can be overcome.
Sadly, factors which impair or complicate communication, collaboration and trust-maintenance have a tendency to challenge agile implementation.
So taking all of the above into consideration, what can we do to ensure not only success but also maintain a desirable cost to quality ratio? Shift focus to two key areas: vendor evaluation, agile contracts.
So assuming that we must work with an outsourced component of our product development, what can we do to help ensure success? There are two key areas of focus:
While traditional vendor evaluation focuses on process certifications, manpower and rates. Agile vendor evaluation due to its perks focuses on criteria such as:
- System quality
- Collaboration level
The above vendor qualities are tough to measure, they are however essential in selecting a vendor capable of delivering agile software development and project management, which is what a nearshoring partnership should be in an agile environment.
While these qualities of a vendor are not easy to measure, they are relevant in selecting a vendor for an agile development partnership, which is what an outsourcing relationship should be in an agile environment.
Agile software development is centred around one key aspect, building mutual trust between software developers and other parts of your business. If you however outsource software development and project management to another company, it can get pretty convoluted as you have to map mutual trust between your organization and the vendor alongside the usual process range.
Now comes the hard part, are you capable of developing contracts which treat your nearshore software-house as a partner?
It can be pretty difficult at first as most outsourcing contracts are written in a manner which focuses on the possibility of collateral damage and have little to do with ensuring the delivery of value.
I’m speaking from experience here but traditional outsourcing contracts usually prohibit change and as a direct result, encourage inflexibility – both of which are the bane of agile approaches. Furthermore, due to how the relationship is fostered, posturing as well as legal action are a common occurrence which unfortunately leads to trust and open communication erosion.
When developing agile contracts, please consider:
- Focus on processes and their flexibility instead of which specific results they bring as aiming for a specific result doesn’t allow for change or gradual improvement over time.
- Close collaboration is far more important than strict contract negotiation; your project needs to fulfil your business goal, not your lawyer’s – make him aware of this beforehand.
- Agile contracts minimise the risk of a lawsuit by maximising software development efficiency – focus on real value delivery.
- Determine what needs to be contracted and make sure people with vast understanding of how agile processes work are responsible for this step. Once done, consult your lawyer to put it in legalese.
The best practices bellow will assist in making outsourced software development more efficient as well help in fostering a working relationship with your nearshore partner:
- Minimize dependencies
- Align training, focus on common team practices and tools
- Integrate teams and work (mix in-house and outsourced teams and tasks)
- Enable continuous improvement by including outsourcing partner on customer feedback
Mixing agile methodology with outsourcing adds additional challenges to software development. However, you can minimise the magnitude of these challenges by applying more agile-friendly criteria during partner selection as well as contracting them in a manner which focuses on delivering real value, encouraging flexibility and not impeding collaboration.