SlideShare a Scribd company logo
From Lust to Dust: A Product’s Life Cycle
And the Roles that Make it All Worth It
Jorge Boria, M Eng
SEI Authorized Lead Appraisers, Liveware Inc.
jorge.boria@liveware.com

Abstract:
Traditional software engineering deals with two phases of a product lifecycle:
Development and Maintenance. In this short paper we propose to take a different
approach and look at the product’s lifecycle using an analogy with the human lifecycle.
We use this analogy to define roles that we call ‘research’, ‘engineering’, and ‘support’ to
accommodate all the required activities that will keep a product useful for the longest
period possible, while at the same time giving rapid response to customer needs..

Introduction
In his novel cum essay “Zen and the Art of Motorcycle Maintenance: An Inquiry into
Values” Robert Pirsig defines quality not as an attribute but as a relation between the
object in which quality is perceived and the person that perceives that quality. His point
is that quality is elusive even if so simple, because it is so personal. Perhaps we could
paraphrase the lyrics of ‘Happiness Is’ and say Quality is different things to different
people! Even if they are discussing the same object they might have a completely
different sense of its quality.
In an in-depth tutorial on agile processes held during SEPG 2001 in New Orleans, Brian
Nejmeh pointed out that our “one-size-fits-all” approach to strategy and processes does
not meet the needs of organizations. His thesis, based on “Crossing the Chasm” is that
at every stage of a product’s life different processes are required. For example, at Stage
1 innovation and speed are key elements to capture the innovators’ minds, therefore
“quality” in this stage is measured in the bells and whistles; but moving on to the next
stage entails a different approach, where quality switches from being measured in the
number and diversity of features to reliability and availability of the product. Further down
the lifecycle, support and maintenance activities are the paramount of quality. As the
product ages, the needs of the customer change too. Hence, if we can see how a
product ages throughout its life cycle and tie it to the emphasis on one or another type of
engineering, we will be better off in dealing with the product’s (and hence, the
customer’s) needs.

The product life cycle
If we break down the life cycle of a product from before its creation to the moment it is no
longer supported, drawing from our own (human) life cycle as an analogy, we have the
following stages:
1: Pre-conceptual Stage
Before a product is even conceived, a number of influences are already in place to
support its launch into this world. We can distinguish amongst them environmental
conditions, external to the organization that will use the product, including technological
assets and market needs; internal conditions including training needs and cultural drives
that make the product concept acceptable, personal skills of individuals, managers and
line personnel, together with inclination to use the new system and a desire to achieve
better results through technology. All these forces start acting together until some formal
documents are assembled to start a project with the purpose of delivering a product.
This is the pre-conceptual stage of a product. The moment the formal documents that
define the product as a concept are created we call the conception moment.
2: Engineering Stage
Once the product is envisioned, many roads are possibly explored, both inside and
outside the organization, to help with its conception. In an ideal world, there should be a
defined instant in which a project is created (budgeted and staffed) to engineer the
product. We will call the time used in the execution of this project the engineering stage.
A well-defined engineering stage has a well-defined process to describe it. Engineering
is to a product like pre-natal stages are to a person: Everyone expects the newcomer, no
one is sure what it will look like, many expectations surround it, and it almost sure that it
is going to keep us sleepless for many weeks after it arrives!
3: Birth
The engineering stage ends in deployment, also called “cut over”. This is not a stage,
but an event. It is the “birth” of the product.
4: Deployment Stage
Once a product is deployed, it usually suffers from many problems due to the
dissonance between what was required and what was produced. This stage, of tentative
use, is very much like early childhood: the product does not stand on its own, it babbles
when it wants to speak, and, in general, has to be cleaned every few hours. Think of this
as the Beta phase of the software product, usually extended well into the user’s first
attempts to apply the product in a working environment.
5: Early Adoption Stage
If the product survives its childhood, the next stage is not nice, but definitely better: it
enters its inception stage, in which many things are overlooked with the expectancy that
they will be solved in the future. A product is usually in this stage during its first two
versions, which constantly act up, destroy your expectations, and need urgent corrective
measures. Inception is a lot like adolescence.
6: Institutionalization Stage
As a product matures the users learn to trust it, and at one point it becomes
institutionalized into common use. The product has achieved, like some grown-ups,
maturity and reliability. During this stage most changes are enhancements that are not
difficult to implement and possibly some adjustments to environmental changes.
7: Decay Stage
The accumulation of changes over long periods of time, or new technological developments, finally take a toll on the design and the product ages rapidly. During the decay
stage, the product is progressively less reliable, it becomes harder and harder to
maintain, it cannot be adjusted to the new technology, and people tend to work around it,
instead of through it. Then, one day, someone pulls the plug and the product is gone,
possibly replaced by a newer one, which the demised one has partially supported during
its childhood. A pictorial view of the life cycle is presented in Figure 1.

