Treat software as a product
Luminaries like Netflix, Amazon, and other tech giants paved the way for treating software as a product—instead of as a project. As a result, the concept has taken center stage in the industry. The notion behind software as a product is that funding, planning, execution, and support for an application should be thought of as a perpetual cycle, instead of a one-time project. Furthermore, even aspects of software that are not necessarily customer-facing should be treated as products. In reality, a web service’s lifecycle is continuous and requires maintenance, improvements, and refactoring as the service continues to support the shifting needs of applications.
Rally the team around product success.
The challenges and lack of alignment dissipate when the whole team organizes around a single objective: product success. In response, the industry established the role of a Chief Product Officer (CPO), which encapsulates both the projected business outcome and the delivery capability aligned to these objectives.
Adopting a product organizational structure is advantageous.
The product team owns requirements and self-informs through user research, user testing, and analytics.
The success of the customer and the success of the business are evaluated by a single team sharing context.
The scope and gold-plating are evaluated in context with the goals of the product.
The team composition is fixed to retain domain expertise and improve long-term velocity and throughput.
Building transparency and trust within the team results in better estimates, more predictable output, and higher retention.
|Rely solely on business subject matter experts.||Gather customer input (primarily in the form of user research, user testing, and analytics).|
|Fund a one-time project.||Approach each initiative as an evergreen application that requires ongoing investment to prevent it from succumbing to legacy rot.|
|Design a product without considering ROI or clear metrics of success.||Make each application demonstrate the associated ROI so investment is fully justified.|
|Let teams develop each aspect independently.||Require a dedicated product team with a more comprehensive skill set that includes engineering, product design, product management, engineering, and DevOps.|