Translate

Thứ Bảy, 26 tháng 7, 2014

Six Ways to Get Excellent Software Outsourcing Results

You have probably heard the stories.
Software that does not work. Software that does the wrong thing. Money paid to set up an offshore team that never produces any software. Can these outsourcing nightmares be avoided?
Of course, but it takes good management of your outsourcing. Whether you’re outsourcing to India orArgentina, location isn’t as important as effectively managing your team to promote innovation and make your project a success.
The two biggest fears of outsourcing that I hear from prospects and clients are the fear of selecting a bad outsourcing partner and the fear of not managing their work effectively. Let’s assume you pick a great team. Even then you may still have lingering worries about getting your software developed quickly.
Here are six strategies you can implement to effectively manage your outsourcing and get reliable results.

1. Milestone Tracking

Your software design and plan for outsourcing should include some estimating and scheduling. The outsourced team should commit to dates for the completion of the milestones. Define your development milestones so they occur frequently and make corrections if they are not being met.

2. Monitor Outsourcing Progress Daily

No news is NOT good news. You need to communicate on a regular basis with your outsourced team. This should occur almost everyday. You should have regular email or conference call communication to make sure things are going well and that unresolved issues are not blocking progress.

3. Continuous Builds

Put a system in place to re-compile and build your software every time a developer checks in a source file. This detects errors and problems as they occur so they can be fixed quickly. This avoids a build-up of problems that often plague integrating the work of multiple developers and delays the software release. Open source software like cruise control will automate the continuous build process.

4. Integration Testing and Quality Assurance

Testing of the individual software modules by the outsourced developers is not enough. You also need to test the entire system to make sure your users will experience high levels of functionality and quality. Comprehensive testing requires automation to check all paths through the user interface. A full QA process also verifies the software behaves well when users make “mistakes.” You need both to make a good impression with your users.

5. Collaboration for design and problem resolution

OK, things are going great but then there is an issue. The developers may not understand what you want a particular software feature to do. Or they may have implemented a feature incorrectly, or in a way you did not expect due to an ambiguous specification. This happens all the time. If the engineers are working in your office then you just meet with them to resolve the issue face-to-face. Of course, this is not possible when the engineers are thousands of miles away across one or more oceans.
But with the Internet you can get pretty darn close. An email or instant message conversation can often resolve the issue. Using the telephone is also an extremely useful tool and with VOIP software like Skype the communication cost is zero. The important point is that the tools are available to make long-distance collaboration a reality and enable extensive use of outsourcing to be practical.
For complex software development projects, team visits are invaluable. These visits are not for the resolution of specific issues but build greater understanding between the engineers and others assigned to make the project a success. Visits by team members to each other’s country is recommended for maximum understanding and team bonding.

6. Knowledge Management and Retention

You provide a specification to the outsourced team. Issues are resolved and clarifications are made. Then the software is delivered it works well. But what if the outsourced team leaves the picture? Will you be able to pick up the software and make changes efficiently? Your answer is yes if you have gained the knowledge of how the software is written.
Any company that is concerned about knowledge management must have a core team here that is responsible for understanding how the software works. This knowledge can be gained by working with the outsourced team during development and by writing technical documentation describing the architecture and workings of the software created by the outsourced team. Sometimes, the outsourced team creates this documentation.
How can you know if your outsourcing is working well? One company I know, examines the source code produced by their outsourced team on a daily basis. Although this creates a deep familiarity with your software, it takes a great deal of time and seems like overkill.
Instead, establish an effective outsourcing management process to detect if your outsourcing is running into trouble so you can quickly respond and make changes.
Be clear about your end goal. You need to start with the end in mind. That goes for both the behavior of your software and the process you use to manage your outsourced development.
Source:
http://www.linkedin.com/today/post/article/20140710135718-1611-six-ways-to-get-excellent-software-outsourcing-results?trk=object-title

1 nhận xét:

  1. Thanks Kiên for a helpful article. By the way this link is dead, may I suggest the link from my blog as a replacement?

    Trả lờiXóa