NHL Playoffs: Controlling the Addiction

April 10th, 2008

I love hockey. I mean I really love hockey. Last winter Olympics, I spent three weeks in a row watching hockey until 3am so I could watch every minute of every game (thank you Tivo!). Having gone a year without cable, this is the first NHL playoffs that I’ll be going without TV. This is good and bad.

The good part means I won’t be watching every minute of every series. Yes, I’m saying that’s a good thing. Even though part of me can’t believe I just typed that sentence. But frankly, I have way too much going on to spend several hours every day watching hockey.

So instead, I’m going to every Sharks home game. This is bad. (Who am I?). No really, it’s bad for my wallet. But then again, I have a job and why else do I convince myself to go to work every day.

Okay, this matter is clearly more complex than good and bad. Let’s get back to the basics. I love hockey. Go Sharks!!

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

Problem Solving: Evaluating Solutions

April 2nd, 2008

In a series of posts on problem-solving, I will be sharing my personal approach to finding and evaluating solutions. At times, I may also evaluate other methods or draw from other resources, in which case references will be cited at the end of the post. This is the fourth post in the series.

In the previous three posts, I outlined how to clearly define the problem, identify constraints on the solution and then brainstorm possible solutions. The next step is to evaluate the solutions that were generated during the brainstorming process.

This, in theory, should be the easiest step. We’ve already defined all the constraints and brainstormed several solutions. All we need to do now is to evaluate each solution as follows:

  1. Does it actually solve the problem?
  2. Does it meet all of the constraints?

First, rule out any solutions that don’t actually solve the problem. Now is the time to be critical. It is very easy to get distracted by good ideas that are tangential to solving your problem. This is where clearly defining the problem is very helpful. For each solution, ask yourself, does this solution make the problem go away. If the answer is no, rule it out. It doesn’t mean it’s not a good idea. You may still want to do it. But it does mean it is not a good solution and you have not yet solved your problem.

For the second question, does it meet all the constraints, don’t rule out a solution if the answer is no. Instead, for each solution, give it a score based on how many constraints it meets. If all constraints have equal weight, just count how many constraints it meets and use that as the solution’s score. If some constraints are more important than others, then count those constraints multiple times (according to their weight), when scoring each solution.

After you have scored each solution, first check to see if you have any solutions that meet all of your constraints. If so, then focus on just those solutions. Rule out any solution that does not meet all of your constraints. At this point, someone might be emotionally tied to a solution that is being ruled out. This may leed to another discussion about the importance of each constraint. That is okay. It is always good to question the constraints. But be sure to discuss the value of the constraints, not the value of the solution that is being ruled out.

If you have multiple solutions that meet your constraints, congratulations!. But you aren’t done yet. If you are having a hard time identifying which of your perfect solutions is the right solution, then odds are, you haven’t identified all of your constraints. If people are still making passionate arguments for one solution over another and you are not coming to agreement, then dive in and look for more constraints. Don’t argue over specific solutions. Instead, discuss the importance of new constraints.

If you have no solutions that meet all of the constraints, you have a couple of options. You can either reevaluate your constraints or you can continue to brainstorm solutions. The key here is, are you willing to compromise on your constraints. If you are, make sure it’s for a good reason. Often times you can compromise on your constraints by finding another way to meet that need. But don’t compromise on a constraint just becuse you haven’t found the right solution. Nobody will be satisfied and the problem will keep rearing its head. Instead, go back to brainstorming.

If you stick to this method:

  • Define the problem
  • Identify the Constraints
  • Brainstorm Solutions
  • Evaluate Solutions
  • and iterate on each step as needed, you may not always find the perfect solution, but you’ll spend far less time arguing over inadequate solutions.

    If you enjoyed this post, please share it or subscribe:
    Stumble it! - Digg It - RSS Subscribe

Problem Solving: Brainstorming Solutions

March 30th, 2008

