Thursday, April 14, 2011

Features: less is more

Imagine this:  You are in the market for a new blender.  All you're going to do with it is to make smoothies and milkshakes.  If it grinds ice and the parts are dishwasher safe, that will do.

You walk into your favorite small appliance store and see a row of blenders.  None of the prices are shown.  Almost all of the blender boxes say that they will make smoothies and milkshakes.  Two of them say they're dishwasher safe.  One of those two blenders can also shred metal, is easy to take apart, has measuring markers on the side, and comes with a set of six exchangeable lids, identical except that they're white, black, green, brown, red, and pink.

But again, it's hard to tell the price.  The cash register is downstairs at the far end of the store, and there are no price checking stations to be found anywhere.

Which would you choose?  Most people would choose the simpler blender.  Why?  Fit for the customer's needs, and "I don't need all of those extra things," and "It will cost me more."

In product management, whether it's software, blenders, or even a resume the concept is the same -- less is more.  Your product needs to fit the customer's needs, but not beyond that.  More is not necessarily better.  In fact, the company could be earning a much smaller margin on each blender because of the cost of those additional features and the requirement to keep the price under a certain level.

By the way, I checked the web site - the simple-looking blender actually has many of the features of the fancy one yet still earned the sale.  ...but that's more of an outbound marketing issue, isn't it?

Thursday, April 7, 2011

Privacy in social media

There's an old story of two hikers who come across a hungry-looking bear in their path. The first hiker starts running for his life. The second hiker stops, sits down on a rock, takes off his heavy hiking boots off, reaches into his backpack and pulls out a pair of running shoes.


The first hiker yells back at him, "What the heck are you doing? You know you can't outrun a bear!" To which the second hiker matter-of-factly responds, "I don't have to outrun the bear, I just have to outrun you."
More on that story in a moment.

Whether it's Twitter geolocated tweets, photos that include GPS metadata, or your Facebook profile, you have the option of sharing with the world where you are.  If you share pictures of your kids that include GPS coordinates and most of them are clearly taken at home, you've just advertised where that child lives.  ...and as you probably already know, there are bad, crazy people out there who are looking for you and your kids for any number of reasons.

Note to self, recheck pictures on Facebook to see if they contain GPS coordinates.

What you may not realize is that you are one entry in a phone book.  I'm not saying it's okay to share with the world that you're about to be a mother or father and all baby gifts can reach you at P. Sherman, 42 Wallaby Way, Sydney, Australia, but adding to your Twitter profile that you live in Sydney is probably fine because Sydney is, after all, a pretty big place.  So is New York, San Francisco, San Jose, etc.  If you had a lot of enemies, could they still find you?  Yeah, Zabasearch is one way to do it.  For most of us, though, it's a lot like the story of the bear above.  You're aiming to not be the easiest target. 

Also remember that most people are too busy thinking about themselves to obsess about you, so unless you come across someone particularly crazy and vengeful or have decided to plant $100 bills in your front yard and word is getting around, there's no value in someone travelling miles to seek you out. 

Tips:
  • For most people living in large cities, it's okay to make your city of residence public.  Like opting in to newsletters from your favorite stores, sometimes a little bit of information out there can make good things happen (e.g. an old friend decides to get back in touch when in the area). 
  • Make private matters known only to people you trust. 
    • Most crime happens among people who know each other, and chances are you know which of your friends and family you can trust. 
    • Employers may not be "out to get you" but if you're looking to get a job or keep a job, you probably don't want them to read about certain things you post publicly that might reflect badly on them.
  • Facebook and Twitter are by default not private, so even if you decide to keep that the way it is, just remember who your audience is.  More than just your Twitter followers have probably read your post about Charlie Sheen, for example, since it's very easy to search for tweets without ever logging in.
  • Your video of the kids posted on Youtube is probably fine, so long as you keep the above points in mind. 

Yeah, but we can build things that barely stand up!

In college I remember taking a class at UC Davis in which the professor started a lecture one day saying that, "anyone can build a house.  Throw enough materials at it, and it will be a suitable home."

Then, with a smile on his face he added, "but engineers can build a house that barely stands up."  He said it as if he was proclaiming the cure for world hunger.  Someone in the class murmured, "We can probably do better than that..."

That comment, plus a number of quizzacle looks on students' faces prompted him to explain, "We know how to build a strong house with the minimum amount of materials.  Anyone can build a house, but usually it will contain a lot of wasted resources or won't be as strong."

That class was a general Engineering course.  How does this apply to software engineering?  Thinking back further, I remember reading something from Steve Gibson, whom created SpinRite and other apps, claiming that the efficiency of software had become a lost art, and that a program written to accomplish a fairly simple task now consumes a large amount of disk space, RAM, and processing power when it could have been accomplished within a few hundred kilobytes and under 100 megahertz. 

