Wednesday, May 23, 2007

Visual Studio Team Foundation Guide is Available

For the past couple of months I've been working with Microsoft on a guide to help development teams use Visual Studio Team System more effectively. Today we released an early version of the guide, a 360 page book, in PDF form to the CodePlex site.

This project has allowed me to combine two of my passions: team software development and personal effectiveness. I've learned a lot about how to write a book; how to avoid getting too lost in the details or too intimidated by the big picture. Writing many hundreds of pages can be daunting if its looked at all at once! I've always enjoyed writing, but remarkably this is only my second contribution to a real book. My first was a chapter in a rock climbing guide to Montana, which is still available here on Amazon.com. I imagine there will be many more to come.

If you are interested in team development with Visual Studio, you can download the guide here: http://www.codeplex.com/TFSGuide.

Lessons Learned
I learned the following lessons on writing which I intend to apply to future projects:
  • Passion. Pick a topic that you are passionate about, something you can sustain energy and focus on for months at a time.
  • Outline. Create an outline of what the book should cover so you know how each day's work contributes to the larger picture.
  • Iteratively Render. Don't try to write each chapter from start to finish. Instead, start by writing rough drafts that cover each chapter of the book. This process helps you maintain cohesion through the book and keeps you from getting bogged down in any one place. Once you have the rough chapters in place you can iterate over time to improve and flesh them out. Its like building a skeleton first, then building up the layers of flesh over time.
  • Get Help. Its hard to write a high quality book on your own. At the very least you need people to review your work, bounce ideas off of, tell you when you are writing crap, and edit out your mistakes. Don't try to do it all yourself.
  • Consistency. Spend time writing every day until you are done, don't let up.
  • Quality. Don't get stuck on perfectionism, know when your writing is good enough. Sometimes I spend so much time revising my writing that it ends up worse than what I started with.

Thursday, May 17, 2007

Focus on the Solution Instead of the Goal – Effectiveness Anti-Pattern

In my last post, I explained what effectiveness anti-patterns are and why they are useful. In this post I’ll give you an example of an anti-pattern that I’ve seen cause problems for a lot of people – including myself! If you are having trouble reaching your goals, perhaps you’ll recognize this anti-pattern in yourself and use the solution to become more effective.

Focus on the Solution Instead of the Goal

Problem

The anti-pattern occurs when you are more committed to the solution that you think will achieve your goal than to the goal itself. Once the solution has been found unworkable you assume the goal is unachievable, or you ignore the evidence and keep using the unworkable solution.

Context

  • You are working toward a clearly defined goal. For example you want to get promoted, buy a new car, move to a new town, get a date, or become financially independent.
  • You’ve identified a solution that you think will allow you to achieve your goal. For example, you think that if you work really hard you’ll get a promotion.
  • You are committed to the solution; you’ve put time and energy into it.
  • After time, evidence suggests that your solution is not working.

Forces

  • You are having trouble letting go of the ‘sunk-cost’, all the time and energy you’ve already committed to the unworkable solution
  • You are focusing on the current strategy instead of the larger goal
  • You are having trouble thinking flexibly

Solution

  • Define criteria for success. When you identify your goal, build a list of criteria that defines it. Instead of just saying you want a promotion, define the criteria you want to meet in order to feel the goal has been accomplished. Be precise so you know exactly what you are working for. For instance do you want more pay, a new title, more responsibilities and challenge, more recognition? Ask yourself lots of ‘why’ questions. Why do you want a new title? Why do you want more recognition? You may learn that a promotion isn’t the only way to achieve what you are looking for. This realization will give you more flexibility in meeting your goal.
  • Create multiple strategies. After you define your goal, brainstorm multiple strategies and solutions. These strategies can serve as backup to the preferred solution if it doesn’t work.
  • Measure progress. Measure your progress against the criteria you’ve defined. This will allow you to determine the effectiveness of the strategy you are using. By keeping the defined goal-criteria in the forefront of your mind you’ll stay focused on the goal and will be more willing to switch strategies as necessary.
  • Plan for failure. Hope for success, but plan for failure. Do your best to achieve your goal, but make sure you have a contingency plan in the case of failure. Don’t ever put yourself in the position that you must achieve your goal and have no fallback position.
  • Take risks. Encourage yourself to think creatively and don’t be afraid to take risks. If you punish yourself too severely for failure you'll tend to slip into a pattern of rigid thinking due to your increased fear. Unfortunately, this often results in additional failures and reduced effectiveness. If you can embrace your creativity and achieve a reasonable level of risk-taking you'll be more flexible and less likely to become stuck in this anti-pattern.
