Case study: A 16-member ODC running for an EU Vertical Market Software Company

keywords: 3 years' cooperation, agile development

Client's Situation

Before outsourcing to Shinetech, the client team has been developing a 100+ person-year product for many years. The product was too large and complicated, and had accumulated numerous difficult bugs that had hindered further development. The client decided to outsource the testing and bug fixing work to Shinetech at the beginning to enable their in-house team to focus on its core competencies.

More and more responsibilities assigned to Shinetech team

The efficiency of bug fixing and the fast understanding about the complicated application has driven the client to move more and more modules to the ODC teams. Meanwhile more responsibilities were assigned to the ODC team. The tasks Included creating use cases, developing requirement specifications, implementing new features, and maintaining user documents.

At the beginning when new feature implementation tasks were assigned to the ODC team, detailed requirement specifications were also provided by the client. In order to release resourced for their core competencies, the client move the task of developing requirement specification to us. Usually the specification is developed from a simple idea of the end user of the product.

Reduce bug number while implementing new feature

The following figure shows the bugs assigned to the ODC team accumulated to its highest peak on Nov. 2008 when the whole product modules were moved to the ODC team. After that, the ODC team was able to reduce bug number and meanwhile keep the bug number at a low level especially the major up level bugs while implementing new features.

bug fixing chart

The below figure indicated bugs were fixed in timely manner which enable us to reduce the total bug numbers.bugs fixing chart_2

Quality guarantee

  • Tester, developer and BA all contribute in use case stories and requirement specification development to build the same understanding to the requirement. The developer's participation in the process of building specification reduced the technical risks during implementation. And the testers' participation helps to find if the new feature may affect existing features.
  • Unit test cases are created in source code except for those user interface source code which are automatically tested with UI test tools.
  • Code review, in each sprint, half day is reserved for reviewing design document of new features and reviewing source code that have been created in the sprint.
  • Testers work closely with developers, so that defects can be reported and fixed in a timely manner.
  • Automatic test tools are adopted to test the whole application. The smoke test cases which Include key features of the application runs twice each day along with the application build process. The whole set of test cases runs once a day and it will report bugs to Jira (the client's preferred documentation and defects management platform) automatically if bugs are found.
  • Continuous integration is executed multiple times every day to find integration problems right away once new source code is tagged and released.

Three parties' cooperation

The client has another ODC team located in another place. In the three locations (client, Shinetech and the other ODC team), there are different developers working on the application at the same time. This increases the difficulties on the project. To synchronize source code on the three teams, Wandisco is installed on the servers in the three teams. Requirement specification and status of tasks also need to be shared for the three teams especially for the tasks which require collaborative efforts from every team. Wiki is used for storing requirement specification and Jira for tracking task status.

We all enjoy working in the team

The team has an excellent team spirit and is like a family. We all enjoy the pleasant, cooperative atmosphere in the team. Everyone is self-motivated and actively contribute to the project.