Development Roles
The figure below depicts the relationship of customer needs to the engineering and
support environment. We prefer the names ‘engineering’ and ‘support’ to the traditional
‘development’ and ‘maintenance’, since we do not think of maintenance as a phase in
the development cycle, or as the environment that is created after delivery, which we call
support (the tiny arrows that show as quick fixes in the figure). Maintenance activities
take place either in the support environment or in a normal project environment.
We define maintenance here as the application to an existing product of any one of the
following four processes: “additions”, “fixes”, “adjustments”, or “migrations”. Additions are
extensions to the product. Fixes are changes done to the product to eliminate its defects.
Adjustments are changes done to the product to accommodate external changes (e.g.,
the basic tenets in the underlying discipline have changed.) Migrations are induced by
changes in the underlying technology platform. As a general rule, only fixes are done
during support, while for additions, adjustments, large clusters of fixes, and migrations,
new projects are created and they operate in the engineering mode. These activities are
therefore part of the normal development cycle for a subsequent version of a product
that has already been created. During the life cycle, the people that work with the
product operate in different “roles” to achieve their goals. We will use a model that
describes three different roles [Trab90].
Figure 1: Product Life Cycle vs. Project Life Cycle
Role 1: Research and Exploration
Ideas that end up in a product are often initially created by a group that is guided by
spontaneity and inspiration [Olso93]. This group works best following an evolutionary
model, that is, building bits and pieces and tying them together into a less than
completely coherent work product, often called a “proof of concept.” The emphasis of
such a group lies in innovation. Exploration (of new technologies and ways to apply it)
and redoing are encouraged. Control is lax, although these groups usually work under a
fixed budget. Whatever they turn out is usually well received. The goals are set in long
term visions. The costs incurred in research are sunken costs to the company, that is,
they are incurred without immediate accountability.
Role 2: Engineering
The economic viability of a software product lies in its quality and in its development
costs. If quality is low, the product is not viable (see role 3 for an explanation.) If the
development costs are too high, there might not be enough market to compensate these
costs. When people work in this role they should be less concerned about innovation
and more about quality. This role is best managed through a well defined process
model, in which a requirements-gathering phase precedes the design phase, that in turn
precedes the implementation phase. (Although this so-called “waterfall model” is strictly
sequential, it is seldom the case that the developers “run” the activities in such clear-cut
order. They usually go back and forth from requirements to design. They might even
move forward to implement a little, then back to gathering requirements. However, the
nature of each activity and where each belongs in a documentation scheme should be
kept clear at all times.) Exploration is discouraged and rework is considered a necessary
evil. Control is strict, and budgetary constraints are strongly tied to project management.
Goals are now midterm, counted in the order of months, not years. The costs of activities
performed in this role are fixed, but not sunken. A product is expected as an outcome,
and the costs of the product are indirectly (as we shall see when we look at Role 3)
dependent on the expenses of the phase.
Role 3: Quick Fixes
Under this role, only urgent patches are tackled. Larger fixes and enhancements are
then rewoven into the fabric of the product through newer versions developed in an
iteration of role 2 (version n, n>1.0). In role 3, the process changes to “fix and ship,” the
emphasis at this time residing in immediate response. Exploration and redoing are now
punished, because otherwise control is even less attainable. The lack of control tied to
this role is linked to the fact that the costs for the role are a function of the quality of the
product. Products with poor quality are harder to maintain and enhance, incrementing
the costs of repair. This is truly bad, since now these costs are variable costs, a function
of both the number of problems found during operation and the number of corresponding
calls received.

