Goal is a specific objective, that you either achieve or don't sometime in future. A system is something you do on a regular basis that increases the odds of your happiness in the long run. If you do something everyday, it is a system. If you are waiting to achieve it some day in the future, it is a goal -Scott Adams

It is engrained in our organizational culture that we should be goals driven. There are goals for everything - performance, team velocity, quality. We use metrics to derive goals and measure the performance of the teams against those goals.

If you are an engineer, a classic example of a goal is to accomplish code coverage numbers to say 90%. Another goal is have 100% test coverage. I have never seen either of these goals accomplished to perfection and teams end up feeling like losers over and over again.

Some might say that we should define the goals better, but the truth is that those goals are just fine as they directly indicate something tangible (quality of software, in this case). The problem is not how we define goals but rather the lack of focus on building a system to achieve them.

I believe that we should stop thinking about goals but start thinking about systems and checkpoints. For example, every person is accountable for quality of the code they ship and they will write tests along with their code everyday is a system. The checkpoints here can be the metrics we want to accomplish for quality. Rather, when we treat this as a goal, the teams will end up retrofitting tests and code-coverage tools on top of an existing messy software.

The problem with being a goal-driven culture is continuously having to define and rely on goals to motivate people. If a goal is met, you are relying on the teams to rally around anther goal they internally believe is possible. Without goals, the teams seldom make progress. Gratification only happens when a goal is met. Organizations try to measure the progress towards goals by asking people to estimate or estimating based on breaking the goals into chunks of tasks. But, this is mostly flawed. These is a ton of research on how to make goals attainable and setting SMART goals. All these are good, but fundamentally still focus on creating a goal-driven culture.

A system and checkpoint approach does not need goals/tasks to be happy. It is a way of life. Everyday you are progressing because you believe that the system will yield the results. The checkpoints further validate the belief in the system. This is a simple but robust model to align the teams, make sure we focus on the right things.

Let's take few more instances of goals vs. systems from life.

  1. Running everyday is a system for staying healthy. Running a marathon is a goal. Once you finish a marathon, you need to find another one to continue running.
  2. Taking X vacations per year to connect with the family is a goal. Valuing family time everyday and compartmentalizing life is a system.
  3. Getting A grades in school is a goal. Learning everyday by experimenting and exploring is a system.
  4. Writing a book is a goal. Writing everyday is a system.
  5. Reading for an hour everyday is a goal. Choosing to read over TV and other forms of entertainment is a system.
  6. Targeting to be promoted within X years is a goal. Actively looking out for problems to solve and solving them is a system.

People inherently want to be happy, and depending on what their life's optimization function is, a goal setting culture will have mixed results. I believe that we should start focussing on systems and checkpoints more than goals. When we do that, goals that we want to attain occur as a natural consequence.