Improving coordination of outsourced development
Near and offshoring present major challenges for project coordination. And the more complex the project and the greater the distance between the client and the developers, the more demanding those challenges become. The task is to coordinate the distributed development and integrate it into a structured overall process. The foundation for this is a common understanding of the product and objectives among all parties involved in the development process, as well as system integrity across all process steps and organisational tiers.
System analysis + system design = system engineering
System engineering is a multidisciplinary approach aimed at simplifying highly complex nearshore and offshore projects, and comprises system analysis and system design (see Fig. 1). The analysis derives the requirements for all sub-systems and individual components from the requirements for the overall system. Based on these functional specifications, the design team draws up various models. In system engineering, first the software architecture is optimised and then all functional requirements for the individual development teams around the world are specified.
Fig. 1: System Engineering Process
The software engineer as translator and facilitator
The system engineer sits at the interface between the client and the developers. This demanding position calls for both a high degree of technical expertise and strong communication skills, as all business-related requirements have to be translated into technical specifications for the software developers. A system engineer must therefore understand the languages of the various specialists, possess a deep knowledge of the applicability of the software and have a strong command of methodology. This role can also be performed by an external specialist who observes and evaluates the situation and processes from a different perspective – an important prerequisite for the facilitator in complex projects involving people with a wide range of interests.
Performing tasks in parallel without duplication
In order to adapt the system engineering to the specific circumstances in a company, the individual phases of the development process must be separated and clearly defined; for example, a team works on specification and another on design simultaneously. A coordinated sequence of defined measuring points monitors the progress of the project to implementation, avoiding duplications in the parallel development and minimising the risk of error.
Simpler collaboration in near and offshoring
System engineering creates clear structures that simplify and improve organisation and cross-border collaboration by unambiguously defining all tasks, skills, processes, system limits and responsibilities, and ensures full documentation of all projects and processes. The documentation, which is essentially a by-product of the process, is important for future projects and forms the basis for the certifications necessary in an increasing number of industries. The clear structures enable optimal coordination of even multi-level shoring models with different teams, and individual project components can be reused or adapted in later projects.
Conclusion: software engineering pays off
More and more companies are turning to near and offshoring to develop quality products despite cost pressures and innovation competition. With system engineering, the work of the distributed development teams is coordinated and integrated into a single process. This is the basis on which to exploit the benefits of outsourcing.