CHARACTERISTIC
Guiding Force
Personnel
Characteristics
Ruling Principles
Control
Costs
Working Paradigm
Outcome

RESEARCH AND
EXPLORATION
Spontaneity and
Inspiration
Creative (a solution in
search of a problem)
Individual exploration
Lax
Sunken
Evolutionary
Set of Inspirational
Ideas

ROLE
ENGINEERING
Quality and
Personal Pride
Problem Solver
(applied creativity)
Discipline
Strict
Fixed
Sequential or
Spiral
Product Version

IMPLEMENTATION
AND SUPPORT
Customer Satisfaction
Problem Patcher (on-thefly fixes)
Reaction Time
Very Lax
Variable
Patch’n’go
Customer Payments

Table 1: Different Characteristics in the Roles of Operation
This means that you have to set up a “project” approach for the engineering role, and
that what you have not included in the project you cannot do later, unless you start a
follow-up project (no quick fixes will help you.) This idea of follow-up projects to modify
the product so as to comply with a set of requested changes and enhancements is
central to a good maintenance structure. It is a big part of the solution, but not all of it. It
is called ‘versioning’ and it allows for very good management practices for updates and
fixes to the product. A simplified model of versioning can be stated as managing
requests for changes by classifying them into two categories: ‘Done Immediately’ (by the
‘support’ role) and ‘Will be part of the next version release’ (and you start a follow-up
project to do it, or incorporate the requirement to an existing project.)

Conclusions
Summing up, if you don’t have creativity (research), your product runs serious risk of not
having a market, but if you don’t have engineering, the risk is that the cost of dealing
with requests for changes from customers is going to be larger than your benefits. There
is very little you can do to remedy poor quality when you are working in role 3. If you
want to control maintenance and support costs, since they are the only variable costs in
all three modes, you must focus on the engineering role: Focus on quality increments
the fixed costs of that role, but lowers the variable costs of the support role. Counter
intuitively for some, focusing on quality will also help raise productivity, because it
eliminates costly rework.

More Related Content

PDF
Mps and agile appendix on change
PDF
Maturity Models and agile chap 02
PDF
Prosci Masterclass - ACMP 2017 Slides
PDF
Overcoming cultural issues
DOCX
Experience of a Transformation to a Reliability Culture_v13
PPT
Interpretatie van CMMI
PDF
DevOps: Fast, Cheap and Pretty
PDF
Mary Poppendieck: The Aware Organization - Lean IT Summit 2014
Mps and agile appendix on change
Maturity Models and agile chap 02
Prosci Masterclass - ACMP 2017 Slides
Overcoming cultural issues
Experience of a Transformation to a Reliability Culture_v13
Interpretatie van CMMI
DevOps: Fast, Cheap and Pretty
Mary Poppendieck: The Aware Organization - Lean IT Summit 2014

What's hot (20)

PDF
Lean Software Development Presentation
PPT
Agiles 2010
PPTX
Agile~overview
PDF
MGTpocketguide
PPTX
How to Build Organizational Change Capabilities - Prosci Webinar
PDF
Prosci Building Organizational Agility Webinar
PPT
Why Can't Johnny Improve?
PPTX
Benefits of Agile Software Development for Senior Management
PPTX
Innovation, Lean, Agile. Myths and Misconception
PPTX
Lean Principles for Agile Teams
PDF
ASAS 2015 - Benito de Miranda
DOC
Prototyping
PDF
Lean & Agile Enterprise Frameworks: For Managing Large U.S. Government Cloud ...
PDF
Make it better: the importance of a risk-based approach to DFMA
PPT
Accelerated solutions environment
PDF
Agile or how to break donw barriers
PDF
Agile Methodology - The Road to the Philosophy
PDF
What is proactive project management?
PDF
Business planning for_enduring_social_impact_0
PDF
Business Value of Agile Methods: Using ROI & Real Options
Lean Software Development Presentation
Agiles 2010
Agile~overview
MGTpocketguide
How to Build Organizational Change Capabilities - Prosci Webinar
Prosci Building Organizational Agility Webinar
Why Can't Johnny Improve?
Benefits of Agile Software Development for Senior Management
Innovation, Lean, Agile. Myths and Misconception
Lean Principles for Agile Teams
ASAS 2015 - Benito de Miranda
Prototyping
Lean & Agile Enterprise Frameworks: For Managing Large U.S. Government Cloud ...
Make it better: the importance of a risk-based approach to DFMA
Accelerated solutions environment
Agile or how to break donw barriers
Agile Methodology - The Road to the Philosophy
What is proactive project management?
Business planning for_enduring_social_impact_0
Business Value of Agile Methods: Using ROI & Real Options
Ad