Well okay, that's not an exact quote, what he was getting at is that we've thrown a lot of resources at a problem when the solution could be quite simple.  Many programs written in Java are built to be interpreted and compiled on-the-fly, increasing application portability at the expense of size and processing power.  Software contains interfaces and procedures for crunching data from other programs that the user may never use, and that would only be activated with the right complimenting technology.  In the mean time, it consumes disk space and memory.  Visual software development tools make it easy to develop a computer program, though the computer's interpretation of what was intended is sometimes ambiguous and opens security holes. 

Entire libraries now have to be shipped with a product even when a few of those functions are used by the program.  That's probably not such a big deal -- it's akin to leaving branches on the tree logs used to build your log cabin.  A little unsightly, but it's not doing any harm, and there's nothing wrong with the part of the tree that's being used, right?  Wrong - if some of the unused libraries are insecure and leverage the parts of the library in use, it would be like putting termites into those branches.  Eventually they could reach the core of the house. 

This is getting abstract, so let's come back to a real life example of software engineering sloppiness:  A few years ago, Magellan sent out an update for its GPS devices that required the user to enter an activation code based on the serial number.  The installer interpreted the serial number string as a number.  The activation code generator interpreted the serial number as a text field.  That wouldn't matter except that since the integer variables didn't bother to store the number of leading 0's in the serial number field, the activation code came out differently depending on whether the leading 0's were read or not. 

Here's a security example:  Stuxnet used a number of small holes and hooks to get where it needed to go.  (http://www.isssource.com/tag/how-stuxnet-spread/) That included USB drives, print spooler services, autorun.inf, Siemens project files, and finally programmable logic controllers.

Put this way, it looks like as we make it easier to build software, we're all following the "anyone can do it" methodology.  Software engineering becomes cheap.  So going back to the beginning of this article, where's the engineering element of building it right?  How do we build strong software with minimal resources?  Should we all go back to building software with assembly?

Monday, August 23, 2010

The Customer's Train

The customer told the product manager he needed a new train to go from New York to San Francisco.
The product manager commissioned his engineers to build it.
It would cost one million dollars.
So the money was spent.

The product manager found the train inadequate.  "It needs to carry passengers," he said.
It would cost another three million dollars.
So the money was spent.

The product manager found the train inadequate.  "We need to feed passengers on this journey," he said.
It would cost another six million dollars.
So the money was spent.

The product manager found the train inadequate.  "Surely the passengers will need to carry luggage too," he said.
It would cost another three million dollars.
So the money was spent.

The product manager found the train inadequate.  "The train should be efficient -- build me a train that uses less fuel," he said.
It would cost another eight million dollars.
So the money was spent.

The customer called.  He said a competitor had finished building the train he wanted.
It would cost less than ten thousand dollars.
So the product was bought.

The competitor was Brio.
The buyer worked for Amtrak.
The user was his 8-year-old son.
New York and San Francisco were models the buyer had built for his son.

Always remember the difference between the buyer and the user.
Build according to the user's needs.

Saturday, May 15, 2010

Are you a "team player"? The difference between having a job and being an indispensible asset

Results-driven team player seeks employment.  Highly effective team player.  We use these phrases so commonly in our resumes and curriculum vitae that we sometimes forget what that's really supposed to mean.

Remember Karri Strug?  Despite injury, she delivered a near-perfect gymnastics routine at the Olympics in 1996.  Quoting Wikipedia:  "The completed vault received score of 9.712, guaranteeing the Americans the gold medal.[3][5] Karolyi carried her onto the medals podium to join her team, after which she was treated at a hospital for a third-degree lateral sprain and tendon damage.[3][5] Due to her injury, she was unable to compete in the individual all-around competition and event finals, despite having qualified for both.[6]"  She put her team before herself.  She put her country before herself.  Her photo belongs in the dictionary right next to the definition of team player

Now think of the value of sports, or the military.  The focal point is learning to work together to accomplish something that's bigger than you.

So what is a job?  If you answered that you get paid to do something you're skilled at, you're only partially right.  If you're a sole proprietor, maybe that's all you need to know, but most of us get paid by someone else to do something.  Why do they pay us?  Because they have a need?  Well, yes; and now you're getting warmer, but you still don't understand the critical use case -- the reason why a job is important.

Point is this::  to be a team player, your preferences and well-being is secondary to the well-being of the team.  In baseball, if there's a key player on base, athletes never step up to the plate hoping to get walked; they try to hit the ball so that someone can run home and score a point.  By stepping up to the plate at all, they're taking a risk of getting injured, and that would be a travesty -- for the team to have lost them.  The player has to have that mentality too. 

