Saturday, September 29, 2012

Five execution strategies for outsourced product development

In the world where outsourcing is the norm, the percent of business application  outsourced for custom development, maintenance and support is approximately more than 70% in my view. This is quite a huge change in the last decade or so. With all the positive impacts it brings with cost reduction, flexibility, reduce time-to-market, it has also given birth to challenges in quality of deliveries, communication gaps, overheads etc.

The most important challenge in outsourced custom application development type of engagement is  to "Manage Design & Architecture" of applications with respect to completeness, aligning with principles & guidelines, value realization, and ensuring robust application in production.  How do teams working Onshore-Offshore models ensure the design is well built, architecture is well communicated, quality is ensured, and discipline is maintained? How do teams organize to ensure Architecture & Design function is well represented and given due weight-age? Why do customer's see delay's in delivery for small changes? These are some questions that force customers and their vendor partners to re-look at their execution model.

From the perspective of software methodologies followed, every customer has their own customized processes that are followed by vendors with minor changes. Many still follow the standard water-fall kind of model or some hybrid model to suite their working culture. There has been noticeable rise in adoption of Agile methods by organizations, they are yet to be in mainstreams in outsourcing model. Here I would  focus on strategies that are proven to improve outsourced execution capabilities, that would result in successful deliveries for outsourced vendors.

  1. Get the Skill mix right: For custom development engagements, having the right skill-mix is very important to ensure your start with right foot forward. Always ensure you have engaged Solution/Application Architect upfront at the start to benefit in the long run. It is often noticed that Business Analyst are performing the role of Solution Architects due to unavailability of people. It is this role that is key to map requirements to implementation making sure we align to business needs.It is recommended for complex engagements to have Solution Architect working close to business, while Technology Specialist working with Offshore teams.
  2. Get the Method right: By Method I mean method of delivery for Architecture & Design process. Architect need to use innovative ways to represents and communicate design to the team, business and other stakeholders. Architect need to take lead in modelling design decisions, technology selection decisions, highlighting risks, challenging business on the requirements if needed. All needs to be documented and shared to stakeholders. If one follows the agile approach the design is part of the implementation, the validation happens with implementation, but it also needs agile modelling to help communicate design approach and decisions to remote teams. 
  3. Get the Discipline in the team: At the end of it all, it is people that make the team, their collaborative and synergy is going to bring the success to the engagement. Hence it is very important to build discipline. This needs a leader, coach, mentor and more importantly passionate person to imbibe good practices to his team. Introduce good practices for requirement management, source code management, build management, collaborative design and prototyping, release management, and automated testing. It requires discipline and motivation in the team to do successful execution. Discipline brings common focus and build synergy. But it is the most difficult job as a leader.
  4. Get to the Hybrid-Agile approach: Agile approaches have begun to be accepted by outsourcing vendors. Adopting pure agile is difficult when customer and vendor are not ready for it. Often the customer team is not ready for agile approach, their processes are too rigid and not ready to take the plunge. Many customers are in this situation currently, but to improve value of outsourcing it is recommended to adopt a hybrid-agile approach. This means having shorter cycles of executions called iterations, requirements in concise documentation, automated test and build process, regular customer feed-backs on deliveries, complete visibility of effort spent. Often the customer teams are rigid and not geared to work in agile model. This has to change to persuade vendors to work more with agile practices that results in better value-realization in outsourcing.
  5. Get the Hands-On Architects: Role of Architects need to change to include more hands-on approach with the teams. This is very important in the starting phased where the design is shaping-up and decisions are made for long-term outlook. The average-experience of teams by outsourced vendors is relatively less, it puts much pressure to give a good start in the starting phases. Having hands-on Architect in very important in critical projects. Architect has to define and develop interfaces and modularize the important architectural components, design framework fundamentals and guidelines, establish strategies for important requirements and cross-cutting concerns. This reduces pressure on developers who can focus on implementations to meet functionality.
 In my experience working as Architect for vendors, I find above strategies very effective. Value realization in outsourcing would be high when the quality of delivery is good with respect to implementations. Most vendors try to maximize efforts, focus to improve good perception of engagement, lead customers team to be in comfortable zone, but take a relaxed approach to quality of deliveries. It is for customers to build framework for performance evaluation to keep vendors on toes. Adopting above practices will benefit both customers and vendors to realize win-win relationship. At the same time vendors need to respect people skills and adopt people centric policies to have consistent results. Eventually these strategies have potential to be strategic competitive advantage.

I do invite comments on the topic..

1 comment: