Categories
Methodology Product Management Software

From Ideas to Outcomes: A Practical Framework for Product Value Management

Shipping features is easy. Creating value is hard. This article suggests a practical framework that hopefully will be useful for every product owner (PO).

While working on our products we face very similar questions:

  • What (which feature) should we develop next?
  • How do we justify our plans (the product roadmap)?
  • How do we balance (and compare) initiatives that generate revenue and that bring technical improvements?
  • How do we communicate to stakeholders that reducing technical debt is equally valuable as building new functionality?
  • And maybe the most important one: How do we know if we create value at all?

Teams, while working on their products, estimate business value, prioritize features, deliver functionalities, and than move to the next backlog item. The challenge is that these activities are rarely connected into a continuous value management process.

The proposed framework connects three essential activities performed by every PO. Together, these activities create a continuous feedback loop that supports informed product decisions rather than intuition alone.

  1. Value Estimation – understanding the expected value delivery for every initiative.
  2. Feature Prioritization – deciding which initiatives to be delivered first.
  3. Value Tracking – verifying whether the expected value has actually been realized.

Value Estimation

We need to think what does “value” actually mean before discussing value delivery. One can intuitively associate value with revenue. However, in reality products create value in multiple ways.

Some initiatives generate new business opportunities such as increased revenue, new customer acquisition, higher retention, or faster market expansion. Other initiatives improve the operation of organization by e.g. reducing infrastructure costs, lowering licensing costs, reducing development effort, lowering cost of poor quality (CoPQ). Both are valuable.

POs deciding between new functionality and annual cloud costs reduction will make exactly the same decision. They will need to choose where should the organization invest its limited development capacity. Thus, value estimation requires looking beyond financial metrics alone as successful products create value for both the business and its users.

Feature Prioritization

When the value has been estimated, the next challenge is deciding what should be done first. Fortunately there are several frameworks (e.g. Weighted Shortest Job First, WSJF) that can be very handful. Traditional WSJF evaluates such aspects as Business Value, Time Criticality, Risk Reduction or Opportunity Enablement, and Job Size. It has been successfully implemented in many organizations as it balances value against effort.

However, modern digital products face another important aspect. Business value is rarely created directly and it is realized through successful customer and user interactions. Basically it means that no adoption means no revenue, no task completion means no productivity improvement, no engagement means no retention. One needs to acknowledge that customer value precedes business value. This observation brings the need to extend the traditional prioritization approach to consider both business outcomes and user outcomes.

Value Tracking

Delivering a feature does not necessarily mean that value has been delivered. In many organizations one can see that the value is not measured any longer when the feature is put into production. In product management that should not be of common practice.

Instead, every business initiative should answer three questions:

  • Did we deliver it?
  • Did users actually adopt it?
  • Did the expected business outcomes materialize?

These questions correspond to three different kinds of evidence. This closes the feedback loop. The results of value tracking become inputs for the next round of value estimation. Based on that Product Owners can improve future prioritization using evidence rather than assumptions.

References

  1. K. Schwaber, J. Sutherland, “The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game,” November 2020.
  2. Scaled Agile Framework (SAFe) Knowledge Bas, “Weighted Shortest Job First,” , SAFe 6.0.
  3. K. Rodden, H. Hutchinson, X. Fu, “Measuring the User Experience on a Large Scale: User-Centered Metrics for Web Applications,” in Proceedings of the 28th Annual Meeting on Human-Computer Interaction (HCI), 10-15 April 2010, Atlanta, Georgia, USA.
Categories
Product Management Software

The 6 Phases of Product Lifecycle: Idea, Explore, Validate, Grow, Sustain, Retire

Product Lifecycle Management (PLM) describes how a product evolves from an initial idea to eventual retirement. The lifecycle helps organizations manage uncertainty in early stages while focusing on growth and profitability once a product proves its market fit. Each of 6 phases has a different purpose, timeframe, and success metrics. Early stages (i.e. Idea, Explore, Validate) emphasize learning and experimentation with potential customers, while later stages (e.g. Grow, Sustain, Retire) focus on scaling, operational efficiency, and financial performance. Understanding these phases helps allocate people effectively and manage products throughout their entire lifecycle.

Phases of Product Lifecycle

Idea

