Interview

Best Practices for Outsourcing Software Development

  • 14 December 2020
  • 0 replies
  • 166 views
Best Practices for Outsourcing Software Development
Userlevel 6
Badge

Are you thinking of contracting a partner for your AIMMS development project or outsourcing a new IT initiative in your company? Many organizations contract external partners who often act as an extension of their team. We recently spoke with Madhu Krishnappa, Senior Test Specialist and Agile Practitioner at DevOn, to get his tips on what makes outsourcing and co-sourcing successful.

Madhu has worked in agile software development for close to 15 years and has been working with AIMMS for 3 of those years, helping us accelerate the development of our GUI builder and WebUI features.

Madhu, outsourcing generally involves a great deal of trust between both parties and building that trust is not always easy at the beginning. How do you do it?

It all starts with creating a joint understanding. Your outsourcing partner should understand your vision – that is, why you need their help, what you are looking for and where you want to go. It’s key to explain your problem statement clearly. At DevOn, we typically form a small team to catch up with the customer and build rapport from the very beginning. Then, we built a high-level overview of how the journey is going to be. We draft up working agreements and manifestos to get clarity on both ends and align over a common vision. It’s also important to bond as a team.

DevOn is big on agile and there’s been a general trend towards agile in software development. Do you think agile and outsourcing are a good combination?

Yes, but agile is not a magic pill. Outsourcing and agile will work, provided the mindset is right. We use agility maturity models to assess whether this approach will work with the customer. If you’re considering agile, I would recommend that you get training for your team.

What are the typical issues, let’s say, that impede the success of an outsourcing project?

Well, the team is human. Patrick Lencioni defines 5 (typical) Dysfunctions of a Team in his book, which carries the same title. These are:

  • Absence of trust
  • Fear of conflict
  • Lack of commitment
  • Avoidance of accountability
  • A lack of attention to results

For any project to be successful, outsourced or not, managers and leaders need to closely consider those dysfunctions and take steps to address them.

Bruce Tuckman’s forming–storming–norming–performing model of group development is also helpful to assess how your team is performing. All teams go through these different stages: forming (getting to know each other and their tasks/roles), storming (the group starts to voice their individual opinions, conflicts may arise), norming (team starts to work together and collaborate around a common goal), and performing (the team is motivated, knowledgeable and starts delivering results). Getting to the performing stage is a journey. A scrum master can help the team move through these phases. Once you’re aware of them, you can help get the team on the right path.

What are some other best practices you can recommend for those considering outsourcing?

I would recommend that companies choose partners that:

  • Choose iterative development: take features to customers faster to find out if they meet their need.
  • Keep a constant communication stream: frequent interaction and demos are always better to feedback early on and correct the course when needed.
  • Practice extreme programming: make sure everything is tested well
  • Take retrospectives seriously: look at the human aspects as well as the features shipped. Assess actions and let people speak up. It’s not just product, it’s also people and process. Take feedback seriously but don’t make it serious. Allow for bonding and fun along the way.

For those working with SCRUM, do you recommend a particular sprint frequency?

I would say, leave the frequency up to the team. What’s worked for us is 2 weeks. You can start with 1-2 weeks, try that for 1.5 months and make changes accordingly. That way, you can find the ideal duration.

Check out these additional resources to make your AIMMS project a success:

 


0 replies

Be the first to reply!

Reply


Didn't find what you were looking for? Try searching on our documentation pages:

AIMMS Developer & PRO | AIMMS How-To | AIMMS SC Navigator