Knowledge transfer is critical for ensuring the success of offshore outsourcing software development projects. All factors influencing this process are widely known and usually properly managed to minimize risks. But there are several problems that vendors have little control over related to poor knowledge due to various reasons:
- No experts are available at the moment to support the knowledge transfer (“lost talent” )
- Documentation is missing, incomplete, or outdated; not all important data is under change control (“lost data”)
And, of course, we cannot ignore the human factors affecting the process. Outsourcing creates significant uncertainty for existing employees and contractors who provide services to the client organization. If not properly motivated, staff can provide outsourcing vendors with incomplete feature requests and bugs, perform deficient responsibility transfer, give incomplete access to assets (source code, configs, documentation, etc.), or delay knowledge transfer. Generally, this can cause decreased efficiency in service delivery and possibly introduce operational risk.
We at Auriga have come across such difficulties in various projects. Whether it was porting an old-timer application to another platform or giving a second life to an abandoned solution, we have plenty of practices in place to manage all of such difficulties.
Our engineers’ strong academic backgrounds and knowledge-sharing abilities help them to deal with the “missing data” issues by applying methods of reverse engineering (using the licenses belonging to our Customers). Clear communications plans, initial on-site workshops, frequent feedback, and on-site coordinators are key to avoiding the pitfalls associated with “human reasons.” Below, we offer short descriptions of some typical missing data difficulties we have experienced.
Project Examples
- Our company is responsible for the entire application side of new patient monitor development for emerging markets. At the very beginning, the customer expected that our engineers would use one of the older monitor models as a prototype for the newly developed product. A lack of experts and documentation on the customer’s side forced the Auriga team to perform reverse engineering while porting to another platform. Very tough deadlines and the general decision to change the HW platform in the midst of the process made the project more challenging. Development of the new application started right after the SW prototype was demonstrated to the customer. Embedded Linux was chosen as the target OS based on performance testing and an investigation conducted by Auriga.
- Auriga’s engineers were tasked to enhance the abandoned Blackberry application with new functionality. The application experienced various bugs coupled with performance drawbacks. Giving new life to the product was tangled by the incomplete documentation and loss of all key experts. Our engineers had to collect the information bit by bit from various sources. In three months, the Auriga team fixed a large number of problems, performed code refactoring, redesigned architecture, increased performance and stability, as well as added a number of new features. The on-site coordinator on the customer’s side and the SCRUM methodology with two-week sprints allowed the team to control the actual development process and provide necessary change requests in a timely manner.
- Auriga enhanced the embedded software of the customer’s compact weather stations, a hardware device running an embedded OS integrated into the Blackfin processor. At the start of the project, the customer had a dozen different versions of the product experiencing various bugs and configuration issues. Our task was to redesign the product to one stable version; unify the firmware configurations for all weather stations; fix bugs to synchronize various threads running to process sensor data, network connections, etc.; and perform the project quickly in the absence of key experts with proper knowledge of the product. The project was performed under SCRUM methodology with two-week sprints. In addition, the Auriga team was tasked to perform an R&D investigation to consider migration to new software and/or hardware equipment for the further maintenance of the solution.
- Our customer—a US-based energy-saving company—tasked Auriga to enhance their existing desktop solution and port it to a new web-based platform. The product presented a set of desktop applications (around 25) varying from internal client databases to energy-saving efficiency calculation tools. Our engineers had to fix the existing bugs first and then concentrate on enhancing the security aspect of the system by transferring the whole functionality to the web. The challenge was to find experts for the outdated application developed by various teams over the last 10 years. Our solution included a single Delphi expert coaching Oracle specialist, reverse engineering and algorithm research, and knowledge sharing with engineers inside the company. To enhance the solution productivity (there were hundreds of users using the application daily), automated testing was implemented.