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

Project Rescue Through Agile

About | Analysis | Solution | SCRUM and XP – Agile Power | Results | Technical details

Adobe PDF FileSoftware Project Rescue Through Agile (370KB, 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

In the early 2000s, during the period of intensive growth of real estate market in the United States, our prospect customer has become one of the leading B2B service providers for thousands of real estate companies. This success predetermined rapid expansion of company’s services and five releases of new versions within few years.

This company extensively outsourced software development oversees. They mostly relied on some well-advertised Indian company. Unfortunately, as it often happens in this business, their experience was rather negative. They spent the whole year trying to get acceptable results from the contractor. By the end of the year company was ready to break the contract. The situation was really desperate. Competitors were overtaking the market providing very close list of services. Moreover, new potential contracts remained undecided due to the delay in releasing the new version of the product, which included the new services announced long time ago. In addition, the delays caused the company to overdraft of the initially planned budget.

Company management was in desperate search for urgent solution to the problem. They asked RobinLab to take a look at the project and give some suggestion.

Analysis

Up ↑

From the project analysis we immediately noticed, that the main complication related to the requirements management process. On the one hand, during the last couple of years hardly any technical documents have been put together. It became a big obstacle for knowledge transfer, project transfer from one contractor to another, and adding new team members. On the other hand, in order to keep up with volatile real estate market, marketing research department came up with new requirements almost every week. Often they claimed that the new requirements had higher priority than those which had already been worked on.

All this cluttered and jammed our works on the project. Some senior managers worried about product release delay, while others were rather concerned about catching up with the market. Software project managers wasted unjustifiable amount of time on roadmap updates and approvals. Software developers got drowned in new requirements while the old ones haven’t been implemented yet.

It was not possible to rescue the project without some radical changes in general work organization. RobinLab started with the following urgent measures:

  • Release product line update ASAP without adding any features, because it was already half year overdue.
  • Establish release procedures and stick to it for all new releases, and current version updates.
  • Set up quality control procedures and quality assurance department for the projects.

Solution

Up ↑

Old methodologies (or lack of methodologies) just did not work. The only remedy was an immediate switch of software project management to Agile Methodologies. RobinLab prepared six-month plan of moving to the new software project development process.

We based our plan on combination of two Agile Methodologies - SCRUM and XP (Extreme Programming). SCRUM is a set of guidelines for planning and managing software development projects, while XP prescribes individual team practices that help developers, analysts, testers and managers to perform at peak efficiency. SCRUM and XP are especially effective when implemented together.

Main bullet points of the plan included:

  • Use of SCRUM for dynamic software project management, organizing effective communication channel with the customer management (which was especially important considering lack of product specification); and establishing agile requirements management, which was vital for the project, because new requirements arrived too often.
  • Use of XP to make work of development team as productive as possible. Releasing new stable test-ready version ASAP.
  • Cancel the last unfinished product version. Instead, take the last stable demo-version as the basis and iteratively bring it to the complete state. We had to abandon one-and-a-half-month of work done by the previous team in order to save significant amount of time on analysis of tangled and uncompleted and not working code.
  • Use dedicated software testing team and to focus on development. Link them together to enhance the quality and effectiveness of the software development process.

SCRUM and XP – Agile Power

Up ↑

New methodology adoption was organized in two phases in parallel with knowledge transfer from the previous contractor.

First of all, we needed to arrange communications with customer management team and to perform current project situation analysis. For this purpose we planned a tactics for the first several rescue sprints and had a dedicated SCRUM master elected from our engineering team. It was the SCRUM Master’s role to facilitate collaboration between the marketing department and software development teams to build increments of functionality in monthly iterations. Afterwards, when the situation on the project became stable and the project started broadening out, the SCRUM master’s responsibilities were delegated to one of analysts on the customer’s site after a proper training.

First few one-month sprints of the rescue process were spent on building a stable product version that was based on the last available demo-version. At the same time, we did analysis and classification of features by their state of completeness. We built a list of unfinished tasks and high priority features. Finally, when a new stable version has been released and all the requirements specified, we got a base for a new start in software development.

According to SCRUM methodology, each sprint must result in working application. We faced a dilemma: on the one hand every sprint length was just about 30 days and on the other hand we needed up to 10 days to test a version. The only reasonable solution was testing in parallel with the development process.

According to XP rules, a feature is not done until it passes both its unit tests and its acceptance tests. Programmers write the unit tests, and marketing and quality assurance write the acceptance tests. These tests become the detailed specification and the completion criteria for each Sprint and each feature. This type of co-operative work between testers, analysts, and coders is known as test driven development, the TDD.

So the final picture looks like:

  • Monthly rescue SCRUM sprints with a stable release at the end (SCRUM)
  • Each rescue sprint consists of 4-5 weekly iterations (XP, TDD). At the end of each iteration a new portion of tests was prepared for the next one. QA team was testing previous build while the next one was in development. The last iteration in each sprint was spent on stabilizing the product (fixing defects that were found by QA).
  • Daily SCRUM meetings with overall progress reporting and features list update (SCRUM)

Next 4 one-month sprints were spent on new product version development.

Results

Up ↑

Our hard work and task-oriented Agile Methodology adoption yield great results.

In just six months we delivered the major product update release. But we did not just build a product. We established a straightforward system for future products development and maintenance. Our customer adopted efficient requirements management system, and now can work on realistic software development strategies.

Our successful cooperation continued with creation of a long-term plan of further enhancement of the company product line. Over the last one and a half year of our close cooperation, aside from help in project maintenance and development, RobinLab assisted in building new products generation, starting two new services, and automating many internal processes. Despite the US real estate market crisis, our customer’s company managed to significantly boost its market share and expand client’s base.

Technical details

Up ↑

The project is a multi-tier web application. T serves as an integration point for many internal and third-party satellite web-services, with a handy interface, developed with use of AJAX technology.

Used technologies and products:

  • Agile / SCRUM / XP
  • Java / J2EE
  • AJAX / XML / AXIS 1.x-2.x
  • Tomcat AS
  • PostgreSQL
  • JIRA
  • CVS

Project complexity:

  • Overall planned project rescue stage duration – 6 months.
  • The team consists of 2 QA, 3 Developers and 1 BA / SCRUM-master.

Free project estimation  |  Up ↑