The pyramid of enterprise software development

Pyramid1.1

Enterprise software differs from other forms of software mainly in the number of stakeholders and the diversity of their perspectives. The characteristics that make that software valuable and useful are, as a consequence, also many and diverse. For the organization developing enterprise software, these characteristics represent aspects of focus; they must deliver each to be successful.

The diagram above organizes those aspects along a scale of value corresponding to stakeholder perspective.

The aspects themselves are identical for both external vendor and internal software development, but have specific meaning for the IT team embedded within the organization. They are:

1. Functionality: Functionality is the object of the software development effort- a new GUI, web service, integration point, or any other aspect enabling an enterprise to move forward via software.

2. Performance: Performance is the throughput and responsiveness of the system; for example the speed of a report rendering.

3. Availability: Availability is the uptime of a system, to the extent that it is impacted by outages and high calculation volumes.

4. Scalability: Scalability is the potential of a system to grow its calculation volume limits and the relative ease of doing so.

5. Extensibility: Extensibilty is the potential to build or expand the existing system to meet new requirements- for example, adding service type inventory to a product only catalog system.

6. Monitorability: Monitorability is the ease of visibility of the health indicators for a system, such as a load indicator available for outside use via SNMP.

7. Manageability: Manageability is the ease of support operations around the system.

8. Security: Security is the ability of a system to allow access to the right resources, at the right time, for the right users.

9. Auditability: Auditability is the potential to track the history of user and system interactions, and any other calculations within the system.

10. Maintainability: Maintainability is a highly structural aspect of enterprise software development, indicating the effort required to keep a system healthy and functioning correctly.

The pyramid concept has specific meaning for the embedded IT team developing software from within the enterprise. The larger organization likely values the software they’re developing only in terms of the upper areas of the pyramid- specifically, functionality. But, in order to deliver functionality in a timely and sustainable way, the IT team itself must focus on all activities in the diagram.

The scale on the right side of the diagram indicates the source of value of each area within the pyramid. From a business perspective, value increases upward in the diagram. Structural value that is essential to the system but likely not visible to the business, increases downward in the diagram.

For the software development effort to be successful, the IT team must focus on the increasingly structural lower areas of the pyramid. Without focus on these activities the IT team will experience budget atrophy or be limited to short term, low impact projects.

This is a paradox. How can the internal IT team overcome the burden of sustained effort that is invisible and not valued, in order finally to be able to deliver visible business value?

The answer has two parts. The first is that the team must have a balance of crucial factors, including good management, good leadership, good teamwork, good process, good approach, and good prioritization.

The second is synergy. By delivering the lower areas in the pyramid, the IT team develops reputation as well as a platform for increasingly rapid delivery of functionality. This is a positive upward spiral that can evolve into an enormous source of benefit and growth for the entire enterprise.

 

 

Posted in Uncategorized