The Importance of Good Tools

I saw a review today of a blender that struck me as an important reminder in having good tools.

One day at Costco my wife and I were going past one of those product demos where a salesman wearing a headset a-la-Madonna was showing off a blender. As we stood and watched I commented to my wife about how all of these people were just waiting to try a smoothie, and that there was no way this guy was going to get one of these suckers to pay $350 for a blender. A BLENDER. But who walked out with one? You guessed it.

Well, we also bought it because the guy reminded us about Costco’s liberal return policy. So for the next month, we used it…and used it…and used it. Each time, I’m thinking, $350 for a blender! But man, this thing is an incredible MACHINE. It made short work of blending anything and everything we’ve ever put into it.

First, most likely a great sales job from the sales rep. Did you know that they are outside vendors and not Costco employees? The thing that clenched it for the gentleman was Costco’s return policy. I use a guarantee every day in my online marketing efforts and in my hypnotherapy practice. Having essentially no risk is comforting for people and generates huge amounts of sales.

Second, this man is like most people when confronted with a great tool without having any knowledge about why they need it yet. They don’t see the benefits of owning a great piece of equipment to do a job. A superior programming language, a better saw, a maintenance-free computer, a great car, and yes, even a great blender, can enhance your experience and make the work you do with it amazing.

We use it every single day, often multiple times. Some times it is only for simple little chores that could have been done with a lower powered tool, like mixing up a mocha, but this thing is quiet on low speeds, and a barracuda at high speeds. I once believed that a blender only needed two speeds: off and high, because that’s pretty much all anyone ever uses, but I’ve changed after using the 10 variable speeds on the Vitamix.

This is a common reaction from someone who discovers nuance in their tools and work. It is at this level of mastery of a task and tool that fine distinctions of 10 different speeds come in handy. Only a few short days before, he couldn’t distinguish that level of precision and why he would use it.

Ultimately, I decided that though it’s $350 when you use something EVERY day, usually multiple times a day, and that tool works really, really well and you actually enjoy using it, it’s probably worth it. My previous $45 blender that I once thought was pretty good now sits gathering dust. I’m spoiled now.

People often wonder why experts buy such high quality tools when many times a simple one will do the work, but this gentleman has nailed it. When you use something that often, you notice things others don’t. It’s not about being spoiled though, it’s about having the distinctions of quality that come with continued use of a tool. A $45 blender isn’t bad, per se, but it just doesn’t have the range of use in the skilled hands of a user.

I have hesitated to send in this review because of it’s considerable expense, but it truly has been one of the most quintessentially cool tools that we’ve bought. I think anyone who uses a blender regularly, or might, will find this to be the best blender they ever own. Well worth the savings in time and grief over the less powerful, less tough brands.

And there we have it, savings in time and grief. My time is worth considerably more than what I pay for good tools. The best of tools only make you better at what you do, saving you time (money) and grief (time, or money).

So where does this leave us? Pay extra attention to your most important work. Things that you do often, things that cause you joy, things that give you the most out of your day. Then look at the tools you use to do that work, nay art. Could they be improved? Is there something out there you know is better? If there is, seek it out and try it for a while. ASK for a liberal return policy or some other type of guarantee if there isn’t one already. The best tools and people stand by their work. They give you a guarantee not because they fear things will break, but because sometimes it’s the only way to get people over their own fears and give the best a try, changing them forever. It’s a high mark to hit, but only the best ever get there anyway. Take the leap, get good tools for the work you do.

http://www.kk.org/cooltools/archives/005318.php

Fly First Class Like You Deserve

I spent years on the road and figured out many of these tricks on my own and even learned some new ones. For all of my friends still on the road, use these tricks to help yourself get a comfortable ride. You owe it to yourself to spend 5 minutes watching what took me weeks and months to learn from all sorts of different sources.

Using these tricks (along with flying to work), I racked up enough miles to have a week long vacation (hotel and airfare) every 2 months, for free, pretty much anywhere in the world. I’m STILL using points 2 years later to fly around the world and stay in great hotels for next to nothing.

Pretend You Are Leaving Tomorrow

Jonathan Rasmusson wrote a great post reminding us to Pretend you are going to be there forever.  His post is really great for contractors who mostly just come and go.

