Outsourcing for software development started with the outsourcing of small, well defined slices of large scale projects. The key here was “well defined coding and testing tasks”. The nature of software solutions, methodologies used and kind of work being outsourced is changing dramatically and with it there is a significant change in “critical success factors” in the software outsourcing domain.
While legacy and large systems remain, the overall trend is that applications are getting smaller, function specific and agile. With the growth of web applications, there is pressure to do faster and iterative development. Broadly speaking, the changes are all oriented towards agile development requiring different skills from the team.
This article identifies and explains what kind of dynamism and sensibility is more and more required for a successful development team in the new world.
Big picture understanding
The more the team understands the end customer, the problems to be solved and results expected, the more successful the project will be. Why? Unlike earlier when all the requirements were strictly defined and the team simply had to stick to them, nowadays there are many questions that come up and many items have to be prioritized on the fly – all of it requiring a big picture perspective. If your development team does not understand the big picture there would be significant time loss and frustration associated with increased hand holding, reiterations, and ineffective implementation.
Empowerment and Support – not management
In the old world – the manager took responsibility for breaking down the tasks and managing people with their deliverables. In the new dynamic world that is a recipe for failure (or at least a lot of delays and frustrations). What is needed in the new dynamic setup is creation of broad ownership areas so that team members can take charge of how to best contribute to get a better result. The manager title then becomes obsolete and the experienced person becomes a guide, coach, and a hurdle remover.
Visualization and Attitude of Questioning
Foresight – in anticipating how pieces fit together, what is really important and why, is increasingly more important in delivering successful projects. Courage – to question why a certain approach is used or why a requirement is important and the ability to suggest alternate approaches is what defines successful projects. It is now important that the team engage themselves in the end result, question and ideate better ways.
Empathy and Communication
Today only those products succeed that work intuitively and without any glitches. It is no longer enough to do what you have been asked to do. Caring and ownership is now defined by how much the team can feel the pain of the end customer if a functionality does not operate in the best and easiest way possible. Beyond the empathy towards end customers, the team has to be extremely good at communication. If communication is not proactive and meticulous the effort required on the client side can easily offset any benefit in outsourcing the work.
Today, to succeed development teams have to go beyond strong technical skills and embrace qualities of visualization, ownership and communication.