Similar to From Lust to Dust: A Product Life Cycle (20)

PPT
Product Lifecycles
PPTX
PROJECT MANAGEMENT
PDF
The Business value of agile development
PDF
Total Quality Management TQM
PDF
Research Coupall
PDF
From Zero To Agile
DOCX
PDF
Archibald di filippo_comprehensive_plc_model_final
PDF
Soumen 20de-131008015800-phpapp02
PDF
Soumen de
PDF
Sourav_Kumar_SKUM279_Manoj_HYD_My Journey as a Software Testing Professional...
PDF
Agile Methodology For Software Development
PPTX
Design process
PPTX
Product And Services
PPTX
Introduction.pptx
PPT
Obstacles to Agility
 
PDF
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...
PPTX
2d36R263AJV1trdfghhgdfguytfffggfdAL.pptx
PDF
Increasing project success rates using project behavioral coaching
PDF
Elder Abuse Research
Product Lifecycles
PROJECT MANAGEMENT
The Business value of agile development
Total Quality Management TQM
Research Coupall
From Zero To Agile
Archibald di filippo_comprehensive_plc_model_final
Soumen 20de-131008015800-phpapp02
Soumen de
Sourav_Kumar_SKUM279_Manoj_HYD_My Journey as a Software Testing Professional...
Agile Methodology For Software Development
Design process
Product And Services
Introduction.pptx
Obstacles to Agility
 
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...
2d36R263AJV1trdfghhgdfguytfffggfdAL.pptx
Increasing project success rates using project behavioral coaching
Elder Abuse Research
Ad

More from Jorge Boria (20)

PDF
MPS and Agile Methods references in english
PDF
04 small interventions sepg 2007
PDF
El cmmi de servicios está aquí 5
DOCX
Tableros de desempeño
PDF
Maturity Models and agile chap 01
PDF
The Story of Tahini-Tahini: Software Process Improvement with Agile Methods a...
PDF
Tahini tahini sp-final_(cover_-_a4)
DOCX
Oilfield services
PDF
El cmmi de servicios está aquí 4
PDF
Change mgmt april-2011
PDF
Psqt east risk testing
PDF
16 car at all levels
PDF
El cmmi de servicios está aquí 3
PDF
El cmmi de servicios está aquí 2
PDF
El cmmi de servicios está aquí 1
PPT
Effectiveness of Organizational Training
PDF
Cmmi svc july 2011
PPT
Qa 3 best practices
PPT
Risk Driven Testing
PPT
Dont Be On Time
MPS and Agile Methods references in english
04 small interventions sepg 2007
El cmmi de servicios está aquí 5
Tableros de desempeño
Maturity Models and agile chap 01
The Story of Tahini-Tahini: Software Process Improvement with Agile Methods a...
Tahini tahini sp-final_(cover_-_a4)
Oilfield services
El cmmi de servicios está aquí 4
Change mgmt april-2011
Psqt east risk testing
16 car at all levels
El cmmi de servicios está aquí 3
El cmmi de servicios está aquí 2
El cmmi de servicios está aquí 1
Effectiveness of Organizational Training
Cmmi svc july 2011
Qa 3 best practices
Risk Driven Testing
Dont Be On Time

Recently uploaded (20)

