I got stuck several weeks ago. I was working on a fascinating, but difficult, post and had all kinds of other interesting things going on. Somewhere along the way, on thing after another got a little bigger, a little harder, a little more intertwined than I had planned. As I started to work on all of these tasks, I got lost without even realizing it. I was pushing forward and making progress, but in a really inefficient manner. In short I was thrashing.
Thrashing is a form of getting stuck in that you aren't going where you want to. It's worse than getting traditionally stuck because all of the activity has the illusion of progress. As a Big Swinging Developer (or Big Swinging Anything), the ability to self-manage is critical. Self-management isn't just about knowing what to do, however. It's also about recognizing that you're doing the wrong thing and that comes only through continuously monitoring both your activities *and* your progress. This is really easy to do for others — how many times have you looked at what someone else is doing and asked, "Why are you doing that?" just to have them give you a long-winded explanation that they slowly realize makes no sense? The whole reason that they were doing the "wrong thing" in the first place is that it looked like the "right thing" at the time.
It's easy to get stuck a little at a time. Actually, I'd argue that it's easiest to get stuck a little at a time by compromising a bit or not course-correcting often enough. Then you face two challenges: recognizing you're stuck and then getting unstuck. Here are my suggestions for both.
To recognize that you're stuck (or off course) compare where you are with where you thought you'd be on a periodic basis. If you're off by more than you can fix before your next measurement then it's a warning sign. If you miss by that amount twice in a row, then it's a problem. Notice that the shorter your measurement cycle, the easier it is to get back on track.
To get unstuck, there are 3 important steps. The first step is to stop. Once you recognize that you're stuck or thrashing, just stop whatever you're doing so you don't end up even further off course. Step 2 is to reevaluate where you want to end up. From the time you originally planned a goal until the time you got stuck things may have changed. Instead of blindly reorienting and pressing forward, make sure you know where you want to go. The final step is to work backwards from your newly established goal and take the smallest step in that direction that you can.
In my case, it was brought to my attention that I had neither cooked nor written anything that interested me in a long time. These are two of my favorite activities and looking back on the number of days that I postponed doing either, I realize that I was going off course. Last night I cooked Moorish pork kabobs that had a non-trivial amount of saffron, and today I'm getting back into my writing routine.
If you have other suggestions on either tracking your progress or course correcting, just leave a comment below!
At the beginning of the year, I wrote about my career-changing resolution. It's not the only revelation that's affected my career, however. One of the other big ones is that partnering is really important, but it takes effort to make it work.
Let's face it, you need help. In some way, shape, or form, you need others to work with you to accomplish something bigger than you can do by yourself. One way to accomplish that is to pay them. Once you make it big (or if you raise money), then you can pay someone to do what you want. Before you reach that point, though, your best bet is to partner with others.
Designing a partnership is easy: you identify a set of mutual goals and a division of labor and you're ready. It could be a developer who needs some design work, a consultant that needs some development work, or whatever. The key to the design is to make the payoff greater than the opportunity cost of the work. Design is easy because it's pretty objective: If you do x, you get y.
Implementing a partnership is really, really hard because it's very subjective. The problem is that people don't simply work, they work with other people. That means that in order to partner, they have to both trust and, to some degree, like you. Not just like you, but like the way that you work, which means that they need to see how you work, which means: work. Even if you design what you think is a brilliant partnering arrangement, if the others involved don't like the way you work they might just walk because they don't believe that if they do x then they'll actually get y.
I saw a perfect example this morning. I had a meeting with a company that I'm partnering with. We had discussed the project in February and even though I had worked on it a little, there was a chance of it stalling. That didn't happen, though, because they put forth the effort of scheduling a meeting to keep things moving along. During the meeting, they asked a few times, "What do we need to do to make this happen?" This clear indication that they were putting forth the effort necessary to move things along reinforced my belief and enthusiasm in the project and with them. My plan now is to follow suit and reinforce their belief and enthusiasm in the project and me.
My point in all of this is that it is easy to fall into the trap of identifying and designing partnering opportunities only to see them wither on the vine. No matter how jazzed you are after your first meeting, it still takes effort to maintain your momentum so you should be ready to put forth that effort if you ever want to capitalize on the opportunities that you've created.
I've been thinking about virtualization a lot recently. I became a fan while using VMWare for development testing at Bindview and then Symantec. I became a cheerleader for virtual machines at BP, once again for development testing. There's just something about the idea of a machine in a known good state as the starting point for a test that I really dig. I also liked having several operating systems at my disposal to test my application on various versions for inconsistencies.
I asked some folks who ran data centers about their use of virtualization and the ones who used it said that they used it to save money. "We have higher utilization of our existing servers" was the core idea that I heard repeatedly. The folks who said that they didn't use virtualization said that it was too expensive. Hmm, one group has cost savings as an argument to use something while another is using expense as a reason not to use the very same thing. Something isn't right here.
A phone call with my father, an Economics professor currently in New Zealand (which I'm told is somewhere near Australia), got me thinking about the paradox in a new light.
To help test my theory I created a short survey with the help of Brent Ozar, SQL guru and virtualization expert at Quest Software. It should only take 5-10 minutes, and is applicable whether your organization is using virtualization or not. If you work in a data center, please head over to http://bit.ly/Ukhv to help out. If you know anyone else who does, the forward the link on.
After I collect the responses I'll post some of the results (participants can get the full report) along with the revelation that kicked this whole thing off. Thanks for your help!
I despise cable TV providers with a raging passion. Getting cable is unpleasant. Using the cable box is a nightmare. The quality is spotty at best. And I'm referring to all of the technologies: standard cable, IPTV (I'm looking at you, U-verse), satellite, you name it. And don't get me started on the impossible to read bills. All-in-all, premium television providers have a terrible user experience.
But that's not what prompted me to write this.
I went to the EZ-Tag Store this morning. This is the place where the Harris County Toll Road Authority sells the RFID windshield stickers that allow Houstonians, such as myself, to pay road tolls at 70 MPH. I've loved the EZ-Tag system since I moved here from Baltimore 4 years ago. To me, it's tolls done right: You don't have to slow down, there are plenty of EZ-Tag-only lanes, there are toll-only roads, etc.
Today I needed to replace my sticker so I went to the store. I peeled my existing sticker off, walked in, and had my replacement in about 5 minutes. Then I looked at the sticker they gave me. Not only did it have an alcohol wipe paperclipped to the tag so I could clean my windshield, but the place where it was clipped had the corner of the backing peeled back a little to make exposing the sticky side a breeze. It gave me the feeling that someone went through the process of applying the sticker and took note of what could be done to make it easier.
Clean the windshield? Check. Peel the backing off? Check. Okay, what's next? Hmm, how do I know it's working?
As I looped around the parking lot I saw a sign that said EZ-Tag Test Lane. Sure enough there was a 3 carlength section of parking lot with guide posts and an EZ-Tag reader with a light at the end. I pulled up, the light turned green, and I was on my way.
The rest of the drive to my office I marveled at how well the EZ-Tag experience was designed compared to so many others. And this was for tolls! Take a look at your product or service from your user's perspective and ask yourself if your experience is as pleasant as paying tolls. Chances are you can find several "little" ways to set yourself apart.