In a series of posts on problem-solving, I will be sharing my personal approach to finding and evaluating solutions. At times, I may also evaluate other methods or draw from other resources, in which case references will be cited at the end of the post. This is the third post in the series.

In the previous two posts, I outlined how I like to clearly define the problem at hand and then get everyone interested in the solution to list their constraints on the solution. This gives us a bounded canvas for finding a good solution. The next step is to brainstorm solutions.

Almost everyone in the room is going to have a favorite solution or be opposed to someone else’s solution. At this point, the key is to get all the possible solutions out. Use a white board. Don’t allow criticisms. That will come later.

The key to a good brainstorming session is to make sure that everyone participates and that the tone of the group stays positive. At this point, there are no bad solutions. It’s often difficult for people to be the first one to put a solution out there. It helps if you start off with a couple of your own. But be sure to not dominate the session.

Encourage people to think outside the box. If the group is focusing on the same solutions that have already been thrown out, throw out some off-beat solutions. They don’t have to be practical. The point isn’t that one of these solutions might work, but it might help people think more creatively about solutions that will work.

There is a ton of literature out there on how to run a good brainstorming session. Do your homework. Everyone is creative. When you clearly define the problem, identify the constraints and set up the right environment for creativity, ideas come quickly.

In the next post, I’ll walk through my process for evaluating these solutions.

Previous posts in this series:

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

Problem Solving: Identifying the Constraints

March 15th, 2008

In a series of posts on problem solving, I will be sharing my personal approach to finding and evaluating solutions. At times, I may also evaluate other methods or draw from other resources, in which case references will be cited at the end of the post. This is the second post in the series.

Identifying Constraints

In the previous post on defining the problem, we discussed how to break up a set of problems and brainstorm solutions for each problem individually. But how do we know which solution is best?

This is where defining the constraints comes in. Let’s continue with our scenario from the last post:

At some point your team realizes you are behind schedule, customers are knocking down your door asking for more and more features and your engineers are working around the clock. Meanwhile, your site stability needs to be improved and you have a growing list of bugs. What do you do?

and we listed each problem mentioned in the scenario:

  • you are behind schedule
  • customers are getting antsy
  • your engineers are at risk of burning out
  • site stability is putting your business at risk
  • the quality of your product is at risk due to the growing bug list

Some likely constraints might be:

  • Limited headcount
  • Limited cash
  • Desire to not compromise on code quality
  • Need to not compound work-load of already overburdened employees

Each person with a stake in solving the problem, likely has their own set of constraints in mind. Unless they are clearly articulated and listed, it will be difficult to find an agreeable solution.

I’ve been in dozens of discussions in which a solution is being evaluated and someone in the room can’t come up with a rational argument for why the solution won’t work, but is still unhappy with the solution. In just about every case, this was the result of an uncovered constraint.

Sometimes there are no solutions that abide by all the constraints. When this occurs, instead of spending hours arguing over the merits of one solution or another, it’s easier to weigh the importance of each constraint relative to each other. This helps people remove themselves from their emotional attachment to a particular solution and more objectively evaluate what are often tough tradeoffs.

In the next post, we’ll discuss how to narrow the field from dozens of “solutions” to the handful of solutions that actually solve the problem within the defined constraints.

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

Green Tuesday: The Lowdown on Carbon Offsets

March 11th, 2008

When I first saw a TerraPass on an SUV, I was annoyed. Do people really think they can justify driving an SUV in an urban setting by paying for someone across the globe to plant some trees? But with green being the new black and carbon-neutral being the latest trend, I wanted to know, does it really work. Here’s what I found out.

What are carbon offsets?

The idea is simple. By getting on an airplane, I am personally responsible for a portion of the carbon emissions from that airplane. To compensate or offset that, I can give money to an organization that works at removing carbon from the atmosphere. It’s simple math. If I pay to remove as much carbon from the air as I put in, the net effect is zero or carbon-neutrality. I can enjoy my vacation knowing that I caused no harm.

