Archive for the 'Engineering' Category

From Personas to Functional Specifications

This is the second post in my Customer Research series.

Many people have asked me how persona work leads to product definition.   Here is my personal take.

In any new product development effort, we need to ask the following questions:

  1. What is the market segment I am shooting for, and is it big enough?
  2. Who am I making this product for?
  3. What are the problems that customers are trying to solve?
  4. How may our core competencies be applied to solve these problems?
  5. What are the product features that may deliver these solutions?
  6. What is the end user’s mainstream workflow, and what minimum feature set is necessary to service that workflow?
  7. How would the end user want these features to work for Version 1?
  8. What would the roadmap look like for future releases?

Item 1 is a market sizing and analysis exercise.  It is based on quantitative data from analyst reports and from internal market analysis.  It builds the business case for a new product, and helps establish a basis for interest that justifies further effort.

Items 2 and 3 are addressed by persona development.  I like to interview prospective customers in the environment they will be using the product in about their thoughts on the problems that the future product may address.  I listen between the lines and then derive the needs, wants and expectations of the prospective customers.

The key words are “prospective” and “expectations”.   Expectations are set by experiences, which is why you will get a different result if you interview existing customers of a previous-generation product, as opposed to prospective customers that represent your target market.

Item 4 is a cross functional discussion involving the product manager, the engineering lead, and a proxy for an archetypical end user in the sweet spot, representing the primary persona we are trying to target.   For instance, if the target user is a 65 year old, there should be an older person in the discussion to represent their point of view.

If the core competencies do not support a viable solution to the customers’ problems, the team would have to go back to Item 1 and rethink the target market and the business case.   Developing new core competencies is an engineering research activity that precedes product development.

Item 5 is about envisioning features that will deliver the solutions needed by end users, and Item 6 places them in the context of user workflows.   One is meaningless without the other.

At this point is generally a lively discussion with all the possible ways to serve up benefits to customers.   Rather than going around in circles in the office, I reach out to customers to get their feedback.  I employ a few techniques for this:

  • Get customer feedback with paper prototypes.  This can be done either as a round-table discussion (2-3 groups of 8-12 participants each) or remotely by phone on a one-on-one basis.  This should be done with both prospective customers and existing customers so we can get the full range of perspectives for people in the sweet spot and for early adopters. Results should be interpreted separately, of course.
  • Beta testing with hacked prototypes where feasible. This should run for 2-4 weeks with prospects AND existing customers with separated analysis of results for the two constituencies.
  • A product concept test for the new product, executed as an on-line survey to prospective customers only.
  • A comparative product concept test, pitting the proposed product against a control product, executed as an on-line survey to existing customers and prospective customers.

Once we get through 1-6, we will have a clear idea of what features ought to be included.  The next step, Item 7, addresses how those features should work.  I like focus groups for this detailed phase, but if budget doesn’t permit, we can cover this with informal round tables or virtual focus groups.  I like qualitative techniques for this because it is difficult to get into enough detail with quantitative techniques.

When we wrap up Item 7, we have nailed all the requirements and are ready to develop a Functional Specification for Version 1 of the new product. This should represent a minimum set of features that service the mainstream workflows of end users in the primary persona.  The product team can now execute on the new product.

The learnings from 1-7 will also feed Item 8 – roadmapping.  We will have a ready list of features that deliver secondary benefits, and we can tentatively bracket those into future releases.

This process can sound like a drag. It is not. It is simply a practical way to frame the challenge of understanding customer problems.  The whole thing can take anywhere from a few days to a few months, depending on how much the product team already knows about the market and the product, and the scope for the new product development effort.   A little thinking goes a long way here – much better to invest time up front than start development without a clear understanding of what one’s doing and why.

Add to DeliciousAdd to FaceBookAdd to StumbleUponAdd to Twitter

Contractors or permanent hires?

In this uncertain economy, a startup is often caught in a Catch 22 situation when it comes to staffing and team building.  What do you do when you have a lot of work now, but you cannot predict whether the work will be there in 6 or 12 months?

Nobody likes to let good people go.  A decision to take on a permanent new hire is not something I take lightly.  To avoid hiring on spec, a lot of people turn to hiring consultants or contractors to get the work done while mitigating risk.  The thinking is that we can plug the current need with contractors now without resulting in a long term bump in the company’s operating budget. If the work stays and there is budget for it, wonderful.  If not, no hard feelings – we simply part ways when the work goes away.

This method can work wonders, but I have seen it being taken too far.  This is particularly problematic if some specific and esoteric domain knowledge is required to build the product itself.  So the next time the company needs to get something done, they have to incur the learning curve all over again.

I believe in striving for balance between the conflicting needs of not over-hiring and not building core competencies. I like the following model:

  • Hire contractors with domain expertise to address specific and transient project needs
  • Hire excellent generalists to become permanent members of the team. Do temp-to-hire if possible so we can test-drive the relationship and make sure the team member will thrive in the company in the long run.
  • Have the contractors work with in-house staff to complete their projects.  The project is done as quickly as possible, the in-house staff is cross trained in a new area they are unfamiliar with, and the company gets to build up its core competencies. It’s a win-win situation.

How have you addressed this challenge in your company?

Top 10 startup articles of the week

Minimum Viable (Hardware) Product?

I’ve been thinking long and hard about how to apply lean startup techniques to hardware products.

After much head scratching, I have to conclude that you don’t.  It can’t be done.

There are several killer issues:

  • Manufacturing lead times
  • Regulatory approval – cost and lead time
  • Inventory

Let’s say you invested minimally, developed a great theory regarding your customers’ needs and wants, came up with a feature set, completed the design and negotiated a price for your tooling, all for peanuts.

