OFFSHORING & OUTSOURCING
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.
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.
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