My Related Posts

Wednesday, May 16, 2007

Effectiveness Anti-patterns

As defined by Whatis.com, “An anti-pattern is a frequently used, but largely ineffective solution to a problem… Just as a viable pattern describes the way from a problem to a valid solution, an anti-pattern describes the way from a problem to a poor solution.”

An effectiveness anti-pattern is a common pattern of behavior that leads to reduced effectiveness. It’s useful, and fun, to identify these anti-patterns in myself and others and document them so that I can avoid them in the future.

I’ll write follow-up posts with some of the anti-patterns I’ve noticed. Each anti-pattern will contain following sections:

  • Title – A descriptive name for the anti-pattern.
  • Context –A description of the conditions in which this anti-pattern normally occurs.
  • Problem – A description of the resulting problem, what goes wrong when you use this anti-pattern.
  • Forces – A description of what leads people to use this anti-pattern.
  • Solution – A description of how to break the anti-pattern and move to a workable solution.
  • Example – An example of the anti-pattern in practice.

The neat thing about an anti-pattern is that it reduces the problem down to bare bones, making it easier to spot and fix.

If you've noticed any anti-patterns in your work or personal life, leave me a comment - I'd love to hear about them!

Wednesday, May 9, 2007

Mountain Bike Lessons – pt. 2

In my last post I discussed lessons I’d learned from racing mountain bikes. In this post I’ll show how some of these lessons have translated into improvements in my overall effectiveness.

  • Get a good start. In a race the first minutes are critical. A poor start makes it twice as hard to make up for lost time later.
      • When starting a new job or a new project I've found it is most effective to put forth maximum effort at the start and then settle into a more sustainable pace.
  • Measure. When training for a race I measure my progress over time so I can see if I am on track to meet my goals.
      • I focus my energy on areas that I can measure and see improvements on over time.
      • I make it a point to understand how my manager will measure my success.
      • When reviewing my goals I ensure they are aligned with the goals of my team and the goals of my company. I feel most motivated when I know my efforts are contributing measurably toward larger organizational success.
  • Keep energy up. During a race I keep my body well fueled or I am unable to keep up the pace.
      • I have found a sustainable pace for myself at work. Long hours may give me a short term productivity boost but if I'm not working at a sustainable pace my productivity suffers in the long term.
      • I pay attention to the areas of my life that fuel me. If I don’t make time for family, friends and exercise I lose the driving energy that keeps me engaged at work.
  • Recovery. During post-race recovery I give my body everything it asks for. If I’m hungry, I eat till I am full. If I am tired I sleep.
      • I listen to my body and give it what it needs. I focus on intuitive eating, intuitive sleeping, and daily exercise. The combination keeps me mentally sharp.
  • Frequency. The more often you show up at the starting line the more likely you are to improve and win.
      • Success can be as simple as showing up each day and doing my best.
My Related Posts

Tuesday, May 8, 2007

Mountain Bike Lessons – pt. 1

I've taken up moutain bike racing over the past couple of years. Though I'm not an expert, I've realized that the lessons I’ve learned from racing have made me more effective in other areas of my life. For those of you who are interested in learning more about bike racing, I’ll list what I’ve learned. For those of you with no interest in racing I’ll use my next post to explain how these lessons can be used to improve effectiveness in other areas so you can reap the rewards without all the physical exertion.

