Category Archives: On Product Management

Don’t get caught using averages (part 2)

Pareto/Power Law distributions: the needle in the haystack

I wrote previously about the prevalence of Pareto/Power Law distributions in product users’ behavior here.  Wow, that’s a lot of alliteration.

But the discussion stopped at only one dimension of data.  For example, a single dimension like Free versus Paid users of a Freemium product such as online backup.

The story gets really interesting when you consider multiple dimensions (aka variables) of data at once, each with its own Pareto characteristics.  The outcome can lead you to a some very interesting places.

In the first scenario, a small set of users in Dimension One (let’s say, Paid product users) also represents a small set of users in Dimension Two (let’s say, country of user origin).  This can mean that a tiny percentage (sometimes less than 1 percent!) of an entire user base represents almost all of the revenue or commercial value.

When this happens, it’s incredibly important to know who these users are; you’ll need to hang onto them for dear life to protect your revenue stream.  For example, you might cater to the specific needs of users from their country of origin.  Do you think users in China have different product needs than in France?  Probably.

In this scenario, you’ll also need to consider a revenue diversification strategy to protect your risks of relying on such a small segment.

Another scenario is that users in Dimension One (again, Paid users) don’t belong to the majority (or, “head”) of the distribution within Dimension Two (again, country of origin).  In which case, the implication is that country doesn’t matter in targeting your best (e.g. paying) users.

You can go astray in this scenario by looking at country of origin in isolation.  Maybe you have a huge pool of users from Germany.  The temptation would be to conclude “Germany is my most important market”.  Unless you knew that paid users didn’t cluster around a single country and that Germany was comprised of lots of free users.

What to conclude?

One: make sure you know if your most valuable user segment is much smaller than a Normal distribution would imply.  Most people think that their most important user segment is something like 10-20% of their base.  If 1% of your users drive the business, know who they are, find more like them, and don’t lose them.

Two: don’t let any one dimension of data drive your definition of user segments and internal decision-making.  If you hear sound bites inside your company like “German users are our most important”, that’s being too imprecise.  It generally takes 2-4 dimensions/variables to be precise about a user segment and to know how to best treat them (“Paid users with broadband PC connections in Germany are most important”).

Three: if you truly have 1% of your users driving the business, consider diversification strategies.  You’re carrying a lot of risk, but you also have 99% of your users from which another valuable segment can be found and served.

Last: as I argued in the prior post, it’s easy to dismiss the Pareto effect as only applying to obvious examples like Freemium for online consumers.  I’ve found the same patterns in other businesses.  In which case the gap between reality and perception is even wider!  Spend some time hunting down these patterns inside your company.  I promise you will be rewarded with new insights.

Don’t get caught using averages (part 1)

Our brains are wired somehow to think of everything in terms of a Normal Distribution, aka the “Bell Curve”.  It’s a trap that can kill a tech company.

The shape of the curve means that we think of populations of data (such as users) as being a somewhat homogeneous group if only we could compute the average.  For example, how many minutes per day “on average” a user spends on a website.   Or, the percentage of people “on average” who actively post on a social media platform.

The problem is that populations of people almost never behave in a normal distribution when online or using software products. Instead, the more prevalent pattern of behavior is a Power Law, or Pareto Distribution:

The Pareto distribution is also known as the “80/20 rule”.  Except that in online worlds, the ratio can be even closer to “95/5″.

Think of Freemium business models.  Generally, 2-8% of users consume a paid offering.  The rest use the free version.  Power Law/Pareto distribution, not Normal.

Think of participation in social media.  1% are active contributors, 10% are intermittent contributors and 90% consume but never post.  Power Law/Pareto distribution, not Normal.

These steep Pareto curves have profound meaning on making choices in running a technology company.

If you operate a Freemium business but don’t know which users are the 5% most likely to upgrade to the paid version, then you risk catering to the needs of the Bell Curve: a population of users that looks more like 50-60% of the whole.  Who don’t necessarily pay or monetize.

This is the trap. Chris Anderson touched on this in his book “Free”, by illustrating how the Power Law distribution drives monetization in Freemium business models.

There are other traps by thinking in Normal terms.  Beyond Freemium, the Power Law distribution of behavior still applies.

Take Enterprise business models.  Every user is a payor, of approximately the same fee.  Yet 2-10% of a user population is massively active versus the rest.   And with that 10% of users comes maybe 10-20% of the revenue.

Which is your most important segment? Are you trying to solve the problems of those 10% “power users”?  Or the needs of the rest?

An example: I managed a product that enabled monitoring of corporate networks and systems for the sake of spotting anomalies.  Anomalies which could indicate a security breach in progress, or the risk of one.