What works equally well is to pretend you are leaving tomorrow.  It’s a great exercise if you really do think you’ll be at your company for a long time and will have to maintain the software you create.  If you’re leaving tomorrow, what would you fix, document, clean up, or write tests for?  Who would you be nice to? We used to call this the “Hit by a bus” effect, but some people liked to use “the lottery winner” effect as the name. It really helped people get that they had to maintain their systems better and not become bottlenecks and share information.

Let’s see if we can make it a bit more general so that everyone can use it.

“Invert, always invert.” — Carl Gustav Jacob Jacobi

If you haven’t heard of Jacobi, you should check him out. Anyway, basically, all you have to do is think of the opposite of whatever position you are in. Have lots of time? Now pretend you have little. Have lots of people? What if you only had a few? Have only a little money? What if you had a lot? Stretching the constraints in your projects can really help you see new solutions. It’s helped me solve problems countless times for myself and my clients.

Are There Bones In Your Fish?

I went to lunch today to a nice restaurant in town and got something I have never had before: a salmon burrito. The meal tasted pretty good and I was having a good time with friends when I felt a small bone in my mouth, so I took it out. I thought to myself, “Well, it was an honest mistake, no big deal.” A few minutes later, I bit into another small bone. That was it. I was done with my meal. The important part though, is that I was done with the restaurant, probably for life. From two bones.

How often do you think about the basics? If you’re not executing perfectly on the basics, how can you expect to be executing at any higher level? Two bones in my burrito and you lose me as a customer for life. That’s potentially thousands of dollars. You might lose other customers at just one. Those bones just became pretty damn expensive for you. Quality is not just free, it’s money in the bank.

Of course, I’m not just talking about burritos and bones here. As your customers get more educated on what you do, they’ll begin to notice those bones. They’ve noticed them before, but just couldn’t pinpoint them. Now they can. What are you going to do?

Organizational Change

Seth Godin has a good post up today that succinctly describes the barriers to change in an organization.

People who fear they will be hurt by a change speak up immediately, loudly and without regard for the odds or reality.

People who will benefit from a change don’t believe it (until it happens), so they sit quietly.

After working with dozens of organizations, I can tell you, this is absolutely true. It always bothered me though, that I couldn’t seem to figure out why people were acting this way. After years of thought, I came up with an answer that changed how I viewed organizations and how I did change work with people. I realized that to each side, their view of the organization was true. They worked so hard to keep their position on the matter because it was so true to them they knew it in their bones. Everyone did.

Only, they were wrong of course. I had the benefit of being able to see the world differently through all of the experiences I had. While they saw the world as flat and knew it to be true, I was able to see the world as round, as it truly is. Before I realized this, I spent a large amount of time trying to convince people that the world was round (they needed to change), but after realizing that I was fighting against “truth” I completely changed my strategy.

I no longer needed to convince them that they were wrong and I was right. All I had to do was change the conversations they were having with themselves and each other. Getting rid of fear for some and convincing others, once people got on the same page and realized they were all on the same team and were trying to get somewhere better, I could begin to lead them where they needed to go. It took significantly less time and actually stuck with organizations much better than I ever thought it would.

I had stumbled on how to really change people’s minds. All I had to do was change their moods, which changed their conversations, which changed their positions and knowledge on the organization, which led to the changes they needed in the first place. Go out and try it. You’ll be surprised how effective you can be.

Wouldn’t It Be Nice

Wouldn’t it be nice if testers could be given a defined role or if we could have less meetings or any of a million things we complain about all day? Yeah, of course it would be.

Everyone thinks of changing the world, but no one thinks of changing himself. -Leo Tolstoy

Except really, you just have yourself to blame. You’ve told yourself “I can’t change anything” or “They won’t let me do what I need to do” or “The problem is impossible.” The good news: yes, you can change something. They aren’t holding you back, you are. And no, it’s probably not impossible, just hard.

How do you change something, become free, expressive, and get hard things done? Stop blaming others. Stop holding yourself back. Realize that you are lying to yourself. You lied to yourself a long time ago, but here’s the worst part: you forgot you lied to yourself. You said “I’m not good enough” or “People are mean and uncaring” or “Life is unfair.” And then you forgot you told yourself that. Really, you did.

