Imperatives for success
An IBM White Paper with the above title got my attention because of the heavy emphasis on software development tightly coupled to the business value it delivers. You can find the White Paper here: Managing The Software Supply Chain
Thinking of software development as a supply chain process seemed intuitive and it was easy to buy into the concept.
Industry trends: The move toward software supply chains
Software delivery is a fundamental business process, one that benefits companies, public sector organizations and a growing host of institutions that rely on the power of digital technology.
Software enables people to collaborate and innovate in the work place, to automate routine tasks and processes, to make better decisions and to become more competitive as a result. Software fuels the use of the Internet and web to socialize and to gather information, and software is increasingly part of every device, from mobile phones to power plants and spacecraft.
Organizations can acquire the sophistication, competence and skill they need for software development through package applications, open source components and outsourcing. As a result, companies are creating new models for sourcing software that promise more consistent and reliable products. Some companies use software factories and outsourcing vendors to reduce or distribute risk, to lower costs, to gain expertise and to add value where the company on its own cannot. Others rely on commercial off-the-shelf software to reduce the time it takes to get products to market, and some have even turned to “crowdsourcing” to exploit innovation by the many.4 For example, businesses use application packages for HR, finance, sales and distribution. They then rely on captive development centers to produce new software or to customize packaged applications more cost effectively. In addition, open source software supports IBM Software 3 in-house development projects such as internal, web-based applications (for example, a scheduling system). All of these elements that contribute to the production of software can be understood as parts of a complex, interdependent supply chain, one that must be managed effectively.
IBM draws parallels from successful traditional supply chains and applies them to the “software development” supply chain. The example used is one of the possible software supply chains, outsourcing.
To achieve similar successes with the software supply chain, the goal for all participants is a greater ability to manage the value that they are providing and receiving and to cultivate trusted business relationships as successes validate the business model.
Achieving this goal requires moving from measuring output only to also measuring actual business value. The issue of trust becomes prevalent when no good means of monitoring value exist. For example, if you are an acquirer, how can you trust that your supplier will deliver what you need? If you are a supplier, how can you trust that your acquirers will not endlessly rescope the requirements while you spend countless hours on prototypes, try to help them understand their true needs and bear the burden of costly changes?
The remedy to date has been to provide overly detailed specifications of what needs to be produced before signing a contract, focusing on output over value. Such a focus increases bureaucracy, while stifling innovation, and usually leads to one of two extremes: a static, defensive, contracting approach to controlling the relationship or a weak, open arrangement based on measuring time and budget without clear incentives.
IBM believes that, to solve the problems of value and trust and to bring efficiency and high quality to the supply chain, companies should apply a consistent set of principles. IBM refers to these principles as the imperatives for securing value and trust.
Here’s the explanation of how the business and its software development supply chain work together to deliver software that brings value.
Three imperatives for securing value and trust
The three imperatives for securing value and trust can apply to the gamut of software supply chains, including outsourcing, off-the-shelf applications (whether open source or commercial) and captive development centers.
These imperatives are:
- Balance governance with agility.
- Increase visibility.
- Deliver measurable business value.
Decisions needed to effectively manage software development are business value driven, based on clear and simple business value metrics.
Steering projects to the desired outcome
All parties, including lines of business, development, operations, vendors and captive development centers, must get together at key times to make decisions. For example, they must decide which projects to fund, whether projects require course correction and when projects are ready to be deployed. Business-value driven milestones that provide visibility about the true status of the project and target objectives can steer the application development effort to a favorable outcome.
Providing measurable business value
Using simple ways to measure and monitor business value throughout a project or program is an absolute necessity. Clear, detailed traceability, between the needs of the business and the software requirements embedded in statements of work, facilitates the coordinated delivery of multiple software components that is part of providing value.
The above excerpts provide a summary of how tightly coupled software development and the business case and business value metrics need to be. This is absolutely the linkage that should exist between the business and the software supply chain.
However, accomplishing this linkage has been a challenge that I’ve seen in many of the development projects I’ve managed. Small and mid-size businesses as well as Fortune 500 companies often struggle with defining the business case to justify the software development they feel is needed. Assigning value to the deployment of new software can imply that the business is then accountable for insuring the value is delivered to the business. Business leaders can be reluctant to become accountable for an increase in market share and margin, or decrease in costs that can form the basis of a software development business case. When that happens, the business value metrics that would guide the software development are not defined or are incomplete.
Businesses that are culturally capable of establishing the business case and value metrics for software development will be the ones that can treat software development as a supply chain process. Business that struggle with defining a business case and value metrics will not be as successful in their software development projects.