|
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 DevelopmentThe 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.
The length of the total development process may
vary from 3 to 12 month depending on time-to-market considerations. 1. Specifications, Prioritizing, and PlanningThe 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. DevelopmentThe 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 procedureTest 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 PlansThe 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. |