MDD

Monday, 3 October 2016

(I) The Scrum proposal (case)

DESIGN, TEST, AND DELIVERY CYCLES
Since 2002 IONA has achieved equivalence with ISO 9001 certification. Internal activities are described and monitored using the quality management system. However the company's engineers spend considerable time working on software maintenance activities. While new product development work is the high value, high profile strategic activity of the company, the fact is that day to day effort is often diverted (reluctantly at times) towards support and maintenance of software already installed or being commissioned at customer sites. 'Next version' projects and new feature development time takes a back seat to customer support.

Implementation is that phase of the product life cycle that covers the more concrete aspects of product production, including: design, test, and delivery activities. The product life cycle controls how the organisation’s products progress and develop from concept (feature requirement and design) to completion (release). The company continues to use a traditional project management paradigm to plan and monitor development however they are struggling to cope with the twin demands of new product development and existing product maintenance. Recently the management team and engineers have been discussing if and how it would be possible to adopt an Agile iterative development lifecycle.

The Company is now evaluating the Scrum methodology and are seeking to understand how it would impact their working environment, work practices, management and organisational structure, and also their status as an ISO9001 certified organisation (Figure below).
Figure: ISO9001 QMS continual improvement system


The company's products are large, some greater than 10M Loc. Their software ranges over distributed objects, object databases, standards based architectures for financial and telecoms, embedded systems in 'scale industry' environments that generate, transmit, record and monitor event and process data.

A video of the company's current product development lifecycle depicts a cyclic+layered management system aligned with the organisational structure of: support, test, project management, design and development. Some people call this a V model. The same lifecycle model is also used by some of the company's largest client organisations.

The company's product release history is complex. A single product would undergo a steady sequence of major and minor releases (figure below). Major revisions of the main product are released approximately 4 times a year, but they also deliver maintenance releases including ‘roll-up’ patches, custom releases and minor updates every other week.

Subsidiary products that are dependent on the main product (Object Request Broker). The smaller teams that manage these software products will often need to release versions that are built with (synchronise against) the main product.
Figure: Indicative release history Y1-Y4


The company's customer support queues are highly volatile (see figure below). The customer support queues fluctuate wildly over time and may sometimes halt new product development projects in order to address urgent customer demands. This is partially because the products depend upon each other but also because they exist within a constantly evolving external software ecosystem. The products need to operate within various browser versions, operating systems, and hardware platforms. External changes are significant drivers for both maintenance and main product releases.

Figure: Indicative support queue activity Y1-Y4

In conclusion, the organisation appears to follow two very different approaches to managing production. On the one hand there is a sequential/linear process for managing and releasing new product versions; the NPD (new product development) approach. On the other hand there is on-going support and maintenance work which is highly responsive, crisis driven and reactive.

Provide an analysis and recommendations for future action.