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.

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:

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

Documentation Is Conversation Frozen In Time

I’m on a new account this week and my colleague Julias Shaw coined the phrase in the title.

We have been trying to get our client to realize that the solution to people not reading huge requirements documents all the way from development to QA to support is not more documentation, but more communication.

We are all for documentation, but only the kind that people will actually read.

Sugarcoating Is Harmful

When you have to evaluate someone, it is easy to err on the side of being nice. When you really like the person outside of work or they are your friend, it becomes doubly hard. It is still important to be honest with feedback for someone so that they can improve and important for future teams so that they can make sure the person is the right fit.

I tend to use a lesson learned long ago to escalate problems I’m having with people.

First, talking to the person is often the earliest and easiest way to give someone feedback. Often people will not know something is wrong and are more than willing to fix it.

Second, if the person doesn’t respond, let them know you will take your feedback to their boss if needed. Give them a timeframe to improve and tell them what you will do if they don’t.

Third, evaluate how the person is doing and possibly even get a second opinion.

Finally, putting honest feedback into a review will help teams evaluate the person’s strengths and weaknesses for the future. Even bad feedback with a good outcome can help someone’s review for the future. Who doesn’t like to see someone improve?

When you sugarcoat a review, you hurt the person by not letting them improve and future teams they will work with by not letting them see where they need to cover or help someone.