SOFTWARE DEVELOPMENT

There are many ways of engaging with an outsource partner for the first time. A common entry point is to undertake a “taster” project which is often done at a fixed price. Based on the success of this trial the relationship may develop and a committed team may be set up. Companies more experienced with working with an outsource model may start immediately with a committed team. This document discusses some of the elements that need to be considered when setting up such a team. On the client side there is an emotional aspect involved in making a committed team work successfully in that that the client needs to consider the team as if it were made up of its own employees. It is important to select the initial team members (allowing the team managers to progress to doing this), and to communicate regularly with them. Visiting the team at least twice a year is also recommended. Clients often retain their own in-house development teams to work alongside external committed teams. The need for this co-located presence is determined by many factors, including the way in which the committed team works with a client‟s on-site team. The most likely time that an on-site presence may be required is at project initiation and to support User Acceptance Testing.

Roles within a Committed Team

A likely committed team structure is discussed here, although the precise roles and organisational structure would be refined during the early stages of an engagement. The following outlines the roles which are usually required when supplying a committed team within an extended enterprise model. RawafedTech can supply some committed teams with Business Analysts and Technical Architects, in addition to the more standard software engineers, testers and project managers.

  • Team Manager

    Based with the committed team

    Human Resource focused

    Maintains staffing levels

    Measures team and individual performance

    Initial point of escalation for the team leaders

    Enforces effective communication between Committed Team and Client Management Team

  • Client Project Manager

    Plans, initiates and closes projects

    Distributes work to the project teams

    Deals with risks, issues and dispute resolution

    Tracks progress against plan (although some day to day operational matters are delegated to the team leaders)

    Reports progress to Client parties

    An individual within the Client team structure needs to take formal ownership of the committed team. This can be a project manager but could also be the systems development manager. This person would be the prime liaison point for the RawafedTech Engagement Manager

  • Team Leader

    Based with the committed team

    Leads a team to ensure projects are completed to deadline and are high-quality

    Plans and tracks software projects following appropriate development process

    Actively manages project risks

    Communicates project progress and issues to the Team Manager

    Hands-on software development

  • Developers/Engineers

    Produces software designs from requirement specifications

    Cuts Code

    Carries out unit testing of software

  • Testers/QA Engineer

    Produces test plans and detailed test specifications from system requirements

    Carries out manual and automated testing of software

    Produces clear and accurate test and defect reports

    In RawafedTech‟s experience Testers/QA Engineers should be allocated to the committed team in a ratio of 1:4 or 1:5 with development staff

  • Requirements Authority

    Function is principally the responsibility of the Client, Produces System Requirement Specifications and Use Cases (or equivalent), In some of RawafedTech‟s committed client teams business analysts are provided, who work with the client‟s business analysts. In this arrangement initial client contact is driven through the client‟s business analysts.

  • Technical Authority

    Function is principally the responsibility of the client

    Defines the architectural roadmap

    Produces Technical Architecture Documents (or equivalent)

    Defines the development tools and environment

    Provides technical support and technical quality control throughout projects

    In most of RawafedTech‟s committed client teams a technical consultant is nominated to work with the client‟s technical architects to understand the client‟s guidance. They are then able to enforce and support the teams locally. In a larger committed team this can be a full time role

  • Quality Assurance Authority

    Function is principally the responsibility of the client

    Defines and agrees the quality standards

    Works with the team to ensure that deliveries meet the agreed quality standards. Maintains the veto on the “fit to ship” authorisation

    Invariably, test resources are provided in RawafedTech‟s committed teams. For smaller committed teams the QA resources are embedded within the developer teams and where this happens one of the test resources acts as the lead and is the principle contact point for the Client QA Team. For larger teams the test resources are a separate entity supplying a service to the development projects.