Skip to main content

Table 1 Software solution natures and development principles

From: Future software organizations – agile goals and roles

 

Customer Space Problem

Type

Software (System) Solution

Nature in Theory and Practice

Strategic Approach

A

Well-defined

Goals and requirements known in advance, solution fully specifiable

• Plan-driven software engineering and management

• KEYS: Time-to-market economically with optimal solutions

Except ill-defined boundary conditions

Example 1: Calculation of interest in banking software (mathematically defined, ill-defined boundary conditions such as number of needed calculations per second or accuracy as number of digits in output.

Example 2: Implementation of a new law, e.g. in banking.

• Optimize for development risk. Example: Implement first most crucial parts of the law (ones with most penalties). Implement less risky parts later, closer to deadline in order to avoid or minimize the risk of paying penalties.

B

Ill-defined

Success criteria and requirements uncertain, multiple possible solutions.

• Agile software development (accommodating uncertainty and change iteratively)

• KEYS: Stepwise shaping following customer feedback to converge for a mutually satisfactory solution

Example: developing new type of application

• User-experience driven;

• Example: Measure user retention and service usage and develop or pivot accordingly.

C

Wicked

Problem changes over the life-cycle influenced by the software solution interacting with the users and the system environment.

• Evolutionary software development with continuous experimentation and feedback

• KEYS: Continuous value definition and assessment (assumptions), core asset development and management, platforms and ecosystems integration (co-creation)

Example: New product development, e.g., new fitness device platform enabling customized software updates

• Surveying users and the ways they use the product and insert new software