The Idea phase is where potential product opportunities are identified. Teams recognize customer problems, unmet needs, or market gaps that could lead to valuable solutions. Ideas may come from customer feedback, technological advances, internal innovation, or strategic business goals. At this stage, concepts are still rough hypotheses rather than defined products. The goal is to quickly assess whether the opportunity is worth exploring further. Activities typically include problem framing, initial discussions, and collecting early insights from users or the market.

Explore

The Explore phase focuses on understanding the problem space and identifying possible solution approaches. Teams conduct research to learn about user needs, behaviors, and market conditions. The objective is to confirm that the problem is real and significant. Activities may include user interviews, market analysis, early concept sketches, and exploratory prototypes. Multiple ideas can be evaluated during this phase. The emphasis is on learning and reducing uncertainty before committing significant development effort.

Validate

The Validate phase tests whether the proposed solution effectively solves the identified problem and creates value for users. Teams develop prototypes or minimum viable products (MVPs) and test them with early adopters. Experiments and usability testing help verify assumptions about desirability, usability, and feasibility. Metrics such as user engagement, activation, and retention are often monitored. The aim is to confirm product–market fit and ensure that the solution is viable before scaling development and investing in broader delivery.

Grow

The Grow phase begins once the product has demonstrated clear value and product–market fit. The focus shifts to increasing adoption and expanding the customer base. Teams improve reliability, performance, and user experience while adding features that strengthen the product’s value proposition. Marketing and distribution efforts intensify to reach a wider audience. Infrastructure and support capabilities are also scaled to accommodate growth. Key indicators during this phase include adoption rates, revenue growth, and customer retention.

Sustain

The Sustain phase represents the maturity of the product. Adoption has stabilized and the product delivers consistent value to customers and the business. Development efforts emphasize incremental improvements, reliability, and operational efficiency rather than major innovation. Teams focus on maintaining competitiveness through updates, performance improvements, and cost optimization. Financial indicators such as profitability, margins, and operational efficiency become important measures of success as the product continues serving established customer segments.

Retire

The Retire phase marks the end of the product lifecycle when the product is gradually phased out or replaced. This may occur due to declining demand, technological change, or the introduction of more advanced solutions. The main objective is to manage the transition responsibly while minimizing disruption for users. Organizations typically communicate end-of-life plans, support migration to newer products, and maintain limited support during the transition period before fully discontinuing development and service.

In short

The product lifecycle describes how a product evolves from an initial idea to its eventual retirement. It begins with identifying opportunities and exploring potential solutions, followed by validating whether the product delivers real value to users. Once proven, the focus shifts to scaling adoption and growing the product in the market. As the product matures, efforts concentrate on sustaining performance and maximizing long-term value. Finally, when the product becomes outdated or demand declines, it is gradually retired while customers transition to newer solutions.

PhasePurposeKey ActivitiesPrimary FocusTypical Metrics
IdeaIdentify potential opportunities and problems worth solvingOpportunity identification, problem framing, initial discussions, gathering insightsRecognizing customer needs and market gapsNumber of ideas, problem relevance, strategic alignment
ExploreUnderstand the problem space and possible solutionsUser research, market analysis, concept sketches, exploratory prototypesLearning about users and evaluating solution optionsResearch insights, validated problem statements, concept feasibility
ValidateTest whether the proposed solution delivers real valueMVP development, experiments, usability testing, early user feedbackConfirming product–market fit and solution viabilityUser engagement, activation, retention, experiment results
GrowScale adoption and expand market presenceFeature development, infrastructure scaling, marketing, performance improvementsIncreasing customer base and market penetrationAdoption rate, revenue growth, customer acquisition, retention
SustainMaintain value and optimize product performanceIncremental improvements, maintenance updates, cost optimizationStability, efficiency, and profitabilityProfit margins, operational efficiency, customer satisfaction
RetirePhase out the product and transition usersEnd-of-life planning, communication, migration support, service shutdownResponsible product discontinuationRemaining user base, migration rate, support cost reduction

References