So what’s wrong with that?

The problem is, it just isn’t that simple. First, not all offsets are created equal - some are good, some are less good (or arguably bad). Second, there are no standards, thus how much to offset is controversial. Third, the rationale behind offsetting is a short-term solution at best and arguably a convenient way to make those of us who can afford a carbon rich lifestyle feel less guilty about our impact on the environment.

Good Offsets vs. Bad Offsets

The carbon-offset industry is a mess. With no standards and dozens of “certifications”, as a consumer it’s tough to tell if you are really buying anything beyond a piece of paper. There are countless stories of offsets that turned out be meaningless, including some recommended by the British government.

Then there is the type of offset. You can pay to plant some trees, invest in solar energy, support training programs for 3rd world countries, replace old equipment with more energy-efficient equipment and so on. There are a multitude of options. What is a concerned consumer to do?

There is endless literature on the topic (see a handful of references below). But the quick summary is such:

Tree Planting: low cost, less effective than other methods, non-native plants may wreak havoc on the local ecosystem.

Renewable energy: wind power, solar power, etc. Lowers the emissions associated with generating energy.

Energy conservation: invests in equipment that lowers the demand for energy (sustainable housing, energy-efficient equipment, etc).

Methane combustion / capture - Significantly reduces the emissions from methane.

Another critical question to answer is, would the project happen if you didn’t buy the offsets? There have been countless scams where offsets were sold to support projects that were already funded. It’s key to find out if the offset is actually having an impact.

How much is enough?

Ok, so you do your homework and you find some good offset options. The next problem is that no two organizations measure your carbon impact the same way. So how do you know the right amount to offset? This is perhaps one of the most controversial problems associated with offsets. Until there are standards around this industry there won’t be a good answer.

The ethics of offsetting.

I found that I wasn’t alone in thinking that buying your way out of the consequences of your actions doesn’t actually compensate for your actions. It still rubs me the wrong way to think that by investing in solar energy it makes it okay for me to contribute to the problem by living a high carbon-emission lifestyle. First and foremost, before even considering offsets, I feel like I should do everything I can realistically do to reduce my carbon emissions. I see carbon offsets as the very last option when I have no other choice.

Want to learn more? Check out these articles.

Previous Green Tuesday Articles:

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

Problem Solving: Defining the Problem

March 8th, 2008

In a series of posts on problem-solving, I will be sharing my personal approach to finding and evaluating solutions. At times, I may also evaluate other methods or draw from other resources, in which case references will be cited at the end of the post. This is the first post in the series.

Defining the Problem (or in most cases, problems)

My first step in solving a problem is to clearly define the problem. This may seem obvious, but I have found most people skip it. I work in the internet industry spending most of my career at early-stage startups and have encountered the following scenario more times than I can count. It illustrates the need to clearly define the problem.

At some point your team realizes you are behind schedule, customers are knocking down your door asking for more and more features and your engineers are working around the clock. Meanwhile, your site stability needs to be improved and you have a growing list of bugs. What do you do?

It’s easy to feel overwhelmed by this scenario, especially in a startup where the vision is grand, but the day to day grind is tough. There are a few simple steps you can take to fend off feeling overwhelmed. The most effective one is to list out the problems and to focus on each one at a time.

In our scenario, we can separate the following problems:

  • you are behind schedule
  • customers are getting antsy
  • your engineers are at risk of burning out
  • site stability is putting your business at risk
  • the quality of your product is at risk due to the growing bug list

Looking at each of these in turn, not only fends off feeling overwhelmed, it also introduces a whole new set of solutions. For example, if we look at all of these problems together, we will probably decide, we need more engineers. This is probably true, regardless of how we look at the problem, but this solution may take time. By looking at each problem independently, we can look at other solutions that we can pursue in parallel.

Let’s brainstorm for a minute.