PDF
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
PDF
Types of control:Qualitative vs Quantitative
PPT
340036916-American-Literature-Literary-Period-Overview.ppt
PPTX
job Avenue by vinith.pptxvnbvnvnvbnvbnbmnbmbh
PDF
kom-180-proposal-for-a-directive-amending-directive-2014-45-eu-and-directive-...
PDF
WRN_Investor_Presentation_August 2025.pdf
PDF
Nidhal Samdaie CV - International Business Consultant
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PPT
Chapter four Project-Preparation material
PPTX
5 Stages of group development guide.pptx
PDF
Power and position in leadershipDOC-20250808-WA0011..pdf
PDF
Traveri Digital Marketing Seminar 2025 by Corey and Jessica Perlman
PDF
Laughter Yoga Basic Learning Workshop Manual
DOCX
unit 2 cost accounting- Tender and Quotation & Reconciliation Statement
PDF
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
DOCX
Business Management - unit 1 and 2
PDF
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
PDF
Reconciliation AND MEMORANDUM RECONCILATION
PDF
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
DOCX
Euro SEO Services 1st 3 General Updates.docx
BsN 7th Sem Course GridNNNNNNNN CCN.pdf
Types of control:Qualitative vs Quantitative
340036916-American-Literature-Literary-Period-Overview.ppt
job Avenue by vinith.pptxvnbvnvnvbnvbnbmnbmbh
kom-180-proposal-for-a-directive-amending-directive-2014-45-eu-and-directive-...
WRN_Investor_Presentation_August 2025.pdf
Nidhal Samdaie CV - International Business Consultant
Roadmap Map-digital Banking feature MB,IB,AB
Chapter four Project-Preparation material
5 Stages of group development guide.pptx
Power and position in leadershipDOC-20250808-WA0011..pdf
Traveri Digital Marketing Seminar 2025 by Corey and Jessica Perlman
Laughter Yoga Basic Learning Workshop Manual
unit 2 cost accounting- Tender and Quotation & Reconciliation Statement
pdfcoffee.com-opt-b1plus-sb-answers.pdfvi
Business Management - unit 1 and 2
Dr. Enrique Segura Ense Group - A Self-Made Entrepreneur And Executive
Reconciliation AND MEMORANDUM RECONCILATION
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
Euro SEO Services 1st 3 General Updates.docx

