Software Development Team
Richard Johnson
"Use your knowledge, skills and abilities to win..."

Offshore Outsourcing Methodologies Overview

As long as Offshore Outsourcing is a progressively more complex process, a number of methodologies have been developed aiming at organization of the process. Different methodologies provide different - sometimes contrary - approaches. Smart outsourcers ask their offshore Offshore Outsourcing provider about the methodology they use. It helps to understand how the process will be organized and what to expect.

Agile methodology is the most popular and widely-used by modern Teams. The modern Agile methodology was developed in the 1990s. It is a family of software engineering methods and approaches. The basic idea of Agile is rapid adapting to changing circumstances. The methodology is suitable for Software Projects without roughly determined requirements or when requirements are likely to change in future.

Agile uses iterations during a project lifecycle. Iterations are small periods (5-10 days), each ending with an executable release of a piece of Custom Software Product which is developed. Project's progress is measured by working Custom Software Product.

Agile prefers face-to-face communication over written documents, and that is why it needs adaption for Software Projects because face-to-face contact is often impossible. Only some of Agile best practices can be used in Software Projects.

Before 2000, a number of agile methods have been created. Scrum was performed in 1986, Adaptive Software Development, Feature Driven Development, and DSDM in 1995, and Crystal Clear and Extreme Programming (XP) in 1996.

Strong>Extreme Programming (XP) Is The Most Popular Agile Method Of Software Developing. Its Main Purpose Is Reduction Of Cost Of Changes By Providing Extremely Flexible Development Process. XP Emphasizes On The Quality Of Communication, Simplicity Of Design And Code, And Software Testing (unit Tests And Acceptance Tests). The Method Encourages Programming "for today but not for tomorrow". XP defines 4 core activities within a Custom Software Development Project: coding, testing, listening, designing.

Extreme programming is often used by Teams for risky Software Projects with changing requirements.

Waterfall model provides sequential development process. According to the model the phases of the project (requirements specification, design, construction, testing and debugging, deployment, and maintenance) must follow each other. It is opposite to the Agile methodology assuming that all the phases must be passed within each iteration. Waterfall model increases risks of an Custom Software Development Project unless the project is large and complex with strictly defined requirements.

Cowboy coding is the methodology which stands for using no methodology. Developers are free to do just what they feel is right at the concrete moment. Although it seems to be inapplicable in theory, its effectiveness has been proved empirically. High resource saving is its important advantage.

Some Teams use RUP (Rational Unified Process) which is not a methodology but a framework describing the adaptable process for Teams. It covers principles of business-driven development, phases of project lifecycle, disciplines and workflows.

Process is an important component of any Custom Software Development Project. Asking an Offshore Outsourcing provider about the methodology used for process organization cannot be too careful.

Published on 5/13/2007

 

Valid XHTML 1.0 Strict  Valid CSS!