Developing and testing software in-house may seem like the best solution and, in fact it is sometimes. However, if such a decision was so good, there would be no place for the huge IT outsourcing industry which is rapidly growing and advancing. Entire economies of certain countries are built around outsourcing and offshoring numerous solutions. How did this field get so demanded and popular? There are various reasons why outsourcing projects may seem like the obvious solution. Maintaining internal teams is demanding, expensive and overfilled with obligations, and there are times when right people you may require for a project are just out of reach and this increases time required for searches and delivers more pain like employee relocation, even if you have managed to find a decent candidate. Developing in-house requires more time and resources and the investments may not even pay off at times.

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.