[1] Theodore Levitt, “Exploit the Product Life Cycle,” Harvard Business Review, 1965.
[2] Philip Kotler, Kevin Lane Keller, “Marketing Management,” Pearson, 2021.
[3] Steve Blank, Bob Dorf, “The Startup Owner's Manual – The Step-By-Step Guide for Building a Great Company,” John Wiley & Sons, 2020.
[4] Tendayi Viki, “The Lean Product Lifecycle,” Medium, 30 November 2018.

Categories
Software

How to adjust figures in Matlab?

I was asked few times about possible adjustment of figures in Matlab. Many times there is simply a need to change slightly the default view in order to align with the template in our publication, book, etc. Thus I will try to show few parameters that can easily adjust the view according to our expectations.

Fortunately in Matlab there is an extended flexibility of doing that. I need to admit that it is much more convenient to edit figures in Matlab than in other engineering tools (e.g. LabVIEW, PSCAD, PowerFactory, etc.). Therefore I personally export all of my results into Matlab and later adjust.

Let me explain how to obtain the following figures. As one can see the figures present the same result but slightly in a different way. I do not need to mention that nicely presented research results can easily attract broader audience. Hence even in the conservative scientific world it is of great importance to be able selling our findings.

Notch Filter - Bode Plot
Notch Filter - 3D Phase

The figures above show the variation of notch filter depending on the quality factor. The filter is tuned for 100Hz and included in synchronous reference frame and afterwards represented in natural/stationary reference frame. Thus the resonant peaks are shifted ±50Hz. The notch filter transfer function is expressed in the following way.

Such figures can be obtained by using the following code. Please note that also Control System Toolbox is needed to obtain the frequency response of the notch filter.

% Prepare workspace
clc, clear('all'), close('all'),
% Define font parameters
fontname= 'Cambria';
set(0,'defaultaxesfontname',fontname);
set(0,'defaulttextfontname',fontname);
fontsize= 10;
set(0,'defaultaxesfontsize',fontsize);
set(0,'defaulttextfontsize',fontsize);
% Get screen resolution
scrsz= get(0,'ScreenSize');

%% Notch filter
% Define frequency parameters
f= 50;                    % Grid frequency [Hz]
omegaO= 2*pi*f;           % Angular frequency [rad/s]
omegaN= 2*omegaO;         % Resonant frequency [rad/s]
step= 0.1;                % Frequency step [Hz]
frequencySeries= 1:step:200;
omegaSeries= 2*pi*frequencySeries;
% Construct transfer function
s= tf('s');
sN= s-1i*omegaO;
sP= s+1i*omegaO;
% Allocate memory
firstIndex= 1; lastIndex= 30; k= 1;
surfTf= zeros(length(frequencySeries),lastIndex);
map= zeros(lastIndex,3);

%% Display results
% Initiate figure
f1= figure('Name','Transfer Function Plot',...
'Position',[scrsz(3)*0.2 scrsz(4)*0.2 scrsz(3)*0.35 scrsz(4)*0.45]);
hold('on'),
for index=firstIndex:k:lastIndex,
     Qn= 100/sqrt(2); Qd= index+5;           % Quality factor
     GnN= (sN^2+omegaN*sN/Qn+omegaN^2)/(sN^2+omegaN*sN/Qd+omegaN^2);
     GnP= (sP^2+omegaN*sP/Qn+omegaN^2)/(sP^2+omegaN*sP/Qd+omegaN^2);
     Gn= 1/2*(GnP+GnN);                      % From SRF to NRF
     [magGn,phaseGn]= bode(Gn,omegaSeries);  % Frequency response
     GnCplx= magGn.*exp(1i*phaseGn);
     surfTf(:,index)= GnCplx(:);
     sub1= subplot(2,1,1,'Parent',f1);box(sub1,'on'),hold(sub1,'all'),
     plot(frequencySeries,abs(GnCplx(:)),...
          'Color',[0 1-index/lastIndex index/lastIndex]),
          ylabel('|{\itG_{notch}}| [abs]'),
          xlim([min(frequencySeries) max(frequencySeries)]),
          ylim([0.5 1.02]),hold('on'),grid('off'),
     sub2= subplot(2,1,2,'Parent',f1);box(sub2,'on'),hold(sub2,'all'),
     plot(frequencySeries,180*unwrap(angle(GnCplx(:)))/pi,...
          'Color',[0 1-index/lastIndex index/lastIndex]),
          xlim([min(frequencySeries) max(frequencySeries)]),
          ylim([-1100 1300]),hold('on'),grid('off'),
          ylabel('\angle{\it{G_{notch}}} [\circ]'),xlabel('{\itf} [Hz]'),
     map(index,:)= [0 1-index/lastIndex index/lastIndex];
