The Inventory in the system of software production must be measured through measures of client-valued functionality. The client of the client-valued functionality is the business owner, or customer, who is paying for the software. The i
The Inventory in the system of software production must be measured through measures of client-valued functionality. The client of the client-valued functionality is the business owner, or customer, who is paying for the software. The ideas captured as functional requirements or a marketing feature list represent the raw material for the software production system. Requirements represent the ideas being transformed into executable code. These are often referred to as the functional requirements.
Nonfunctional Requirements and Inventory
Are nonfunctional or architectural requirements, for example, performance characteristics, of interest, and should they be tracked?
Nonfunctional requirements should be defined with a minimum requirement. This minimum requirement represents the level below which the functional requirements are not viable in the market. In other words, the functional requirements have no Throughput value unless a minimum level of nonfunctional specification is met. Hence, the base level of nonfunctional requirements does not require individual tracking. If the base level of performance cannot be met, the functional requirement would not be considered as delivered or complete. As functional requirements are being tracked, it is inferred that base level nonfunctional requirements are being tracked along with them.
It is therefore vital to skillfully manage the development of nonfunctional requirements. Excess work on nonfunctional requirements will increase OE, increase lead time, and decrease T.
However, there are preferred levels of nonfunctional performance that could be considered market differentiating, and these have a Throughput value. As they have a Throughput value and extra effort must be undertaken to achieve the additional performance, they should be tracked as Inventory through the system. The idea for the market differentiating performance is the input to the system, and working code that delivers the performance is the output. Architectural features for these ideas should be created and tracked as Inventory in the system
Software Production Is Development Rather Than Research
There may be product or service concepts that are exceptionally new and are dominated by nonfunctional requirements, for example, on-demand, interactive video streaming broadcast over the Internet. Such projects are probably more rightly classified as research activity and should not be tracked with a management system such as the one described. This system of management is intended for development projects that are mostly infomatic in nature and can be thought of as software production rather than algorithmic research.
Tasks Are Not Inventory
Tasks represent effort that must be expended. They are essentially an internal organization of activity in the software production system. Tasks are not a system input and hence do not represent Inventory. Tasks are actions performed inside the system to move input through the system and generate output. A task list might be an essential project management tool, but it is of no interest to the client. It does not help the customer for the output of the system assess how much value has been delivered. The client does not value a task such as, "Assess the use of the Vitria™ message bus for loosely coupled asynchronous messaging of distributed components." There is no direct correlation between development system tasks and delivery of value. Tasks are interesting only to the internal system. They do not represent the Inventory in the system or the output from the system.
|