“Holy crap!” you say, “I did lie to myself! I forgot!” It’s ok. Here’s how you fix it. Now that you realized it’s a story, you can realize it’s not true. Because it’s not true, all that stuff that was hard, impossible, someone wouldn’t let you do? It’s gone. Now you can create a great testing framework so you aren’t obsolete or show people how much time they waste with their meetings to get your point across. You can do anything you want without all of that junk in your way, crowding up your head, eating up precious cycles.

Go. Right now. Create something.

Start Less to Finish More

Great video from Jason Yip, one of my favorite former colleagues, about starting less things to finish more. It’s nothing you haven’t heard before if you’ve worked with me and it’s nice and short.

It’s Your Subconscious and What to Do About It

Al Pittampalli over at the SAMBA blog wrote It’s the subconscious, stupid, but left out an important point, got another wrong, and didn’t give us a solution.

We don’t talk a lot about the subconscious mind, but we should…because when it comes to personal achievement it can explain things like lack of motivation, procrastination, or self sabotage. And business wise, it can explain why your prospect hasn’t bought from you yet… whenever we’re deciding to do something, we think we’re evaluating the immediate task at hand. But subconsciously you may be thinking 6 moves ahead, and evaluating the decision based on the final move (all without even realizing it).

A great explanation of the subconscious and one that I use all the time with clients.

For example, let’s say you can’t get yourself to go to the gym in the morning. Consciously this may show up as laziness. You may just not feel like it. You may be thinking about how far away the gym is, or the fact that you can’t find your sneakers (how convenient). Or rationalize to yourself how an extra hour of sleep will do more for your health than the hour at the gym (yeah right). These immediate impediments might end up winning, and prevent you from making it to the gym.

An extremely common problem. Many of us face situations like this.

But is that rational? Going to the gym and losing weight is a major life goal of yours, one in which you have no shortage of motivation. How is it that general laziness won in the face of the long list of major benefits that going to the gym would result in?

Nope, it’s not rational. The subconscious isn’t rational. It makes connections and thinks very, very fast. As for how laziness wins? Let’s find out. Doing really well so far Al, I’m proud of you.

Well, consider that what really drove your decision actually lies 6 moves ahead…let’s lay out the gym scenario like it were a game of Chess…

Move #1: Go to the gym this morning
Move #2: Stick to my exercise routine this entire month
Move #3: Lose 10 lbs!
Move #4: Gain it all back (I always do)
Move #5: My friends will look at me like a failure
Move #6: I’ll become depressed, gain 10 more lbs, and I’ll be heavier than when I first started!

When you see these future moves, isn’t it clear why you wouldn’t want to go to the gym? As irrational as it seems, this is how we think, and this is what often determines our behavior.

Did you catch it? Normally it’s not this easy. I’ve taken hours just to get this list out of people. Here’s a pro tip: look for what I call the “unconscious moment” and/or the logical leap that gets made in this thought process. It’s Move #4. Gain it all back (I always do). Ouch. How did your mind reach that conclusion? It may not make sense to you rationally, but to your subconscious, it’s perfectly rational. That’s where things go wrong. They continue to go wrong in #5 and #6 as well, but #4 is what starts things rolling.

The subconscious mind is powerful and real. And when you can recognize that it often can lead to irrational conclusions, you can fight it, and help your soon to be customers too.

This is where Al goes a little off track. You don’t fight your subconscious. You train it. “But how?” you ask? That’s left as an exercise for the reader. I’ll help you because this is so important to so many things in your life. If you can solve little problems like this, it actually makes a huge difference.

4 Steps to Solving Any Problem by Training Your Subconscious

1. Get a Ballpark. Get the general description of the problem. “I can’t get myself to go to the gym in the morning” is perfectly acceptable.

2. Get Specific. Ask the person to get very specific about the problem. You want something like “Last Wednesday, at 7:04am, as I was sitting in bed, I thought about getting up to go to the gym, but I just couldn’t and went back to sleep.” If you hear words like “every time” or “sometimes” or even “a few times” that’s not specific enough.

