Managing Development
Home Up Kompetence Oversigt Managing Development

 

Nedenstående er konceptet jeg har udviklet til struktur og styring af udviklingsprocessen for et kommercielt software produkt. Konceptet kan også anvendes på f.eks. udvikling af internetløsning til specifik kunde/organisation.

Managing Development

The basic goals for the management of the development process:

·       The development process shall provide a high grade of flexibility making it possible to fairly easily adapt to changed market conditions.

·       The development shall provide the highest possible degree of creativity for the individual developer.

·       Based on design goals all items in the specifications for a product release shall be prioritized in A, B, and C priorities where the A-priority is most important for fulfillment of the design goals and C-priorities are less important. Each item must be assigned to at least one design goal.

·       The methodology of prototyping shall be used to continually having the possibility for performing validity test against design goals, usability, customer demands, and market trends.

·       The Time Box methodology shall be used to monitor the progress of the development and to ensure the possibility for easily adoption of adjustments to the remaining development plan.

The development process itself is managed in four interrelated tracks:

·       Specifications, Prioritizing, and Planning

·       Development

·       Test and release procedure

·       Communication of roadmap and development plans

These four tracks are further described in the following.


Example of the developing process

The length of the total development process may vary from 3 to 12 month depending on time-to-market considerations.

1.             Specifications, Prioritizing, and Planning

The first step in the specification phase is to set the design goals for the new product release in question. Each design goal is justified by customer demands or market trends and of course shall be in clear context with the core concept of the company.

Next step is to describe the function/feature items that make the release. This document is termed “Specifications for the release” and will over the development period go through several iterations and become more and more detailed in line with the design and development of the individual function/features.

For each item the following makes up the description:

·       Link to design goal/goals

·       Priority (A, B, or C)

·       Estimate in man days

·       Why this function/feature

·       Detailed description

At the end of the development period and at time for the release a “Final Detailed Specifications” document is produced and describes every single function/feature that has been developed for the release in question.

An ongoing activity included in this track is creation and maintenance of development plans and schedules.

2.             Development

The development period is divided into time boxes of typically one calendar month each.

For each time box a number of specification items are planned. Where possible each time box is planned in a way that makes it possible to change direction for the release if customer demands or market trends change. 

A time box will end up with an “executable” prototype of the product, which is evaluated and tested to a certain degree depending on coherence to other functions/features planned for a later time box.

The evaluation of a time box may result in changes for subsequent time boxes.

3.             Test and release procedure

Test and quality assurance is considered as an extremely important task. That is why the first test sessions are started at a quite early stage of the development process. As soon as the prototype produced by a time box is at a level where functions/feature can be tested to a degree that makes sense, it will be tested. Besides testing that functions/features work correctly in accordance to specifications both usability and the coherence with the concept is tested.

After the development period is ended – “feature freeze” – a final test period is started. In this phase a comprehensive test procedure is put into action. Every single function is tested, the usability is tested, and the coherence to the concept of the product is intensively tested.

In the final test period a beta test program for partners and key customers is executed as well.

The test period results in one or more release candidates and the last one will be the one that is put into production.

The release procedure consists of a number of activities to make the product available for partners and customers and to ensure knowledge transfer at different levels and in different forms (workshops, white papers, fact sheets, etc.).

4.             Communication of Roadmap and Development Plans

The communication of road maps is an important subject and one should at any time carefully evaluate the balance between providing general and specific information on features, target release dates etc.