Some users spent a large percentage of their day performing the monitoring function for the company.  They were specialists who used the product intensively throughout the day.  These power users had distinct needs, such as the ability to mine and explore data in depth to spot anomalies for themselves.

The rest of the users were different.  They weren’t monitoring specialists.  The monitoring role was only one of many roles they played for their companies.  Thus, they wanted to spent the least amount of time possible in my product.  Instead, they expected the system to alert them automatically, and offer specific actions to take.

Two user populations.  Two very different sets of needs.   One “market”.

Knowing who your core audience is, and the nature of the Power Law distributions, is essential in setting priorities on which segments to serve.  And those that can trap you.

In this post, I’ve only been discussing Power Law in one dimension of meaning (free vs. paid, automated alerting vs. manual trend-spotting).  Some of the most interesting Big Data analytics findings come from combining multiple dimensions of meaning, each with its respective Power Law behavior (a simple example: free/paid combined with locale).  I’ll tackle that one in a future post….

Hadoop: now with branded paper towels!

I’ve been driving a Big Data initiative at work.  We use the Hadoop technology stack extensively.  The Hadoop logo looks like this:

This morning, I woke up and started making coffee.  As I do every morning, I placed a paper towel on the counter to catch my coffee spills.  Except this morning, the paper towel caught my eye:

The similarities are striking, no?  I mean, Hadoop is popular and all, but I didn’t realize it is now marketed to Tesco customers in Prague via paper towels.  ;-)

My hero, the Software Architect

In my many years doing product management or managing the function, the number one blocker to getting the features I want (and the user needs) is……software architecture.

Reading Mike Driscoll’s recent blog on software craftspeople reminded me that this architecture topic has been stewing in my brain for a while now.  Time to write about it.

“Too hard”, “too complex”, “too long” are the persistent reasons behind engineers’ resistance to feature requests or major product pivots.  What I realized is that in every case, it was the software architecture holding us back.  More specifically, the lack of componentization and modularity.

And the pattern spans every experience I’ve had; across lots of different products, across lots of different market sectors, across lots of different architectures (from client-side tools to client/server apps to SaaS/cloud apps), and across lots of different company sizes (pre-revenue to behemoths like SAP and EMC).

Need a new UI presentation tier?  Sorry, that code is co-mingled with the underlying business logic.  Need a new data management tier?  Sorry, the file system is bound to the rest of the code.  Need new business objects to show up in the schema?  Sorry, we can’t split our giant table and it’s already too big to extend.

One can understand how this predicament arose.  When new products are built, what’s required is focus on solving the user problem at hand.  You don’t have time nor money to design for unknown needs and future flexibility.  So why pay for abstraction and modularity without any present-day reason?

The bigger problem is when products mature and the user needs outgrow or diverge from the capabilities of the original architecture.  What to do next?  Re-factor and modularize?  Re-build from scratch?  Limp along by stuffing new features into the code but with huge effort each time?

Nobody knows the magic formula for how to make these decisions.  Re-factoring scares the crap out of engineers lest they “break something”.  After all, by the time this discussion arises, you’ve got spaghetti for code.  And the folks who wrote it might not be around anymore.

Re-write scares the crap out of the business leaders, since it appears to be paying twice for the same product.  And there’s the inherent risk of missing deadlines.  Oh yeah, and you just put your legacy product version on life support so you can afford to staff the engineers on the re-write project.  And you’re losing ground to competitors along the way, since you’ve stopped new feature development to pay for a better architecture.

No wonder products whose architecture devolved to something bad, or started that way, never get fixed.

This vicious cycle is what creates the opportunity for “innovation” in the form of a start-up who has the benefit of a clean sheet of paper: fresh, elegant code using state-of-the art languages, components and tools.  That seems like a wasteful way to solve the problem.

Enter the architect.  If you have a great architect, every problem is reduced in magnitude.

With a great architect, new products have some modularity and flexibility designed in.  A little bit of future-proofing goes a long way. Existing products can be selectively modularized and modernized so the new functional capabilities are delivered without breakage.  And if the time comes for a re-write, you have confidence that all of the lessons learned from the legacy code base are applied to the new design.  Thus, a greater chance of success, especially in meeting a deadline.

So, what makes a great architect?  In many respects, a lot of the same characteristics that make a great product manager: curiosity, an ability to translate what users and salespeople need into technical terms, abstract thinking that enables one to imagine new possibilities, etc.  Of course, the architect also needs the deep technical experience too.

