1. The Business Value Chain
The “business value chain” concept has been a key framework in software development since the 1980s. The business value chain represents the various stages of software delivery, from the initial concept to the final product. The framework was first introduced by Michael Porter in his book, “Competitive Advantage: Creating and Sustaining Superior Performance,” published in 1985.
In the early days of software development, the focus was primarily on the technical aspects of software design and development. The business value chain was not yet fully understood, and the software development process was seen as a series of isolated stages rather than a cohesive process. However, software development shifted towards a more integrated approach with the emergence of the business value chain framework.
1.2 The Software Development Lifecycle
In the late 1980s and early 1990s, software development underwent a significant paradigm shift with the emergence of the “software development life cycle” (SDLC) framework. The SDLC framework provided a structured approach to software development, with clearly defined stages, including requirements gathering, design, development, testing, and deployment. The SDLC framework enabled software development teams to manage the software development process better and ensured that the end product met the business requirements.
1.3 Agile and DevOps
The early 2000s saw another paradigm shift with the emergence of the “Agile” software development methodology. The Agile methodology focused on delivering software iteratively and incrementally, focusing on customer collaboration and responding to change. The Agile methodology challenged the traditional SDLC framework by prioritizing customer needs and responding to changing business requirements.
In recent years, a growing focus has been on the “DevOps” framework, which combines the development and operations teams to enable faster software delivery. The DevOps framework focuses on continuous delivery and deployment, automation, and collaboration between development and operations teams.
1.4 Optimising the Business Value Chain
In conclusion, the concept of the business value chain has been a key framework in software development since the 1980s. Software development has undergone significant paradigm shifts with the emergence of the SDLC, Agile, and DevOps frameworks. These frameworks have enabled software development teams to better manage the software development process and deliver software that meets business requirements.
In today’s fast-paced and highly competitive business environment, companies must maximise efficiency and effectiveness to stay ahead. This is especially true for companies involved in software delivery, where delays or errors can have serious consequences. In this article, we will explore the concept of the business value chain in software delivery and how companies can use it to streamline their operations, reduce costs, and improve overall performance.
2. What is the Business Value Chain?
The business value chain is a framework that identifies the key activities that a company must perform to create value for its customers. These activities are divided into two categories: primary activities and support activities.
2.1 Primary Activities
Primary activities are those that are directly involved in the creation and delivery of a product or service. In the context of software delivery, these would include:
2.1.1 Requirements Gathering
The process of gathering and analyzing customer requirements to define the scope of the software project.
2.1.2 Design and Development
Designing and developing the software application based on the customer’s requirements.
Testing the software application to ensure it meets the customer’s requirements and is free of bugs or errors.
2.1.4 Deployment and Maintenance
Deploying the software application to the customer’s environment and providing ongoing maintenance and support.
2.2 Support Activities
Support activities are necessary to enable the primary activities to take place. In the context of software delivery, these would include:
2.2.1 Project Management
The process of planning, organising and managing resources to ensure that the software project is delivered on time and within budget.
2.2.2 Quality Assurance
Ensuring that the software application meets the customer’s quality standards.
2.2.3 Change Management
Managing changes to the software application throughout the development and deployment lifecycle.
2.2.4 Training and Support
The process of providing training and support to end-users to ensure that they can use the software application effectively.
3. Where Does Value Creation Occur in the SDLC?
3.1 Is Value Generated Only in the Design and Development Stages?
The following lines are from Winston Royce’s seminal paper on developing large software systems, where he (unequivocally) states his view on where value is created in the software development lifecycle.
There are two essential steps common to all computer program developments, regardless of size or complexity. There is first an analysis step, followed second by a coding step […]. This sort of very simple implementation concept […] is required if the effort is sufficiently small and if the final product is to be operated by those who built it […]. It is also the kind of development effort for which most customers are happy to pay, since both steps involve genuinely creative work which directly contributes to the usefulness of the final product. An implementation plan to manufacture software systems, keyed only to these steps, is doomed to failure. Many additional development steps are required, but none contribute as directly to the final product as analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay for them, and development personnel would rather not implement them.
— Managing the Development of Large Software Systems, 1970, Winston W. Royce
In that context, what can be said about the other activities of the SDLC? A different view states that the requirement gathering, testing, and deployment phases are crucial to creating software today that meets the organisation’s needs and provides value.
The requirement-gathering phase is where the team identifies the business requirements and opportunities to create value for the organization. The more effort invested in this phase, the more likely the resulting software will meet the organisation’s needs and provide value.
Similarly, the testing phase is where the team verifies that the software works correctly and meets the business requirements. The more effort invested in this phase, the more likely the resulting software will be high quality, meet the organisation’s needs, and provide value.
Finally, the deployment phase is where the software is implemented into the organization, and users are trained to use it effectively. The more effort invested in this phase, the more likely the organisation will adopt the software and provide value.
So where does that leave us regarding the SDLC stages and how they contribute to business value? My view is as follows. Analysis and coding generate features, while almost every other activity aims to coordinate activities between stakeholders or detect and eliminate issues (bugs, design faults, incorrect configuration…).
Under the guidance of a competent Product Manager, the creation of new features increases the value of the product, at a cost, naturally. With analysis and development, more effort positively correlates with value. That does not seem to be the case for supporting activities where more effort does little except increase project cost.
Also, business value linearly increases with useful features while supporting activities asymptotically converge towards a theoretical maximum at an exponentially higher cost. The below figure illustrates the point.
Therefore, a software delivery unit must produce the best product and features at the lowest cost to generate the maximum value.
4. The Business Value Chain
The software development value chain comprises three interdependent phases: value identification, value proposition, and value delivery. These phases are crucial in ensuring that the software product meets the customers’ needs and provides value to the organization.
4.1 Phase 1: Value Identification
The first phase, value identification, involves understanding the customers’ needs and requirements. In this phase, the development team works closely with the customers to identify the features and functionalities that will provide value to the end users.
The team may use various techniques, such as surveys, focus groups, and user testing, to gather information about the customers’ needs and preferences. The value identification phase is critical because it lays the foundation for the entire software development process. The software product will likely fall short of expectations without clearly understanding the customers’ needs.
4.2 Phase 2: Value Proposition
The second phase, value proposition, involves defining the software product’s value proposition. The value proposition outlines the unique features and benefits the product offers compared to its competitors. It is a crucial component of the software development process because it helps the development team prioritize features and functionalities that will provide the most value to the end users.
The value proposition is also critical in marketing the product to potential customers. A well-defined value proposition can help the organization differentiate its product from competitors and attract new customers.
4.3 Phase 3: Value Delivery
The final phase, value delivery, involves developing, testing, and delivering the software product to the customers. This phase involves various activities, such as coding, testing, bug fixing, and deployment.
The development team must ensure that the software product meets customer requirements and expectations. Ensuring the product is delivered on time and within budget is also essential. The value delivery phase is critical in ensuring customer satisfaction and building a positive reputation for the organization.
In summary, the software development value chain comprises three interdependent phases: value identification, value proposition, and value delivery. Each phase is crucial in ensuring that the software product meets the customers’ needs and provides value to the organization. A well-executed value chain can help organizations build competitive advantages and achieve business success.
5. Value Identification
Value identification is a crucial step in the value chain of software delivery that aims to identify the features, functions, and capabilities that will deliver value to the end user or customer. Here are the key steps involved in value identification:
- Analyzing customer needs involves understanding the customer’s expectations and requirements for the software product or service. Market research, customer feedback, surveys, and interviews can be used to collect this information.
- Evaluating software features and capabilities: Once customer needs and preferences are identified, the software product or service’s features and capabilities are evaluated in terms of their ability to meet those needs. The value proposition of each feature and capability is assessed, and their alignment with the customer’s expectations is determined.
- Prioritizing features and capabilities: After evaluating the features and capabilities, they are prioritized based on their importance to the customer. This helps to identify the critical features that deliver the most value to the customer and ensure that they are developed and delivered first.
The figure below summarises the process in a few steps. Stakeholders have business needs communicated to analysts and software engineers along with specific objectives that might cover functionality, budget, and schedule. Analysts, architects, and system engineers analyse these requirements and identify opportunities to create or integrate software products to fulfil these needs. The result is the creation of business inputs that can be documented and moved to the delivery units.
Software development teams can ensure that their products and services meet customer expectations and deliver maximum value by following these steps. Value identification helps align software development efforts with customer needs, increasing customer satisfaction and higher business returns.
5.2 Value Identification and Requirements Uncertainty
The following are some of the challenges faced in value identification in software development projects:
- Requirement volatility: Requirement volatility is a significant challenge in value identification. As the project progresses, new requirements may emerge, or existing requirements may change. This volatility can impact the project’s timeline, scope, and budget, lowering the product’s value. Moreover, it can lead to project failure if not handled properly.
- Changing user preferences: As the end-users interact with the software, their preferences may change. For example, they may find a feature useful in the initial release, but later they may want to modify or remove it altogether. The changing user preferences can make it difficult to identify the software’s value, and it may impact the project’s success.
- Unclear or incomplete requirements: Sometimes, the requirements may not be clear or complete. This can lead to misunderstandings between the customer and the development team, resulting in the delivery of software that does not meet the customer’s needs. The unclear or incomplete requirements can also impact the project’s budget and timeline.
Requirement volatility can significantly impact the project’s success. To mitigate the risks associated with requirement volatility, the following approaches can be used:
- Agile development: Agile development is an iterative and incremental software development approach emphasising flexibility, collaboration, and customer satisfaction. In agile development, the project requirements are divided into small chunks, and each chunk is developed and tested separately. This approach allows the development team to adapt to changing requirements and mitigate the risk of requirement volatility.
- Continuous communication with the customer: Continuous communication is crucial in mitigating the risks associated with requirement volatility. Regular meetings and discussions can help identify any changes in requirements and ensure that the software development aligns with the customer’s needs.
- Requirements traceability: Requirements traceability involves documenting and tracking the changes in requirements throughout the software development life cycle. This approach ensures that the development team can trace the origin of each requirement and how it has evolved. Requirements traceability can help mitigate the risks associated with requirement volatility and ensure the software development meets the customer’s needs.
5.3 Real-world Examples
The following are some real-world examples of requirement volatility and how it was mitigated:
Amazon: Amazon’s product development team faced requirement volatility when introducing a new feature on their website. The feature was a “Buy It Now” button that allowed customers to purchase a product with just one click. However, the feature resulted in an increase in accidental purchases, which led to customer complaints. To mitigate the risk, Amazon modified the feature to add a confirmation step before the purchase is completed.
Apple: Apple’s product development team faced requirement volatility when introducing the iPhone 7 without a headphone jack. Some customers were unhappy with this change, and they wanted the headphone jack to be reinstated. To mitigate the risk, Apple introduced a dongle that allowed customers to use their headphones with the iPhone 7.
6. Value Delivery
Value delivery in software development involves the following steps:
- Taking inputs from various sources, such as business requirements, user data, and market trends, to create software artifacts that meet business needs and user requirements.
- The primary delivery process involves stages such as planning, design, development, testing, and deployment.
- The primary delivery process produces artifacts such as software code, documentation, test cases, and deployment scripts. Each artifact plays a crucial role in the development process and must be of high quality to ensure that the final software solution meets the desired business need and user requirements.
- Deploying the software artifacts to provide services to end users involves installing the software solution on the end-users machines or servers, configuring it, and making it available for use. The deployed software solution helps end-users solve their business needs by providing services that automate business processes, improve productivity, or enable new business capabilities.
Business inputs and user data are the key inputs to the primary delivery process in software development:
- Business inputs refer to the requirements and constraints that the software solution must meet to satisfy the business need.
- User data refers to the feedback and usage patterns of end-users that help to shape the design and development of the software solution.
The artifacts produced by the primary delivery process are essential for the success of the software solution:
- Software code is the core of the software solution and must be well-designed, well-documented, and well-tested to ensure that it meets the desired business need and user requirements.
- Documentation helps to communicate the design, functionality, and usage of the software solution to stakeholders, such as end-users, business owners, and software developers.
- Test cases are essential to ensure that the software solution meets the desired business need and user requirements and that it is free from bugs and defects.
- Deployment scripts are essential for deploying the software solution to the end-users machines or servers and configuring it correctly.
In conclusion, value delivery in software development involves taking inputs from various sources, such as business requirements and user data, to create high-quality software artifacts that are then deployed to provide services to end users.
By following a well-defined process that includes planning, design, development, testing, and deployment, software developers can create software solutions that meet the desired business need and user requirements.
7. Value Proposition
7.1 What Is a Value Proposition
A value proposition is a statement that communicates the unique benefits that a product or service offers to customers. It outlines why customers should choose your product or service over those of your competitors. Creating an effective value proposition can be challenging, but it is essential for building a successful brand.
7.2 Why Businesses Must Maximise Their Value Proposition
Businesses need to maximize their value proposition because it is a key factor in attracting and retaining customers. A strong value proposition communicates the unique benefits that a product or service provides to customers and sets it apart from its competitors.
When customers perceive the value of a product or service as higher than its cost, they are more likely to make a purchase and become loyal customers. Maximizing the value proposition can also help businesses increase their profitability by differentiating themselves from their competitors and increasing their market share.
By continuously refining and improving their value proposition, businesses can maintain a competitive advantage in their industry and continue to meet the changing needs and expectations of their customers.
7.3 How Businesses Can Maximise Their Value Proposition
The following are three things your business must do to maximise its value proposition.
7.3.1 Know Your Customers
The first step in maximizing your value proposition is to understand your customers’ needs and wants. You need to know what motivates them to buy your product or service. Conduct market research to gain insights into your customers’ behaviour, preferences, and pain points. This will help you tailor your value proposition to meet their specific needs.
7.2.2 Identify Your Unique Selling Proposition
Your unique selling proposition (USP) is what sets your product or service apart from those of your competitors. It is what makes your product or service unique and valuable to customers. Identify your USP and incorporate it into your value proposition. This will help you stand out from your competitors and attract more customers.
7.2.3 Focus on Benefits, Not Features
When creating your value proposition, focus on the benefits that your product or service provides to customers, not just its features. Customers are more interested in how your product or service can help them solve their problems or meet their needs. Highlight the benefits of using your product or service, and how it can improve their lives.
7.2.4 Test and Iterate
Creating an effective value proposition takes time and effort. Test your value proposition with your target audience to see how they respond to it. Use their feedback to refine and improve your value proposition until it resonates with them.
9. Final Words
In today’s rapidly evolving software development market, optimising the value chain has become crucial for businesses to achieve successful delivery and stay ahead of their competitors. The software delivery value chain represents the abstract high-level model that depicts how customer value is generated, delivered, and differentiated from competitors.
By understanding the key challenges and opportunities in the value chain, businesses can develop strategies to optimise their processes and deliver value to their customers more efficiently. Ultimately, value chain optimisation is a necessity for any business looking to thrive in the highly competitive software development landscape. By embracing the value chain framework, businesses can uncover new ways to enhance their offerings and deliver superior value to their customers.