Differences in Software Products
Software product management and engineering is a specialty that differs from enterprise or bespoke applications.
Common mistake of novice product teams is that they overlook the specialty of 'product' development. Product development is vastly different from bespoke/enterprise application development. Following sections outline some of the reasons behind the differences:
The need for Competitive UVP
Software products must be unique to stay ahead of their competition. It’s a key reason for a customer to buy your product over your competitor's product. The success of the product depends on how well you align your teams (dev, support, sales and marketing) to offer this unique value proposition (UVP) to the market.
Customer Onboarding Methodology
Software products should be effortlessly accessible to all potential customers. They should be able to use self-sign-up, trials, and documents to understand the product's capabilities. We need to engineer the core product to support customer onboarding in a frictionless manner. Bespoke and enterprise applications have a straightforward onboarding process since they know the target user segments in advance.
Handling Product Licensing Needs
Most products provide different product variations (editions) to address distinctive market segments. Such editions are formed with a mix-n-match of features through a license based commercial mechanism. The features such as the ability to trace billing, throttling based on usage, periodical payment collection, etc. make product engineering and operations vastly different from bespoke development.
Level of Agility Required in Architecture
Unlike enterprise applications, products must adapt and respond to changing market conditions to stay ahead of the competition. Such frequent changes are costly in development, and impact customers who use your product. The agility at the architecture level is of paramount importance for sustaining your product's market leadership. Such agility is gained by thoughtful decoupling and agile architecture practices that should be planned from the beginning of product development.
Need for Functional Flexibility
Products are not used by a single organization/user but are expected to be sold to multiple clients. Business rules, process workflows, integration requirements usually differ from one organization to another. Product teams have to deal with a lot of unknowns due to this fact. The product must therefore be built configurable, extensible and compatible.
Demands of User Experience
The importance of ‘user experience’ is far more prominent in product engineering for two reasons.
- The obvious market competition factor
- The products are not made for a known user base but should cater diverse (and mostly unknown) user groups of future customers.
It's a nontrivial challenge that requires deep research into personas and user-journeys. Product teams must treat requirements as assumptions and validate continuously.
Flexibility in Branding and Identity
Specially in B2B products, branding cannot be fixed. Different clients should brand the product according to their corporate theme and branding guidelines (including logos, colors, etc.).
Under certain business models, the product may get sold as a plugin of a partner solution. Such arrangements make the ISV an OEM (Original Equipment Manufacturer), where the product must have the facilities of white-labelling.
ROI is usually immediate in a custom deployed bespoke application. In contrast, products take longer time to return financial benefits as it takes time to establish in the market. Until such time, the product must stay trendy and relevant and be competitive. This requires sophistication in engineering practices such as automation, delivery, quality controls, etc. A higher degree of maintainability with a sustainable cost of operation is essential in product engineering.