3. Storyboard. Use that specific story now to create a storyboard. It helps to write this down. Imagine it like a movie and you need to look at every single part of the scene. Write down the thought process of the person from beginning to end in steps just like Al did with his example above. Leave room in between each step. This is where you’ll find those logical leaps. If you see the person go “um, then this happened” and you can’t tell how they got to that, start over from the beginning, then focus there.

4. Repeat and Defeat.You’ll be repeating this storyboard back to the person a lot. It may seem annoying. It probably is, but only to you. The other person will be into it. You’ll be helping them relive the experience and give you more details. Write them down. Now, once you’ve uncovered those unconscious moments, it’s time to break those down and change how that person thinks. Think you’ll gain 10 pounds back? Why? Help the person realize the error their subconscious made (not their fault) and then make a new connection and you’ll watch as the ballpark problem disappears.

There are plenty more advanced techniques you can use with this method, but this works for many of life’s problems including helping your customers buy from you. Just work the system and see how many results you can get out of it.

Ego and Checklists

I must have some secret employees at the Financial Times writing for me or something. Atul Gawande wrote ‘Airline Pilot’ protocols in finance today and it caught my eye.

Some choice quotes:

He also found he made mistakes in handling complexity. A good decision requires consideration of so many different aspects of a company in so many ways that, even without the cocaine brain [confirmation bias], he was missing obvious patterns. His mental checklist wasn’t good enough. “I am not Warren,” he said. “I don’t have a 300 IQ.”

So he devised a written checklist.

Sometimes you don’t even know you’re making the mistakes over and over unless you get reminded of them by using the checklist. It’s there to keep you safe from your own mind. The easiest person to trick is yourself.

Even in his own firm, he’s found it a hard sell. “I got pushback from everyone. It took my guys months to finally see the value,” he said. To this day, his partners still don’t all go along with his approach and don’t use the checklist in their decisions when he’s not involved. “I find it amazing other investors have not even bothered to try,” he said. “Some have asked. None have done it.”

As I said before, people think checklists are beneath them. I’ve had a hard time convincing people to use them in any aspect of project work. Clients don’t like it because they think that’s why they hired you in the first place; you’re the expert. Consultants don’t like it because they think it will somehow make them look incompetent.

I’ve tried many different ways of motivating people to use the list, but in the end nobody seems to want to listen even when I show them measurable results. Ego.

Atul has a book out as well. I’ve already ordered it. Will you?

Checklists

One of the main duties I performed as a consultant was kicking off a project for a new client. The process went by many different names. Iteration zero, project kickoff, inception, and QuickStart. Sometimes a combination of them.

The thing I learned right away was that there was always plenty to think about and set up. All projects are different of course, but all projects are also the same in many ways. So, I began to do what I always do in a new situation and make a checklist.

I learned this skill a long time ago and it has served me well in many different ways. To my clients, I seem to have a super memory and intellect. Combining the checklist with GTD helps greatly. To my colleagues, I can share the list and get feedback and improvements for my own projects and help theirs. Now on with how to create your checklist.

First, I almost never start from scratch. I look to those who have done it before and have learned lessons the hard way. Nobody is smart enough to think of everything, and besides, why duplicate work? Look to retrospectives, post mortems, project wrap ups, lessons learned, bug reports, lawsuits (yep…), API versions, forums, email lists, etc. Anything where people are seeing 20/20 after something went well or, more importantly, something went wrong. Put it all on the list without filtering. If you don’t have stuff written down somewhere, try interviewing people and listen to their war stories. You’ll learn some good lessons. Write. Them. Down.

Second, once you have your list, try organizing it by rough topics: architecture, project management, QA, analysis, client relations, contracts, etc. This is a good time to take the list to your coworkers and ask them to fill in areas that you’ve missed. The important thing to remember is to keep things on the list unless they are incorrect. This list is for all projects, not just “your” project.

After you’ve created your checklist, put it somewhere it can be seen and used as well as collaborated on. A wiki is great for this because you can have multiple editors and you’ll get to see all of the versions. Tell people where it is and have them use it. Asking for feedback on how it works is a great way to get them to use it. They’ll improve things and add new items as they come up.

At this point, you’re probably expecting an example or even full version of my checklist. Sorry. That would rob you of the experience of creating it yourself which is well worth your time in just the collaboration alone.