Back to the premise of Mike Driscoll’s article: the best software is being built by people with, dare I say it, experience.  Experience to avoid pitfalls because she messed something up before.  Experience to choose the right tools for the job, much like a fine craftsman that builds furniture, or houses, or bespoke clothing. Experience to know what degree of flexibility to design in, without paying for needless flexibility that feels more like insurance against every conceivable future requirement.

I’ve known some good architects and probably only one or two great ones.  With the great ones, we have had some huge debates thanks to the force of personality that seems to come with great ones.  But in the end, despite the strong personalities, great architects are worth having.  And the great product companies know this, which is why they spend a lot of money on great architects.

I say it’s money well spent.

Where do Product Managers come from?

I was reading the interesting but flawed article on Techcrunch about “product guys”.  As in, Product Managers.  Let’s at least start with the right title.  Cripes.

One of the author’s contentions was that good product managers must have coded in their past, in order to properly collaborate and empathise with their engineer co-workers.

This assertion made me think about where good product managers came from.

The first answer is that product managers don’t come from product management.  As in, there is no university degree for product management that is a mainstream path into product management as a job.  (Yes, there are a handful of product design degrees, but sadly at present a tiny portion of product managers carry this pedigree.)

Therefore, product management is more of a trade, with the apprenticeship starting elsewhere.  Good product managers come from many places.

In enterprise software, pre-sales engineers are a common path to product management.  Why?  They spend all day demonstrating their products and even deploying them in customer environments.  Maybe pre-sales engineers get so frustrated with the product that they want to take it upon themselves to fix the issues.  It’s also the case that pre-sales travel can burn you out, for which a headquarters job can be appealing.

Product managers can also come from customer care.  People who spend all day troubleshooting users’ issues can develop an acute sense of what product features work, don’t work, and why.

Product managers can also come from engineering, especially those who tend to interact with product managers such as architects.  Again, the motivation can be rooted in frustration and the sense that “I can do this job better”.  Or, the realization that coding products isn’t a long-term career goal.

I have also seen great product managers come from quality assurance.  The attention to detail that QA instills helps condition product managers to “sweat the details” of a great user experience.

Every path into product management – pre-sales, engineering, customer care, quality assurance – brings a valuable facet to the product manager job.  And experiences that product managers per se wouldn’t otherwise have to the same depth.

Which leads to my final point.  No matter what your heritage, you are only bringing one facet of the role based on past experience.  Thus, product management is a journey of curiosity, learning, collaboration, trial & error, persistence, passion and so forth.  Product managers who demonstrate those traits tend to succeed.  And the rest probably less so.

Staring chauvinism in the mirror

We recently hired a bright, talented young woman into my organization as a product manager.  She had interviewed with members of both my staff and that of colleagues by the time she met with me.

The people in my staff and peer departments are almost entirely comprised of males.  I asked her whether she sensed any chauvinism during the round of interviews.  To which her response was, “no”.

Later, I felt regret for asking the question.  Whereas I was asking in part to establish empathy (as in, “I’m not a chauvinist and won’t abide it in my team”), I realized the dilemma I could have exposed her to.

In effect, she could only say “no” because if she said “yes, I sensed chauvinism” then she could think I had a reason not to hire her on the basis of fit or avoidance of future conflict.

On further reflection, I realized I asked the question because my own ability to assess the situation is limited.  Limited by a cultural gap between me and the primarily Czech workforce she would be working with.  In other words, I don’t know what chauvinism is, or is not, in the Czech culture.

In the year I have been here, there have been times where I felt that I was able to sense cultural differences.  This situation reminded me that there are many things I don’t (yet) understand.  And that my cultural norms can’t simply be projected onto another culture.  Disconcerting….

Let the learning continue.

“Why can’t we build cool products like Apple?”

If I hear this question in a high tech company again, I’m going to puke.  For starters, because your/my company doesn’t have Steve Jobs.  He’s a freak of nature.  A genius of sorts.  And one of a tiny number of people in the history of the technology industry that have his skills.

But lots of companies make great products and lots of money without needing a Steve Jobs.   Shouldn’t we focus on that instead?

First, let’s stop doing the things that are sure to deliver a bad product.  That should raise the chances of success by 50%.  Such as: catering to a small percentage of a user base with esoteric features that will appear complicated to the rest.  Or, rushing to deliver something without proving it’s useful and useable.

Then, let’s do the things that look like best practice. Spend the time upfront designing it right.   Explore contrarian approaches and avoid mimicking competitors without knowing exactly why.

Sweating the details.  Avoid making the user’s life too complicated with extraneous features.  Wait a minute, isn’t this what Apple does so well?  ;-)

Turning customer complaints into inspiration (and action)

At work, I subscribe to an email distribution list where customer complaints from web forms get routed around.  Every day, someone complains.  It’s logical given the size of our user base (100 million+), but more importantly because we know we can do better.