You are behind schedule, what can you do besides hire more engineers?

  • Reduce the scope: cut out anything that isn’t a must-have.
  • Identify acceptable short-cuts that can be addressed after the release.
  • Release incremental progress in exchange for more time.

Customers are getting antsy, what can you do besides hire more engineers?

  • Be transparent. Send regular updates of development progress, including screenshots.
  • Release incrementally so they can use what you have now, but know more is coming.
  • Start a beta program and allow customers to help test your software.

You get the idea. We can do this for each of these problems and generate many possible solutions besides the most obvious (and most costly in both time and money) of hiring more engineers.

I’ve found that when you can only come up with one solution, you probably haven’t defined the problem correctly. The goal is to define the problem such that it becomes easy to identify solutions.

A well-defined problem meets the following criteria. The problem is defined such that:

  • Generating solutions becomes easy.
  • All stakeholders agree that solving this problem addresses their needs.
  • One and only one problem is represented.

To clarify, the last point, this doesn’t meant that a single solution can’t solve multiple problems. But by defining problems one at a time, you set yourself up to generate more possible solutions.

As we’ve seen, defining the problem this way, makes it much easier to generate solutions. But how do we know which solutions are the right ones. In the next post, I’ll walk through my process for defining constraints. This is a critical step for making sure all stakeholders are satisfied with the final solution.

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

Green Tuesday: Organic vs. Locally-Grown Food

March 4th, 2008

Thanks to vendors like Whole Foods, the organic food movement has become trendy. But if your goal is to be good to the earth, organic may not be good enough.

The key to buying environmentally-friendly produce is to know where your food is coming from. If you buy organic tomatoes shipped from Mexico, you are supporting an organic farmer, but you are also incurring the costs of shipping the tomatoes from Mexico to you. Compare this to the effects of buying locally grown produce that may not be grown organically. Some argue that locally grown trumps organic when it comes to the impact on the earth.

Obviously, locally-grown, organic produce is the best option. Save the earth (and your body) from harmful pesticides and avoid the pollutants from transporting the food.

If your neighborhood grocery store doesn’t carry locally-grown, organic produce, see if your area has a farmer’s market. Not all produce at farmer’s markets is organic or locally-grown, but some will be. Ask the vendors where their produce is grown and with what methods. Most I’ve talked have been more than willing to provide details.

If you can’t find a local farmer’s market, search online for produce delivery services or for a Community Supported Agriculture (CSA) group. Again, ask specifically about organic vs. locally-grown.

I live in California, so it is easy for me to eat locally-grown, organic produce. I realize it’s not so easy for people who live in less agriculture-friendly environments. Nonetheless, organic vs. locally-grown is an interesting debate. If you want to read more, explore the following links:

Or if you are interested in learning more about where all your food comes from, not just produce, check out The Omnivore’s Dilemma by Michael Pollan.

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

New Series: Exploring Problem Solving Techniques and Related Topics

March 1st, 2008

One of the things I’d like to explore in a series of posts is problem-solving. I will explore tools and techniques for arriving at solutions, but also explore related concepts in day to day problem solving. For example, getting buy-in on solutions, making sure the solution meets all stakeholders’ needs, facilitating creative problem solving in a group, etc.

Problem solving is something we encounter every day of our lives. Improving this skill, is perhaps the most effective thing we can do to simplify our lives.

in the coming weeks, posts will explore the following topics.

Problem Solving

  • Defining the Problem
  • Understanding Constraints
  • Generating Solutions
  • Evaluating Solutions
  • Refusing to Accept Mediocre Solutions
  • Getting to a Known Solution
  • identifying Whether or Not the Cause of the Problem is Relevant to the Solution
  • Formal Methods for Finding Solutions

Related Topics

  • Getting Organized
  • Prioritizing
  • Relationship Building: Getting Along with Everyone
  • Listening Skills
  • Getting the Most Out of People