Initially, people will complain that your checklist is too long. Ignore them. Explain that the checklist is there to keep them safe and spending a 30 seconds or a minute on each item on the checklist will save them loads of time and mistakes later.

One last thing. The checklist is a great tool to make sure you haven’t forgotten anything, but it isn’t a substitute for critical thinking. The checklist will help you to not look dumb, but you still have to be smart. Good luck.

Sophisticated vs. Complicated

Remember learning to ride a bike or drive a car? It was hard at first, with all of those things to remember and do at once. Put your foot here, your hands there, look straight, now look in your mirrors, gas, brake, turn signals, WATCH OUT FOR THAT TREE!

Driving that car or riding that bike seemed like a very complex activity. You didn’t know the simple steps to take and they weren’t natural for you yet.

What we didn’t realize then was that those things were sophisticated, not complex. They only seemed complex because we were trying to learn and remember and do things all at once.

Breaking something down into smaller, easier to understand parts allowed us to master those things. We had training wheels for a bike, someone to hold us and push us when we needed it. Learning how much pressure to put on the brakes of a car while going straight in a parking lot.

We could then put those things together into a sophisticated process that became more than the sum of its parts. It just looks complex to those who don’t know.

The next time you are learning something complex, remember it is probably just sophisticated and you need to break it down into smaller parts and master those things before trying to do the rest. Agile adoption is a good candidate for that breakdown.

So if you are learning something new like Agile, find out where you can break it down and learn small things at first. If you are being taught or coached by someone else, make sure they teach you this way. It is much easier. If they disagree, ask them why.

Keep Your Ear to the Ground

Ear to the ground

I’m always trying to find new ways to use technology to keep track of what’s being said out there.  Be it websites, RSS, mailing lists, twitter, etc. I try to know what’s going on for myself, my clients, and my colleagues.  As with most other things in life though, I always find someone who is doing it better than I am.

I created a twitter account using my name and not more than 24 hours later, Jason Calacanis followed me.  While this is not huge news (Jason has 62k+ people he follows), it was to me.  It means that Jason or a script is parsing his mailing list subscribers and finding them at places like twitter.  He can hear the train coming from miles away.  Can you?

Fear is Sand Under the Foundation

I’ve spent a good chunk of my life building houses with my family and also Habitat for Humanity.  Most people know the cliche that having a strong foundation is key to building a house.  That doesn’t make it any less important.  Today, Seth talks about the five pillars of success.

The five pillars of success

1. See (really see) what’s possible

2. Know specifically what you want to achieve

3. Make good decisions

4. Understand the tactics to get things done and to change minds

5. Earn the trust and respect of the people around you

It sure seems like we spend all our time on #4.

Seth doesn’t answer the question of why we spend so much time on #4.  The same reason we spend so much time on #4 and so little time on the others is fear.  Fear that we’re not good enough, fear that our dreams are too small, fear that we’ll make the wrong decisions, fear, fear, and more fear.  That fear brings all of the pillars crashing down.

For people who have never felt they could lead, I say take the first step.  Spend your time on something you find worthwhile and just start doing it.  Here’s the secret: you’ll make mistakes.  Probably a lot of them at first, but that’s often the best way to learn.  Learning to be alright with and recover from failure will help you get over your fear.  It will certainly help you with #5.

via Seth’s Blog: The five pillars of success.

Set The Mood

I had a conversation with a colleague about doing consulting and that there’s really no such thing as an “organization.”  There really is just a bunch of people who need their minds changed.  The CxO’s I work with usually only need a minimum of technical help, mostly they need an outside change agent to help get their people in the mood to do their best work, so they hire me.

You already know how to deliver excellent service that blows people away. You just don’t feel like it. Your organization has the resources to buy that machine or enter that market or change that policy. They’re just not in the mood.

If I accomplish anything on a good day, it’s helping you change attitudes. I’m working hard at getting you in the mood to do the things you already know how to do. I think that’s what your boss/the market wants you to do as well.

via Seth’s Blog: In the mood.

DSLs and Friends

My friends and fellow ThoughtWorkers Michael Schubert, Jay Fields, and Stephen Chu were just complimented by Martin Fowler.

This isn’t to say that there’s no benefit in a business-writable DSL. Indeed a couple of years ago some colleagues of mine built a system that included just that, and it was much appreciated by the business. It’s just that the effort in creating a decent editing environment, meaningful error messages, debugging and testing tools raises the cost significantly.