From Lust to Dust: A Product Life Cycle

  • 1. From Lust to Dust: A Product’s Life Cycle And the Roles that Make it All Worth It Jorge Boria, M Eng SEI Authorized Lead Appraisers, Liveware Inc. jorge.boria@liveware.com Abstract: Traditional software engineering deals with two phases of a product lifecycle: Development and Maintenance. In this short paper we propose to take a different approach and look at the product’s lifecycle using an analogy with the human lifecycle. We use this analogy to define roles that we call ‘research’, ‘engineering’, and ‘support’ to accommodate all the required activities that will keep a product useful for the longest period possible, while at the same time giving rapid response to customer needs.. Introduction In his novel cum essay “Zen and the Art of Motorcycle Maintenance: An Inquiry into Values” Robert Pirsig defines quality not as an attribute but as a relation between the object in which quality is perceived and the person that perceives that quality. His point is that quality is elusive even if so simple, because it is so personal. Perhaps we could paraphrase the lyrics of ‘Happiness Is’ and say Quality is different things to different people! Even if they are discussing the same object they might have a completely different sense of its quality. In an in-depth tutorial on agile processes held during SEPG 2001 in New Orleans, Brian Nejmeh pointed out that our “one-size-fits-all” approach to strategy and processes does not meet the needs of organizations. His thesis, based on “Crossing the Chasm” is that at every stage of a product’s life different processes are required. For example, at Stage 1 innovation and speed are key elements to capture the innovators’ minds, therefore “quality” in this stage is measured in the bells and whistles; but moving on to the next stage entails a different approach, where quality switches from being measured in the number and diversity of features to reliability and availability of the product. Further down the lifecycle, support and maintenance activities are the paramount of quality. As the product ages, the needs of the customer change too. Hence, if we can see how a product ages throughout its life cycle and tie it to the emphasis on one or another type of engineering, we will be better off in dealing with the product’s (and hence, the customer’s) needs. The product life cycle If we break down the life cycle of a product from before its creation to the moment it is no longer supported, drawing from our own (human) life cycle as an analogy, we have the following stages:
  • 2. 1: Pre-conceptual Stage Before a product is even conceived, a number of influences are already in place to support its launch into this world. We can distinguish amongst them environmental conditions, external to the organization that will use the product, including technological assets and market needs; internal conditions including training needs and cultural drives that make the product concept acceptable, personal skills of individuals, managers and line personnel, together with inclination to use the new system and a desire to achieve better results through technology. All these forces start acting together until some formal documents are assembled to start a project with the purpose of delivering a product. This is the pre-conceptual stage of a product. The moment the formal documents that define the product as a concept are created we call the conception moment. 2: Engineering Stage Once the product is envisioned, many roads are possibly explored, both inside and outside the organization, to help with its conception. In an ideal world, there should be a defined instant in which a project is created (budgeted and staffed) to engineer the product. We will call the time used in the execution of this project the engineering stage. A well-defined engineering stage has a well-defined process to describe it. Engineering is to a product like pre-natal stages are to a person: Everyone expects the newcomer, no one is sure what it will look like, many expectations surround it, and it almost sure that it is going to keep us sleepless for many weeks after it arrives! 3: Birth The engineering stage ends in deployment, also called “cut over”. This is not a stage, but an event. It is the “birth” of the product. 4: Deployment Stage Once a product is deployed, it usually suffers from many problems due to the dissonance between what was required and what was produced. This stage, of tentative use, is very much like early childhood: the product does not stand on its own, it babbles when it wants to speak, and, in general, has to be cleaned every few hours. Think of this as the Beta phase of the software product, usually extended well into the user’s first attempts to apply the product in a working environment. 5: Early Adoption Stage If the product survives its childhood, the next stage is not nice, but definitely better: it enters its inception stage, in which many things are overlooked with the expectancy that they will be solved in the future. A product is usually in this stage during its first two versions, which constantly act up, destroy your expectations, and need urgent corrective measures. Inception is a lot like adolescence.
  • 3. 6: Institutionalization Stage As a product matures the users learn to trust it, and at one point it becomes institutionalized into common use. The product has achieved, like some grown-ups, maturity and reliability. During this stage most changes are enhancements that are not difficult to implement and possibly some adjustments to environmental changes. 7: Decay Stage The accumulation of changes over long periods of time, or new technological developments, finally take a toll on the design and the product ages rapidly. During the decay stage, the product is progressively less reliable, it becomes harder and harder to maintain, it cannot be adjusted to the new technology, and people tend to work around it, instead of through it. Then, one day, someone pulls the plug and the product is gone, possibly replaced by a newer one, which the demised one has partially supported during its childhood. A pictorial view of the life cycle is presented in Figure 1. Development Roles The figure below depicts the relationship of customer needs to the engineering and support environment. We prefer the names ‘engineering’ and ‘support’ to the traditional ‘development’ and ‘maintenance’, since we do not think of maintenance as a phase in the development cycle, or as the environment that is created after delivery, which we call support (the tiny arrows that show as quick fixes in the figure). Maintenance activities take place either in the support environment or in a normal project environment. We define maintenance here as the application to an existing product of any one of the following four processes: “additions”, “fixes”, “adjustments”, or “migrations”. Additions are extensions to the product. Fixes are changes done to the product to eliminate its defects. Adjustments are changes done to the product to accommodate external changes (e.g., the basic tenets in the underlying discipline have changed.) Migrations are induced by changes in the underlying technology platform. As a general rule, only fixes are done during support, while for additions, adjustments, large clusters of fixes, and migrations, new projects are created and they operate in the engineering mode. These activities are therefore part of the normal development cycle for a subsequent version of a product that has already been created. During the life cycle, the people that work with the product operate in different “roles” to achieve their goals. We will use a model that describes three different roles [Trab90].
  • 4. Figure 1: Product Life Cycle vs. Project Life Cycle Role 1: Research and Exploration Ideas that end up in a product are often initially created by a group that is guided by spontaneity and inspiration [Olso93]. This group works best following an evolutionary model, that is, building bits and pieces and tying them together into a less than completely coherent work product, often called a “proof of concept.” The emphasis of such a group lies in innovation. Exploration (of new technologies and ways to apply it) and redoing are encouraged. Control is lax, although these groups usually work under a fixed budget. Whatever they turn out is usually well received. The goals are set in long term visions. The costs incurred in research are sunken costs to the company, that is, they are incurred without immediate accountability. Role 2: Engineering The economic viability of a software product lies in its quality and in its development costs. If quality is low, the product is not viable (see role 3 for an explanation.) If the development costs are too high, there might not be enough market to compensate these costs. When people work in this role they should be less concerned about innovation and more about quality. This role is best managed through a well defined process model, in which a requirements-gathering phase precedes the design phase, that in turn precedes the implementation phase. (Although this so-called “waterfall model” is strictly sequential, it is seldom the case that the developers “run” the activities in such clear-cut order. They usually go back and forth from requirements to design. They might even move forward to implement a little, then back to gathering requirements. However, the nature of each activity and where each belongs in a documentation scheme should be kept clear at all times.) Exploration is discouraged and rework is considered a necessary evil. Control is strict, and budgetary constraints are strongly tied to project management. Goals are now midterm, counted in the order of months, not years. The costs of activities performed in this role are fixed, but not sunken. A product is expected as an outcome, and the costs of the product are indirectly (as we shall see when we look at Role 3) dependent on the expenses of the phase.
  • 5. Role 3: Quick Fixes Under this role, only urgent patches are tackled. Larger fixes and enhancements are then rewoven into the fabric of the product through newer versions developed in an iteration of role 2 (version n, n>1.0). In role 3, the process changes to “fix and ship,” the emphasis at this time residing in immediate response. Exploration and redoing are now punished, because otherwise control is even less attainable. The lack of control tied to this role is linked to the fact that the costs for the role are a function of the quality of the product. Products with poor quality are harder to maintain and enhance, incrementing the costs of repair. This is truly bad, since now these costs are variable costs, a function of both the number of problems found during operation and the number of corresponding calls received. CHARACTERISTIC Guiding Force Personnel Characteristics Ruling Principles Control Costs Working Paradigm Outcome RESEARCH AND EXPLORATION Spontaneity and Inspiration Creative (a solution in search of a problem) Individual exploration Lax Sunken Evolutionary Set of Inspirational Ideas ROLE ENGINEERING Quality and Personal Pride Problem Solver (applied creativity) Discipline Strict Fixed Sequential or Spiral Product Version IMPLEMENTATION AND SUPPORT Customer Satisfaction Problem Patcher (on-thefly fixes) Reaction Time Very Lax Variable Patch’n’go Customer Payments Table 1: Different Characteristics in the Roles of Operation This means that you have to set up a “project” approach for the engineering role, and that what you have not included in the project you cannot do later, unless you start a follow-up project (no quick fixes will help you.) This idea of follow-up projects to modify the product so as to comply with a set of requested changes and enhancements is central to a good maintenance structure. It is a big part of the solution, but not all of it. It is called ‘versioning’ and it allows for very good management practices for updates and fixes to the product. A simplified model of versioning can be stated as managing requests for changes by classifying them into two categories: ‘Done Immediately’ (by the ‘support’ role) and ‘Will be part of the next version release’ (and you start a follow-up project to do it, or incorporate the requirement to an existing project.) Conclusions Summing up, if you don’t have creativity (research), your product runs serious risk of not having a market, but if you don’t have engineering, the risk is that the cost of dealing with requests for changes from customers is going to be larger than your benefits. There is very little you can do to remedy poor quality when you are working in role 3. If you
  • 6. want to control maintenance and support costs, since they are the only variable costs in all three modes, you must focus on the engineering role: Focus on quality increments the fixed costs of that role, but lowers the variable costs of the support role. Counter intuitively for some, focusing on quality will also help raise productivity, because it eliminates costly rework.