Now you have to wait for your contract manufacturer to go through all the stages of their validation process to get to the beginning of the ramp for mass production.  That’s a couple months right there.

Once you have a pilot product to test, you will need to submit it for regulatory approval in all the countries you plan to sell the product in.  That’s a couple more months and tens of thousands of dollars of regulatory certification cost.

Then, mass production starts.  Capital is tied up in component cost.  Then you start churning units on the manufacturing line. More capital is tied up in finished goods.

By now, it’s been many months since the inception of this new product idea.   Finally you are able to sell your product to real buyers and users – and you find a fatal flaw, which you have missed in your haste to bring your product to market.

Guess what?  You can’t afford to write off the inventory. So your sales team will need to sell the flawed product as is.  If you are selling through retail channels, that’s even worse: you have to make sure they are incentivised to sell through to end users.  Suddenly, instead of spending your available capital on the next iteration of your product, you are now spending every available dollar on marketing in hopes of moving units out of inventory and freeing up cash.

So, much as I love the idea of lean startup techniques, I regretfully came to the conclusion that when it comes to hardware products, you have to do it old school.  Do your homework.  Make your business case.  Test, test and test some more using storyboards, white models, reference products and so forth,  without charging people money for it, and get buyers and users to be heavily involved during the product development process.  Validate and verify to the death.

There’s still opportunity to apply MVP principles: don’t overdesign, but whatever you do design into the product, do a kick-ass job.  A serious mistake may not be survivable for a small company introducing a new hardware product to market.

10 Signs you aren’t developing a Minimum Viable Product

10. You picked an embedded processor that yielded a firmware footprint headroom of 127% for future expandability.

9. Your firmware person often writes innovative features beyond what’s in the spec to harness some of that excess power in your processor.

8. Your product has a custom adaptor for an interchangeable component for which there is no alternative option.

7. You designed your PCB to be modular so you can plug different boards into the main board with nice flex cables. But you only ever sell the main board with the same module plugged in.

6. Your typical end user regularly uses only 7 out of 32 available user interface elements.

5. You invested heavily in a highly original feature that an end user championed. Upon investigation, he was one of 17 who cared  about this feature – out of 13,267 end users.

4. It’s hard to write a tutorial that exercises the full feature set, because 40% of your features don’t fit in the top 3-5 use cases.

3. You keep holding the release because someone keeps coming up with a last minute feature idea that really isn’t that hard to implement.

2. Your idea of product success is to solve some of the problems of all of the people out there, rather than solving all of the problems of some of the people out there.

1. It’s been 4 years since you proved the feasibility of your technology, yet your product is still in development.  And your product has nothing to do with curing cancer or sending humans to Mars.

Is this you? If so, you may want to read this seminal article on Minimum Viable Product by Eric Ries,  followed by this great article on the Minimum Viable Process by Cindy Alvarez. It may help make your product development cycle a little leaner the next time around.

Just-In-Time: A Cautionary Tale

At Product Camp Boston, Alan Armstrong encouraged anyone who hasn’t read “The Goal” to read it right afterwards.

This brought back fond memories.  I read the book in the late eighties.   It also brought back one unhappy memory from the mid nineties.

I was with a startup at the time. Just-In-Time Manufacturing was quite the fad.  The head of manufacturing at my company decided to implement JIT by the book.  The goal was to minimize inventory.  No more stockpiling of components or finished goods!  Think of all the capital we would be freeing up from the inventory!

Lo and behold, inventory was minimized. The balance sheet looked fantabulous. What incredible efficiency!  We were nearly as lean as Toyota!

Weeeeell… this worked as long as the components all passed incoming quality control (IQC).  There came a day when one key component flunked IQC.  We suddenly had 100% failure of all samples tested on this component.

PANDEMONIUM!

After a few all-nighters, we finally realized from our root cause analysis that something had gone south in the supplier’s manufacturing process.  As that was a single sourced component, we were stuck.

The supplier bent over backwards to mitigate this. However, this took time.  It was a good 4 weeks before we received parts that were in spec again.

Meanwhile, we depleted our finished goods inventory.  We had to shut down our own manufacturing line until we received good components again.   We ended up losing a couple of deals due to inability to fulfil them in time, not to mention the cost of lost productivity on our line.

The moral of the story: JIT is not to be applied naively. The general principle makes perfect sense but flexibility is key in its application.

In the case of my startup, we eventually evolved to a system where we stockpiled high risk components that had a history of quality fluctuations, while going light on purchasing commodity items.  Inventory levels were not as spectacularly low, but we never had to shut down our line again.

How important is it for engineers to have direct access to customers?

Today I attended Barbara Finer’s excellent roundtable discussion on customer interactions at Product Camp Boston.  At one point, Barbara asked everybody to rate the importance of direct access to customers for product managers and for engineers.  Everybody agreed direct access for PM’s was extremely important.  However, the room was divided on the importance of engineers having direct access to customers.  One person rated it a 5 out of 10.

WHOA!

A few people, including myself, were up in arms over this.  I firmly believe we should have engineers meet and observe customers as much as possible, and as often as possible. In my 16 years of experience, this has never failed to make an impact.

To me, it’s an absolute no-brainer.  Engineers can get siloed unless product management makes it a point to provide them with context.  They need to be given the tools to understand how the features they are developing will be used, and why they matter to the company and its customers.  Nothing beats the immediacy of meeting customers and interacting with them.  It turns on the passion in engineers, and helps align them towards developing the right solutions to solve the customer’s problems.

Of course, budget and time is always an issue, especially in these lean times.  But if we believe this is important enough, we can certainly make it happen.  I currently have a budget for each engineer in my organization to travel to see a customer once a quarter. I’ll work fiercely to protect this budget to make sure my engineers are tuned in to the needs and wants of the customer,  instead of being tuned in to technology for technology’s sake.