Outsourcing Your ActiveEngine. January 28, 2008
Posted by ActiveEngine Sensei in ActiveEngine, Business Processes, Design Patterns, Problem Solving.Tags: AcgtiveEngine, outsourcing management, outsourcing pitfalls
trackback
First of all, never, ever look for third party tools will magically implement your core, proprietary processes. If your processes differentiate you from your competition, then by definition you will not find them boxed up in a software package. You want an AR system, go buy one, as AR will no give competitive advantages as it just needs to function appropriately so you collect the bills.
The same holds true for your core capabilities. Outsourcing programming activities to third parties can be like paying someone to train for a marathon for you. Unless you have involvement and control of the development cycle you will never have a working product worth supporting. Sure, you can find Open Source products that will perform functions for you but you still have to put them through a test cycle, and the same holds true for third parties. You have to test them as rigorously as well. In the end the success of this test will depend on your specifications and ability to communicate to potential partners in development.
This brings us to the subject of testability and verification. If you are going to have a development outfit produce something, how will you inspect it? What if they are not on site, how do you inspect then? Should you be on a mission critical application you need to sit in on the team meetings everyday you can get a feel for what is driving the productivity of the project. Many firms don’t like this, as it is disruptive to their processes but that’s their issue to resolve. Maybe if they are too ridged to accommodate that they may not be the right development partner for you. Finally, you should insist on the test team conducting their tests at your facility, with you at each step. Again your goal is to get a feel for the issues that arise – maybe they relate back to the arguments that you were privy to earlier during the development phase.
If you come through this with a third party and produce a successful launch then you can consider relaxing some of the oversight, but not by much. Proximity only breeds a higher degree of honesty. It should be easier for you to get a feel for timing of solution delivery as you will have worked with team members and be familiar with strengths and weaknesses. You may be in a position to request that a certain individual work on a project because of a good history of delivery. Who knows, maybe that person even practices ActiveEngine methods.
Sensei- I agree with you. I’m very concerned about the TopCoder model of outsourcing, let alone other forms of outsourcing especially on business critical/business model differentiating processes. I suppose the challenge is to draw the line on how to use certain types of outsourcing.
You have to consider that so many things could go very wrong when selecting third parties to implement key functions. In only those cases where the specifications are rudimentary – “Write a function to sort the names of in a list” – can you expect to hand the work out and expect quality. But as you may know, most systems are built upon foundations of other systems and platforms, making it nearly impossible to farm out activities and expect software that will work as spec’ed out and to be on budget.