Training

  • Intense Training. I train at an intense race pace at least once a week so my body adapts to high exertion levels and learns how to recover quickly.
  • Moderate Training. I ride at a moderate pace for distances that are further than a normal race at least once per week in order to train my heart, lungs, and legs for endurance.
  • Easy Training. I spin easily at least once a week to improve my recovery time.
  • Supplemental Exercises. I perform squats and lunges at least once a week to build power for rapid acceleration and sprinting. I use no weights, just my body weight and do three sets of each exercise with enough repetitions so that my legs are tired the next day.
  • Measure. I measure my progress over time so I can learn what works well for me and what doesn’t. I simply use a stop watch and an excel spreadsheet to track my time on weekly bike rides. Later I may use a heart monitor and GPS to get more data and more accuracy.

Racing

  • Warm up. I warm up for 10 minutes prior to the race. During warm up I ride at 50-60% of my maximum pace to make sure I am thoroughly warmed up. I try not to time it too early or else I will cool down before the race starts. I also try not to time it too late so I don't miss the start. I've found it can be scary to warm up for so long, it feels like I am using up energy that should go toward racing. However, I've learned if I jump into a race cold I put my body into a state of shock and then spend a good portion of time just recovering from the hard start.
  • Get a good start. I ride as fast as I can at the start in order to secure a good position. Passing areas are at a premium and it is bad to get stuck behind someone while the front-runners gain a commanding lead. On the other hand i've learned that I don’t want to get so far ahead that I run out of steam and burn out early.
  • Use psychology. I want the riders behind me to feel I am unbeatable even when I am suffering and pushing myself to the very limit. I try not to let other racers see me suffer. If I am in twisty terrain I give little bursts of speed when the riders behind me can't se me and and then settle back into the saddle again, this makes my pace look faster than it really is.
  • Keep energy up. I consume electrolytes before and during the race to reduce the risk of cramps. Endurolytes from Hammer Nutrition have worked well for me both before and after a race. An energy drink, such as Cytomax, helps keep energy up during the race.
  • Recovery. I eat well, drink lots of water, and stretch after the race so I feel ok the next day.
  • Frequency. I go to as many races as I can, nothing teaches how to race better than getting out there and doing it.



Monday, April 30, 2007

How to Be an Effective Manager

I’ve learned that there are four distinct styles of management: Directing, Supporting, Coaching, and Delegating. Each can be effective when applied in the right context.

One of the most intriguing aspects of management is that each person requires a slightly different approach to realize their full potential. A management approach that yields spectacular results with one person may result in abject failure with another. Even using the same approach on the same person for different tasks on different days may give significantly different results. I think that one of the great challenges of people management is the ability to recognize the skills and motivation of an individual and match your management style so that they are primed for success.

This seemingly simple goal – match your style to the individual you are managing – is very difficult to do well. It is hard to recognize an individual’s skill, confidence and motivation, especially as levels will vary from day to day and task to task. It’s challenging to pick the right management style for each situation. And it’s very hard to become comfortable with the wide variety of styles and approaches you’ll need to handle each situation.

Over the years, I’ve used a framework to make this task easier, and I believe it has made me a better manager. I use categories for individual development levels (competence, confidence, and motivation) and categories of management style that match to each. These are not hard and fast rules, but they help to take the mystery out of things.

The first step I take is to identify the level of development of the individual I am managing. I take into account their experience, training, past performance on similar tasks, confidence, personality, and level of excitement they have regarding the present task. I use this information to determine their competence and commitment. Competence is derived from experience, training and past performance. Commitment is derived from confidence, excitement, and individual personality characteristics. Using this information I categorize into one of four mental buckets. These don’t cover every scenario but they are what I’ve found to be the most common combinations:

1. Low competence, high commitment. This bucket tends to contain inexperienced or new team members. They often lack the training and experience to be highly competent, but they make up for it in enthusiasm and commitment to the job at hand.

2. Low to moderate competence, low commitment. This bucket contains poor performers as well as good performers who are temporarily frustrated. Frustration is usually caused by someone who wants to do a good job but doesn’t yet have the expertise to perform to their expectations. Here are some statements I’ve heard that indicate a person is in this bucket:

  • The task is harder than I thought
  • No one appreciates what I do
  • I’m not getting the help I need
  • The more I learn the more I realize how much more I need to know
  • The task is boring
  • I don’t like my job

The big difference between poor performers and good performers is the time they spend in this bucket. I always assume an individual wants to do well and will transition out of this bucket as quickly as they can. The longer they stay, the less optimistic I am that they will ever leave.