That steady drumbeat of complaints motivates me.  Call me a masochist. Complaints are a constant reminder that with every improvement we make, there is still work to do.

An aside: you won’t be surprised to know that one of our web forms, for general feedback and product suggestions, is highly skewed towards complaints too.  If you ever doubted the adage that for every customer that praises, there are ten who complain, I’m pretty sure I have the proof.  No matter.

You’re probably wondering, where’s the news here?  Don’t we all try to listen to customer feedback?  Yes and no.

It’s tempting to get immune to that drumbeat.  If you get ten complaints every day, is it possible to eventually accept this as “normal”?  After all, your business is probably growing regardless.

I’ve seen two dilemmas in multiple companies where I’ve worked (disclaimer alert: this blog isn’t about my current company per se).

One dilemma is that the corrective action isn’t obvious.

A quick win is to inspect how customer complaints get categorized on receipt.  Regardless of whether you have a call center, online help forums or both, the taxonomy by which you classify complaints can matter.  At numerous companies I’ve worked for, that taxonomy was broken in the sense that for those people who built the product (product managers, developers, QA et al), this customer care data wasn’t categorized clearly enough that it would guide their behavior.

The second dilemma is that not each and every complaint can be resolved to the customer’s complete satisfaction.  Like all things, the corrective actions require prioritization, on the basis of user impact, prevalence, etc.

If you’re good at categorization, then the corrective action is clear and so is the priority.  Try it, you’ll like it!

Can we please stop calling it “software engineering”?

I’m a deep skeptic of “absolutism”.  And the use of “engineering” to describe software development breeds absolutism.

The word Engineering in other contexts is grounded in science.  As if there is one answer, or at least one best answer, to a scientific problem.  For example, mechanical engineering is bound by properties of the materials in use.

Whereas software development is about the art, not science, of using languages. While languages have rules, they also have flexibility.  Use of a language can be precise, obtuse and everything in between.

Lots of priorities can be served (or not) with a given program.  Want your code to be performant?  Want your code to be maintainable, as in understandable by others?  Want your code to be modular so that it can be easily refactored or replaced?  All will affect how the code is written.

If you doubt the flexibility of coding languages, then what can explain software quality assurance?  After all, these myriads of tests are to deal with the innate diversity, flexibility and expressiveness of code and of the coder.

And we haven’t even got to the choices in designing components of code and architectures.

So why does this matter?  Because thinking about software development in – pardon the word – binary terms ignores many of the choices and challenges of building great software products.  You might not care about things like “cyclomatic complexity”, but you will when you inherit someone else’s code from 10 years ago and you need to keep it going.

We need to focus on choices not absolutes; on degrees of truths.  Software has gotten too damned complicated to think of it in simplistic terms.

Maybe we should call developers “software linguists”?

What makes a great product manager?

This topic has been covered by many, many bloggers.  Yet most have written from locales such as the U.S., where things are different from my current home.

I’ve been thinking a lot about the challenge of building a great product management team here in the Czech Republic.  Particularly given the relative dearth of software vendors, which means that experienced product managers are in scarce supply.

Experience is a tempting credential to rely on when hiring.  Product management, to paraphrase my esteemed colleague Alan Lefort, is more like a trade guild than a university-taught profession (despite the lively debate over on Cranky Product Manager a few weeks ago).

First, I started thinking about good product managers I’ve known in the past, from places such as San Francisco or Boston.  What was in common beyond the obvious experience they had in software product management?

I also thought about the less-than-great product managers I’ve known, and even hired.  All had the requisite experience, but somehow that wasn’t enough.

So if it isn’t experience per se, nor a formal degree, what is it?

Intellectual curiosity.

Without exception, great product managers are great learners.  Their innate curiosity means they are always in a mode of learning.  It could be reading a book, or asking great questions of others in their own company, or networking with experts, etc.

I’ve recently toyed with intellectual curiosity as a primary interviewing topic.  You would be amazed at the disparity of answers from otherwise qualified candidates.  Some couldn’t cite any example of how they pursued their curiousity to better their work.  Others gave tremendous answers.

The most memorable example of late: a user experience designer told me he learned anatomy in order to better understand how people interact with computer interfaces.  And that he studied corporate finance in order to better measure the impact of usability improvements on his product’s financial performance.  Wow.

(Note from the cynic in me to future applicants: don’t confuse knowing my hiring criteria with meeting them.)

One of the greatest effects of the Internet is the extreme democratization of knowledge.  There’s no reason to not be curious; so much knowledge is free.  Those product managers who are curious will be richly rewarded.  Those who aren’t are going to be left behind.