Software product management best practices and software product line engineering best practices complement one another. Software product management best practices provide software engineers and software project managers with guidelines for developing software products and software development projects, and software product lines rely on these same guidelines to determine the components that should be reused in multiple software products.
software product management best practices software development software development process software software engineering software product software product management software project software project management software design software architecture enterprise resource planning systems software strategy best practices software security software testing end user computing enterprise application integration (EAI) data integration software quality best practices metrics evaluation Agile methodology Scrum Lean Six Sigma software development software engineering software product software product management software project software project management software design software architecture enterprise resource planning systems software strategy best practices software security software testing end user computing enterprise application integration (EAI) data integration software quality best practices metrics evaluation Agile methodology Scrum Lean Six Sigma business process re-engineering (BPR).
This paper provides an understanding of software product management best practices, introduces Wikipedia articles related to them, explains how they relate to software product lines, and outlines further steps needed to incorporate such best practices into a software product line context.
This paper is intended for professional software developers who are interested in improving their knowledge of competing development methodologies and tailoring their approach based on the type of business-to-developer (B2D) relationship maintained with their organization’s stakeholder(s).
Most software development firms are not software product companies. That is, software development projects tend to be performed for a variety of clients unrelated to each other, maintaining relatively short-term relationships with each client. These clients do not share their business processes or data assets with other clients, but develop software solutions independently for their own use.
However, software products are different in that they are typically developed according to unified specifications shared by the software product’s owner(s), who expect the software product to serve multiple users within a common market or domain. This means that software products tend to have longer life cycles than traditional custom computer applications because changes may require subsequent updates of the entire software product instead of just updating an individual project’s software code.
Software product development can be approached in a number of ways. software products are generally developed in phases that include requirements analysis, software design, software development, testing and evaluation. which might appear straightforward to the layperson have their roots in software engineering best practices established by experienced software product developers.
The software being developed is not necessarily for an external client, but is instead intended for internal use within the company developing it. However, software products are different from traditional custom-application software because they often serve many users within a common market or domain rather than serving one organization with unique needs.
Software products therefore tend to have longer life cycles than do custom-developed applications because changes may require subsequent updates of the entire software product instead of just a custom software application.
Some of the Software product management best practices are:
Blind software development: software product development without direct user involvement.
Software engineering: the study and practice of how to create software products.
Agile software development: software product development characterized by iterative delivery, requirements flexibility, and a cross-functional team that frequently adapts to working environments (see Agile manifesto).
Waterfall software development: traditional linear software product development characterized by sequential phases such as requirement definition, software design, implementation, testing, and deployment.
Lean startup method: an approach to developing any new product or business based on validated learning and scientific experimentation (see Lean startup).
Business model: the abstract concept summarizing how an organization creates value through offering products and services, generates revenue, incurs costs, manages risk, and eventually captures profit (see Business model).
Customer development: a software product development process that focuses on identifying customer problems instead of building software products. It is an early stage startup method popularized by software entrepreneur Steve Blank (see Customer Development Manifesto).
Customer discovery: the first phase of customer development in which software entrepreneurs learn about their customers’ needs while iteratively developing a business model.
Minimum viable product (MVP): software with just enough features to satisfy early customers while allowing for further refinement based on validated learning via scientific experimentation.
Proof-of-concept prototype: validates whether or not an idea is technologically feasible or profitable before investing in software development.
Customer validation: software entrepreneurs seek to find early customers who are willing to pay for their software product before investing in software development, by using a proof-of-concept prototype.
Market segmentation: software entrepreneurs divide the market for their software product into subsets of potential customers with similar characteristics and problems.
Geographic segmentation: software entrepreneurs divide the market geographically into subsets of potential customers who are similar in location, demographics, socioeconomic factors, etc.
Pivot or persevere: The decision process that software entrepreneurs follow either to pivot or persevere on their software business model if they have not achieved customer validation within an iteration cycle.
This is our concise guide on how to build a successful software product.