Some of these latter topics may not seem directly related. But I find them t be invaluable in getting to solutions faster. Exposing the connection will be half the fun.

I’m looking forward to it. I hope you are too.

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

The Cost of Perfection

February 28th, 2008

I’m a perfectionist. I always have been. I struggle every day with wanting everything to be perfect. I’ve spent the past 10 yeas working at internet companies. For anyone who has ever used a website before (clearly you), this isn’t going to come as much of a surprise. But it turns out software (including websites) aren’t perfect and never will be.

One debate we often have at work is when should particular bugs be fixed, if ever. Those last two words are the kicker. That’s right: if ever.

Despite being a perfectionist, somewhere down the line, I learned about opportunity cost. It turns out not all bugs should be fixed. This was an amazingly difficult concept for me to understand. With bugs, the argument is two-fold:

  1. Whenever you change code, you run the risk of introducing bugs. To fix bugs, you need to change code. Thus fixing bugs often begets more bugs. Side note: begets is a great word.
  2. Fixing bugs comes at a cost of not building other things. This means that the outcome of fixing a bug has to be more valuable than the outcome of any other thing that could possibly be built with the same resources.

Now fortunately for most bugs, this evaluation is easy. The bug impacts many users and is important to our business or customers are upset or it leaves us vulnerable or … a million other things. You get the idea.

But there are always those other bugs that are much harder to classify. They don’t affect many people, but they look bad. How bad? Does it really matter? Are we being perfectionists or is it really important? I’ve found that these decisions are often the toughest. Learning to make them quickly and decisively has saved me much time over the past ten years.

Learning to let go of perfection and focus instead on desired outcomes and recognizing “good enough” has helped me enormously in my career. Now you might not work in software, but this philosophy works in every day life as well. It really comes down to filtering out the noise and focusing on what’s important. It’s not about being perfect in everything, it’s about being good enough in the things that matter.

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe

Green Tuesdays: Switch to CFL Bulbs and Unplug Those Energy-Wasters

February 26th, 2008

Despite the recent trendiness (or admittedly, maybe because of the recent trendiness), I’ve been putting more of a focus on living green. I’m an outdoorsy, environmentally-aware gal and I feel I should do my part. But where do I start? There’s so much conflicting information and it’s all a little overwhelming. I’ve decided to help focus my efforts and get better at it each week, I’m going to blog every Tuesday about one more thing I’m doing to live green.

This week, I did two things:

1) I switched all my light bulbs to CFLs. Over the past year, I’ve been replacing bulbs as they burnt out, but after reading this article, I decided to stop waiting and do a whole-house inventory. For those of you who hate to link off (do it anyway, Pablo writes good stuff), here’s a quick summary:

  • CFLs are almost 3x as efficient as incandescent bulbs, making it more than worth the money and sunk (environmental) cost of having to produce and transport that old bulb.
  • CFLs produce less heat and thus are less of a fire hazard.
  • While CFLs contain some mercury, they may cut down on mercury emissions - read the article for more details.
  • Old drawbacks of CFLS, such as slow light up times and dim lighting, have been improved upon recently and are hardly different from incandescents.
  • And if all of that isn’t enough, you’ll save money.

2) I started unplugging appliances when not in use. Most appliances, even while off, still drain electricity while plugged in. Unplug those suckers. I unplugged the following:

  • coffee maker
  • toaster oven
  • blender
  • paper shredder
  • roomba (I plug it in to charge on the day I plan to use it)
  • rarely used old PC
  • VCR (why do I still own this?)
  • xbox 360

As soon as I figure out how to make it easy to plug back in, I also plan to unplug my tv, stereo receiver and dvd player. But right now they are stuffed behind an entertainment center. If anyone has any good suggestions I’d love to hear them in the comments.

If you enjoyed this post, please share it or subscribe:
Stumble it! - Digg It - RSS Subscribe