To earn a job, you have to convince an employer that everyone in the company would benefit from having you on board.  You would provide them with something they lack today.  By employing you, everyone at the company and all of their investors would benefit.  "I have skills" is only half of it.  Can you serve your company?  Are you an asset they can't do without?  If you don't show up for work on time because the snooze button on your alarm clock is far more attractive than helping everyone in the company feed their families, you're not a team player and it would be a mistake to hire you. 

If you have children, as I do, this concept is not foreign to you; you have to get up each morning to feed your family, and though it may be painful to drop off your children at daycare, as they cling to your leg and scream "Daddy, don't go!" you know that you can do a better job as a parent by going to work and earning the money that will be necessary to provide for them.  That family team commitment does not release you from your duties to your work team, it's an additional reason why you need to stay healthy, perform your assigned duties, and pick up your kids at the end of your work day to still get some family time.  Your work enables your work team to earn money.  Your earnings at the end of the day enable your family team to support each other, provide for children, and/or allow you to live comfortably during evenings and weekends.

So I ask you again, are you a team player?  Think about it.

Wednesday, May 12, 2010

Free Roast Beef Sandwich

This is a rant about Arby's, but like all of my rants I dig into the business reasons of where the mistake was made and what was lost.

Situation:

As a special treat last week I decided to take my daughter out for a fast food lunch.  We don't do this often, and I figured this would be an opportunity for me to demonstrate to her that new foods can be delicious.

A quick look through my Entertainment Book revealed there was a coupon for Arby's.  The coupon was, "Free roast beef sandwich with purchase of roast beef sandwich of equal or greater value."  So I put her in the car, and started talking about how wonderful roast beef sandwiches, and how when I was little, we would all meet at the local Arby's (then Rax) after softball practice. 

By the time we arrived, my 3-year-old daughter was willing to give it a try as long as she still could get fries.  We waited in line, she picked out what she would want to drink, and I got to the counter and requested a deluxe roast beef sandwich for myself and an "Adventure Meal" for her, with kids size roast beef sandwich.  Apple sauce for her, curly fries for me (she could try some of my fries; they no longer carry regular fries at that location), I was given the total, and I presented my coupon.

"I'm sorry sir, but the coupon doesn't apply to kids roast beef sandwiches or to deluxe ones.  It only applies if you buy two basic, adult-sized roast beef sandwiches." 
"But you're only losing about $2 for a kids sandwich.  Normally you would lose $5."
"Sorry, sir but those are the rules.  The coupon is only good for an adult basic roast beef sandwich."
"She won't eat a full-sized sandwich even if I do downgrade mine to the basic.  Can I speak to a manager?"
"I am the shift manager."

I could have given in, and probably would have if other alternatives were difficult to get to, but I was standing in a food court in the middle of the Great Mall.  There are lots of other options, and most businesses are hurting.  Especially during lunch time on a weekday.  I suppose Arby's doesn't need my business that badly, or they want to call my bluff.

"Fine.  Then cancel the order."

The "manager" sighed and then proceeded to clear out each item individually as we walked across the food court to McDonald's.  I paid the same amount as I would have paid full price at Arby's, but I was offended that Arby's wouldn't honor my coupon, especially since I was willing to buy something more expensive than the coupon required.  My daughter did try her cheeseburger -- about 3 bites.  Oh well.

Marketing & Promotions Best Practices

Back to marketing and product management, which is what this blog is all about:  a coupon is a company's willingness to negotiate in hopes of an upsell or repeat business that will make up the cost of the promotion.  It forces the buyer to become aware of a business in their area and to try something new (as Mom always said, "try it, you'll like it!").  Buy 1 Get 1 promotions specifically are most effectively used to thin out the inventory and minimize inventory losses, though for the Entertainment Book it's usually the reason already specified above -- they want at least two customers to try something new, hoping they'll try it again.

For many promotions, the service staff then suggests an upsell option that offsets the cost of the promotion.  For me, Arby's didn't even need to convince me to upgrade; I had already chosen my upgrade; cheese-flavored sauce does not cost them the $0.75 per sandwich I would have paid (more like $0.10 if that), and they had the opportunity to lose less on the second sandwich than they ordinarily would have. 

How much more would it have cost Arby's to build infrastructure to handle more flexible coupons?  Not much.  In fact, they could have written it off as a free kids meal to make it easier on the cash register.  Here's what Arby's lost:
  • If my daughter had liked Arby's sandwiches I would have brought her back a lot more often.  Some kids are picky eaters, but at least my daughter isn't shy about saying what she wants.  If she said "I want an Arby's" I would be happy to go out of my way to get her one to encourage her experimentation with new foods.
  • I now doubt they'll honor my other Entertainment Book coupons, so additional marketing dollars spent on me will be wasted.
  • My daughter remembers the food court as the place where she got that Happy Meal toy at McDonald's and will no doubt request McDonald's next time too.
Willingness to pay has changed over the past two years.  Companies who don't adapt will find it hard to get customers.