Welcome to RobinLab - Agile Software Development Company  
  RobinLab Agile Development
US: +1 617 418 4353
Skype: robinlab.com
E-mail: 
 
   
 

Agile SCRUM Development in Distributed Team

About | Case | Solution | Agile SCRUM | QA | Development | Tests Automation
Results | Technical details

Adobe PDF FileAgile SCRUM Development in Distributed Team (350KB, PDF)

Remark: due to the NDA we are not allowed to announce the details of the projects (including customer name, project name or project details) without Customer permission. The information on the project may not contain these details or be not full.

About The Project

The core of the product is a Web portal with elements of social network. Main business purpose of this portal is building community of physicians. It's a place for physicians to share observations from their daily practice, challenge each others' opinions, and just talk. This portal shall benefit both physicians and their patients due to accelerating emergence of new trends and insights on medications, devices and treatments.

We had to merge into existent product development. At that point, the portal had already been present on the market for several years, and had a significant clients base. Support team had already gained wide experience in resolving usability and maintenance issues. Upgrades and patches were released on monthly basis.

Case

Up ↑

As the portal grew, it became more popular. Portal owners decided to extend the functionality by adding new features. One of the first upgrades we were working on was satellite application connected to the main portal.

Before we could start, we had had to investigate and understand business requirements for the new application, and acquire a great amount of accumulated knowledge about the existing system.

The next step was to integrate with the existing product. We had to take care of the customer accounts database, including their settings and profiles. At the same time, we planned to be involved into close and neat cooperation with the support and maintenance team to help them with new product launch.

And finally, we were responsible for set up of quality control activities for a new application, including assistance to the customer's quality assurance team in maintenance of the current version. In addition, we had to organize automated testing procedures in order to shorten the timeframe between releasing new versions.

Solution

Up ↑

The key requirement was to keep existing system work well, and make integration and transition smooth and seamless for customers. Therefore we organized work on the project as the following:

  • Due to the huge amount of project related communications and taking into account the necessity of daily support of “live” system we have chosen the agile SCRUM methodology in order to manage works on the project.

  • QA scrum team started to work on the project first. It gave us an opportunity to split the load of support tasks between customer's and local quality assurance teams. Also, while creating tests procedures and cases, we got an opportunity to assess the requirements for the system by close collaboration with the customer's business analysts.

  • The software development scrum team started working much later, when all the functional and business requirements for the new product were clarified, and test documentation was prepared. The fact that development scrum team started working on the project in conjunction with already trained quality assurance team allowed us to reduce volume of communications with customer's development team significantly, without risk of misunderstanding, which saved huge amount of our and customer's time.

  • And finally, the vast majority of quality control tests were automated, which helped us to reduce the time between releases of updated product versions.

Using agile SCRUM Methodology

Up ↑

Our choice of agile SCRUM methodology was stipulated by requirement of smooth integration of our deliverables with customer's projects, fast communications between the teams, and transparency of the work management process for the customer.

QA scrum team and development scrum team had their own daily scrum meetings in a form of conference calls, and then, representative of each scrum team participated in a scrum of scrums meeting with project management team. Current achievements, issues and fixes, as well as future plans, were discussed during the scrum calls. Project scope was divided onto short phases – weekly milestones with monthly release iterations. On each iteration we deployed functional builds with new features. Upon each iteration completion, we did deep retrospective analysis and general scrum meeting to discuss the processes that were the most effective for the sprint, the ones that had a negative effect and the ones that needed to be improved before the next sprint.

All together these scrum tools and solutions allowed us to build first working (beta) versions of application in shorter time frame. Moving ahead of schedule gave us some bonus time to collect extra end-user feedbacks, which helped the customer to correct the requirements for the existing and planned features.

Knowledge Transfer through QA

Up ↑

As we have already stated earlier, the QA scrum team was the first to start working on the project. Its close communications with the customer's project managers and business analysts allowed us to clarify the requirements and to create detailed test documentation, ensuring sufficient coverage of the existing functionality. It also allowed clarifying and refining the specification for the new features we were asked to implement, and to prepare test cases and documentation.

As a result, by the end of the first stage of assessing the business requirements, we had obtained a full package of knowledge and project documentation, which made it possible to move to the next stage of transferring necessary knowledge to the development scrum team. Early availability of test cases gave us huge advantage in regression testing set up and allowed us to start integration with the current product ahead of schedule. Afterwards, it played a great role in reducing overall project development time.

Distributed SCRUM Development and Communications

Up ↑

Our goal was to keep under control volume of offshore communications. Development scrum team started its work on the project when working environment has already been up and running. At that point, the main part of knowledge about the application was already transferred to our BA and QA teams.

Software developer's questions got answered locally, which saved a lot of time on offshore communications. Use of SCRUM methodology allowed smooth project development despite frequently changing requirements, satisfying the marketing requests, and at the same time let us avoid falling out of schedule.

As a result, communications were limited, and remote customer's development team was not over disturbed. In fact, high volume of communications appeared necessary only during the integration stages, close to the point of scrum project completion.

Tests Automation

Up ↑

A great positive effect for the project was in utilization of automated testing. Testing infrastructure set up was a great achievement of the QA scrum team, together with development scrum team. Software engineers integrated Unit tests directly into the source code. Test cases were based on the documentation created previously by the QA scrum team.

Successful embedding of test automation into the application boosted all the product development processes. New versions release cycle was reduced from one month to three weeks.

Results

Up ↑

The customer was really satisfied with the approach we had chosen. He was really surprised with the absence of delays during the integration stage.

Due to a well-planned and co-operated work on the project, the product entered the market two weeks ahead of a schedule with whole planned work duration of fourteen months. In addition, the application has shown stable work in the production environment and performed well even during peak loads. New services attracted more new service users than Client's marketing specialists anticipated.

Technical details

Up ↑

Project is a public social network implemented as a Web-application. New functionality is integrated with a large volume of existing data stored in a relational database. Application has multi-layer clustered enterprise architecture with complex security subsystem.

Used technologies and products:

  • Java/J2EE
  • JBoss application server
  • MySQL database
  • CVS
  • MS Project
  • Mercury QC
  • Bugzilla
  • Agile SCRUM Methodology
  • Personal tasks management and reminders
  • Reporting

Project complexity:

  • Overall duration – 14 months
  • People resources - 3 QA, 4 Developers, 1 BA, Project manager and SCRUM Master

Free project estimation  |  Up ↑