Archive for March, 2008

Problem Solving: Brainstorming Solutions

Sunday, 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:

Problem Solving: Identifying the Constraints

Saturday, 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.

Green Tuesday: The Lowdown on Carbon Offsets

Tuesday, 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:

Problem Solving: Defining the Problem

Saturday, 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.

Green Tuesday: Organic vs. Locally-Grown Food

Tuesday, 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.

New Series: Exploring Problem Solving Techniques and Related Topics

Saturday, 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.