3. Moderate to high competence, moderate commitment. This bucket contains solid performers who are consistent contributors of high value. These are people who have good skills, but are held back by variable confidence or motivation. This bucket may contain potential superstars, but only a few are able to put it all together to make it to the next level. Most good contributors peak in this bucket and never leave.

4. High competence, high commitment. These are the superstars on any team. They are masters at what they do, they are confident, and they are highly motivated.

Keep in mind that someone can be a level 4 while working on one task and then move to a level 1 when working on something different that requires different skills. For instance, imagine a brilliant software engineer who decides he wants to become a lawyer. He may have the potential and the commitment, but he doesn’t yet have the skills. It’s also useful to recognize that people can bounce between levels from day to day based on personal circumstance and other events that impact motivation and confidence.

Once I identify the level of development, I match my style of management to it. Bucket 1 matches to style 1, bucket 2 to style 2, etc.:

1. Directing. This style requires a lot of hands on work. I spend time explaining the task, sometimes step-by-step. I show examples of success and failure. I identify clear goals, timelines and outcomes. I make the decisions. I provide a large amount of feedback both positive and constructive in order to accelerate their personal development.

2. Coaching. This style is more interactive than the directing style. I spend more time explaining my reasoning and the decision making processes. I give more access to behind-the-scenes thinking and start training the individual to make good decisions on their own. Although I involve the person in the decision making process, I still make the decisions. Goal setting in particular is more interactive as the individual is able to start taking ownership of their career and future success.

3. Supporting. In this style I give increasing amounts of responsibility to the individual. I’ll often ask them to take the lead tasks, planning or goal setting. I become more of a sounding board and resource rather than a force driving actions and success. Rather than telling the individual what to do, I’ll take the time to explain how to make the decision themselves. I spend more time asking questions, even if I know the answer. The thought process and learning experience is as important as the end decision. At this point, my focus is to remove road blocks, answer questions, provide support and encouragement, and help them continue to develop their skills and confidence.

4. Delegating. In this style I am primarily focused on empowerment. I help define the problem and then work with the individual to set goals and outcomes. I give encouragement and support so that the individual can take the lead in problem solving and decision making. A large portion of time goes toward recognizing and rewarding the individual’s contributions to the team. I am outspoken about the value they bring to the team, my high degree of trust, and then I challenge them to reach higher levels of contribution.

I’ve realized that some of these styles are more challenging for me than others. I’ve found that delegating and supporting come pretty natural to me, I tend to trust people until proven otherwise and these styles are primarily about trust and encouragement. Coaching is the most difficult for me. I sometimes find myself feeling that I am spending so much time explaining rationale and reasoning that it would be easier to do the job myself. However, coaching is an important style, everyone needs it at some point and if not given the proper guidance and management they can stagnate. I have found that the more time I spend on coaching the more competent I am in its use. I regularly challenge myself to become a better coach!

There are many ways I measure myself as a people manager, but these are the two that I think are most important:

  • Am I able to consistently move members of my team from low levels of development to high? Ideally everyone would move from bucket 1 to bucket 4 over time. I realize not everyone can make it to level 4, but I don’t want to be the one holding them back.
  • How effective is my team when I am gone? This is really a measure of the overall development level of my team. The more directing they require, the more impact my absence will make. If I return from a vacation and things have proceeded as if I had never left – I know I’ve been successful!


My Related Posts

Thursday, April 19, 2007

Mind Control and the Friendly Mouse Part 2

Mind Control and the Friendly Mouse has been one of my most popular posts. I've gotten lots of comments and questions on this, one reader even going so far as to add a comment with a link to pictures of a mouse getting friendly with a cat!

It seems there is pent up curiosity regarding the incident. If you are interested to see what it looked like, check out the following pictures.


1. Mario, the cat, inspecting the friendly mouse. Notice the mouse showing no fear in his beady little eyes.


2. Mario sniffs the mouse to make sure it is what he thinks it is.
3. Mario is confused, this isn't how mice normally behave!


4. The mouse just before I threw him out into the field. He is so relaxed that he's nearly asleep.
My Related Posts