What Martin doesn’t go on to explain is that this project vastly improved efficiency for a whole organization.  They went from a situation where it took months with dozens of programmers to change some business rules in their software to minutes with all sorts of extras they couldn’t get before like “what-if” simulations.

Jay wrote about some of the things they learned in this presentation on InfoQ and much more on his blog about DSLs.

via MF Bliki: BusinessReadableDSL.

What’s Your Exit Strategy?

An occupational hazard of being a consultant is that you get to see lots of the same problems in many different organizations.

It seems that sometimes little thought is given to how an organization can move from one technology to another or to move from legacy systems (where legacy means it doesn’t fit the organization anymore) to better solutions.

Today’s decisions can be tomorrow’s botleneck or bad design. It’s just a matter of time.

What can you do to help your future organization? Things like SOA can help. Great tests around your application are essential if you ever make the choice to change.

I’m looking for something better. I don’t know if you can ever get to a system that is that responsive to change. I’d like to see one that is.

A Shift In Attitude

Agile is about a shift in attitude more than process. It requires a shift in focus that is easy to explain, but hard to put in practice.

A useful way to view making the change is as an investment. There are many advantages to thinking this way about how you change an organization.

Being disciplined about investing in people, testing out theory, evaluation and constant improvement go a long way.

When you look to implement this kind of change, process only takes you part of the way. The mechanics of analysis, for instance, can be taught in a few weeks, but it takes a deliberate shift in thinking as well as practice to get good.

Shifting language is a good first step to shifting attitudes. Language around collaboration rather than commitees and processes. Shifting from requirements to goals and priorities.

When you change language, you can start to change minds. It’s a long road and it helps to have experts to guide you along the way. Don’t expect a magic process and if you work with me, expect a conversation.

Mingle Ubiquity Commands

I’ve started a project to create some useful Ubiquity commands for Mingle.

Here is a video of it in action.


Ubiquity for Mingle – First Cut from Joe Homs on Vimeo.

You can view the project at github.

Stimulate The Economy: Start A Business

As we begin our latest downward slide in the economy, people are starting to lose their jobs at an alarming rate.

Instead of looking for some other job, why not create one for yourself? It is easier than most people think if they simply choose what’s right for them.

“What is the right company to start?” I can hear you asking. Something you know and that can be tested easily with minimal costs. I don’t know what that is for you, but you do.

It’s old advice, but worth repeating. Look for something that comes easily or happily to you. Something you are an expert in that you can turn into something to sell to others. If it is hard to replicate, even better.

Once you know what it is, start small and test out the results, but start today. That is the key. Your business model is only going to be perfect by accident. Be willing and able to change.

How does this help the economy? By creating jobs, tax revenue, etc.

If you’ve gotten this far, let me know. There are so many people out there that are willing and able to get you even further.

PSA: Don’t Generate Offensive Promo Codes

OK folks, I’m now on my 3rd client having problems with certain four letter words coming up in their automatically generated promo codes. It’s easy to get around this problem in a very simple way: Don’t use vowels in your promo codes if you’re using letters. No need for special filtering software or huge lists of banned words. You can always add complexity later, but that simple rule will help you more than the rest.

If you want to get more careful, you could alternate letters and numbers, or use some other strategy. To be kind to your users, be aware that some numbers and letters look the same to people and they will enter your codes wrong (or worse, enter in someone else’s code by mistake).

To help you, here’s a list of the numbers and letters I suggest people use because they won’t get them confused with each other and hopefully your system won’t create any bad words (if they do, let me know). If you’re worried about the number of combinations you can make, just add more characters to the length of your code or allow yourself the option to generate your own special codes.

letters = ['B', 'C', 'D', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z']
numbers = [2, 3, 4, 7, 9]

You could then take this and make a simple ruby method that does something like this:

1
2
3
4
5
letters = ['B', 'C', 'D', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z']
numbers = [2, 3, 4, 7, 9]
promo_set = letters | numbers # combine arrays
promo_code = promo_set.sort_by{rand}[0..14].to_s # randomize array and take the first 15 elements and make them a string
=> "CS4FZLHVMPK3QJN"