end
c1= colorbar('peer',sub1,'East');colormap(map),
set(c1,'YTickMode','manual','YTickLabelMode','manual',...
 'YTick',[firstIndex; floor((lastIndex-firstIndex)/2); lastIndex],...
 'YTickLabel',[firstIndex+5; floor((lastIndex-firstIndex)/2)+5; lastIndex+5]),
hold('off'),

f2= figure('Name','Impedance Angle',...
     'Position',[scrsz(3)*0.2 scrsz(4)*0.2 scrsz(3)*0.35 scrsz(4)*0.45]);
ax2= axes('Parent',f2);grid(ax2,'on'),hold(ax2,'all'),
mesh(180*unwrap(angle(surfTf))/pi),zlabel('\angle{\it{G_{notch}}} [\circ]'),
     ylabel('{\itf} [Hz]'),xlabel('{\itQ_n} ','Rotation',322),view([60 40]),
set(gca,'XTick',[firstIndex; floor((lastIndex-firstIndex)/2); lastIndex],...
 'XTickLabel',[firstIndex+5; floor((lastIndex-firstIndex)/2)+5; lastIndex+5],...
 'YTick',1:50/step:length(frequencySeries),...
 'YTickLabel',min(frequencySeries):50:max(frequencySeries)),

Feel free to use and modify included Matlab code. I am also looking forward to hear from you in case of any suggestions and comments.

Categories
Software

Change font name in Bode plot

I had been struggling with this problem a while before I did manage to find a work around. It was actually quite important for me to change the font name in Bode plots because I decided to use everywhere Cambria in my report. Normally Heveltiva is used by default in Matlab.

In general it is possible to change font in Matlab plots without any problems. But this is in case the standard package. It should be emphasized that each of Matlab toolboxes is developed by separated teams of specialists. That is why sometimes different features can be solved with a different approach and actually in Control System Toolbox it is not predicted to change font name. You can change the size or style but not the name.

Available parameters for different labels in case of Bode, Nyquist, etc. plots are the following

>> PlotHandle= bodeplot(TrunsferFunction);
>> PlotOptions= getoptions(PlotHandler);
>> PlotOptions.Title,
ans =

String: 'Dummy Title'
FontSize: 10
FontWeight: 'normal'
FontAngle: 'normal'
Color: [0 0 0]
Interpreter: 'tex'

As everyone can see there is not option defining the font name. Fortunately there is some space to deal with it due to the fact that it is possible to define the interpreter. In Tex it is actually possible to define font name locally in text. This can be done in the following way

PlotOptions.Title.String= '';
PlotOptions.XLabel.String= '\fontname{Cambria}{\itf}';
PlotOptions.XLabel.FontSize= 10;
PlotOptions.YLabel.String= {'\fontname{Cambria}|{\itG_{ol}}|',...
    '\fontname{Cambria}\angle{\itG_{ol}}'};
PlotOptions.YLabel.FontSize= 10;
PlotHandle.setoptions(PlotOptions),

And here is the final result.

Bode Plot Font NameAnother solution is to get the frequency response into arrays and display results using functions form Matlab base package. In this case it is also possible to change axes font name.

You can also change the default system font for all figures and axes by putting the following code at the beginning of your m-file. Please note that this will change your default font during your Matlab session. I do this quite often if I do not want to think so much preparing figures for printing.

fontname= 'Cambria';
set(0,'defaultaxesfontname',fontname);
set(0,'defaulttextfontname',fontname);
fontsize= 10;
set(0,'defaultaxesfontsize',fontsize);
set(0,'defaulttextfontsize',fontsize);

Hope this helps and looking forward to see some comments.

Categories
Software

Shapes in deep shadows and high lights in Matlab

Normally I work in different toolboxes of Matlab on purpose. Either it is for my research project purposes  or due to my research project purposes. That is why I came up with an idea to do something in Matlab that would not have any application. I wanted to do something what would look nice and be by itself. Later of course I found some interesting applica