On Achieving Goals

Ah the tabula rasa of the New Year where so many of us decide how much better we’re going to make ourselves in the next 365 days. We decide to lose weight or get our finances in order or be more productive. Occasionally we announce to the world these lofty ambitions like Donald Trump boasting how rich he is. Then for a month or six weeks or if we’re really lucky to the spring equinox, we really focus on these “goals”. We go to the gym. We save money. We write blog posts. And then something quietly breaks that we aren’t even aware of and suddenly it’s August and we’ve gained the weight back plus found a new appreciation for that kick ass donut shop that just happens to be on the way to work. What happened?

As it turns out, having goals makes us largely unhappy according to James Clear. This makes intuitive sense because goals so often end in failure for a variety of reasons. Then we are left with a fundamental lack of accomplishment. For several years, I’ve wanted to learn Spanish. That’s a Goal. But having Goals without a clear path to achieving them is destined for failure. What you also need is a system or a habit plus a reasonably accurate, mostly simple way to track that system (not the goal). This kind of thinking leans heavily on “small strokes fell great oaks”. We are creatures of habit but the key is getting into a habit of doing something different from our current habits. As it turns out, lots of small steps are a lot easier on the path to new habits than huge jumps. Yet our Goals are necessarily designed around these huge jumps.

Having a system mediates that. A system involves what you do every single day to achieve a Goal. If you want to write a book, your system is “write for an hour every day and track the number of words”. If you want to lose weight, your system is “I’m going to follow the five rules of the Slow Carb Diet.” If you want to write 26 letters, your system is “I’m going to write one letter every first and third Saturday of each month”. These systems are formalizations of the cues that are necessary to form new habits which lead to progress towards change. The beauty of systems and cues over goals is that even if your goals turn out to be slightly harder than you thought, you can still gain a great sense of achievement by analyzing the results of your system if you track it well.

Let’s say your goal is to win the Masters next year. Your system is hit 500 balls a day. You record this in a spreadsheet and write an easy sum function and an easy averaging function to display progress. In 2017 when you are watching the Masters on the couch, if you have followed your system, you almost guaranteed to be a MUCH improved golfer regardless of the result of the goal. This is key to Clear’s third tenet linked above concerning the fact that Goals make you think you have control over things you don’t. So many times life gets in the way and we lose sight of our goals. But if we have a solid system in place like “Don’t eat white starchy things”, we are more likely to just keep plugging right along. Also, having that system/process viewpoint can help on the days we don’t do well or have slight setbacks. If my system is workout 60 minutes a day, a day where I only do 30 minutes isn’t the end of the world because I can go for a long run on the weekend. I don’t feel guilty about working out less on some days when the system is in place.

Systems lead to progress and we can take comfort in progress even if goals are never reached. I find it helpful to know where I am in my system so I built a basic spreadsheet where I can track activities that move me towards my goals. You could easily copy it and modify it for your goals and progress. I have instant feedback on where I am which helps me feel much better about my progress (or identify places that I’m falling behind. Time to watch a movie!). And this provides the behavioral reinforcement of the system which hopefully results in a very positive feedback cycle. With that in hand, I will be able to look back at the end of 2016 and feel very good about the progress I’ve made regardless of the end result.

Writing Software To Show My Mom

I recently read Amy’s story at Year of Hustle and it really struck a chord with me. I’ve been writing software for going on 10 years now and I don’t have a single thing that I’ve done in my every day work life that I can point to as mine. I can’t tell my mom “go to this web site, I did that”. That’s a lot of years of working to have everything behind some firewall. Don’t get me wrong, I’ve got personal websites that run a variety of things for me but nothing beyond 5-10 users at particular times of the year. I don’t have a central location for my work partially because it never occurred to me but mostly because I just don’t have that work to display.

Making that realization got me thinking. I don’t much care for the feeling of 10 years of work that I can’t even refer to outside of a resume. Frankly, it’s a little depressing. So I’d like to make 2010 my year of hustle. I’d like to actually ship something that someone uses, a piece of software that I can at least be proud of. I’ve got a few ideas of things but one thing I struggle with is losing interest in a project. It would be generous to say that I’m a habitual project starter. I have shiny jangly disease and it manifests itself regularly. Part of the problem is that I thrive on feedback. I don’t need a lot of it but if I have to sit around working on something for a month with zero feedback, I’m going to lose interest. That happens a lot in my personal projects. So I’ve got to find a way around that.

One thing that would help is actually shipping pieces of something, something that could provide very definite and regular feedback. One idea is to create a main portal for my digital presence on the web. Currently, if you google me, you don’t even find this blog. You also don’t find my regular blog or my photoblog. I’d like to turn brettbim.com into a centralized portal for all my work, writing and photography. I’ve started playing around with that idea but the learning curve for designing something useful is pretty high for me, given the fact that I think WordPress would be the way to go. I have four WordPress blogs that get some level of regular attention so it seems like it would makes sense to use WordPress as the CMS for all my content. Problem is, when God was handing out designing skills, I was at recess. So I’ve got some learning there but then, I suppose that’s the point of having a year of hustle.

I have a few other very nebulous ideas that could be done in a year. I need to spend some time fleshing them out. I know I’m not particularly thrilled with how my work life has played out over the last 10 years. Much of what I’ve done has been low on the creativity scale and that is a big drain. I got into programming because it was a way to exercise my brain on a regular basis and exercise my need for creativity. As it turns out, most programming in corporate environments does neither. I’ve been lucky over the past few years to be in jobs that really stretched my mental capacity including my current job but the creativity always seems to be missing.

I’m not really sure what a year of hustle will look like for me. I think the best thing I could do would be to just start throwing stuff out there and see what sticks. My life has been changing in quite a few ways lately so we might as well go full out. I’d like to ship one thing this year at the very least. We’ll set the bar low and see what happens.

In Search Of Greater Productivity

So I finally broke down and installed ViEmu, a VI emulator for Visual Studio. Matt has been using it for quite awhile and seems happy with it. I’ve been slowly trying to improve my Vim skillz every week, working through the cheatsheet at ViEmu above, learning 5-10 new commands every couple of weeks (yay for Shift-A, so much better than i-Right Arrow key).

I have no idea how good I’ll get at it but since I’m in Visual Studio all day long, surely my productivity will start to increase.

Programmer Porn

This sort of stuff is yummy. I would have to die and go to heaven to get that kind of set up. I bet his productivity is through the roof.

Don’t worry, it’s SFW. Well, it’s SFW but your head might explode in jealousy, depending on what your work situation is like.

A Riff On Environment

I’m working from home today because. . .well, mostly because I’m an idiot. See, Thursdays are Lunch Date Days where the love of my life and I meet for lunch. Because of that, I couldn’t go to the gym at lunch and thus, needed to go before work since the after work gym crowd is fairly difficult to navigate without accidentally bumping into someone’s silicone or an asshole on roids who wants nothing more than to kick sand in your face. So I bounded out of bed around 5:15ish, sat in the dark in the living room for about 15 minutes thinking about how much I love waking up at 5:15 and then finally staggered out the door with all my usual accoutrements that I had carefully laid out the night before.

I drove to the Irving gym, thinking about how nice it would be to work out before work since that always puts a nice start on the day, never once thinking that things you always have on normal mornings when you aren’t going to the gym might not be included on mornings when you do go to the gym. Like work clothes. Just sayin’. So I strolled into 24 Hour Fitness at 6:25ish, put my gym bag on the bench in the locker room and prepared to put it in the locker when it hit me. No work clothes on hangers because they were still hanging in the bathroom where I had put them on the off chance I didn’t make it up in time for the gym.

I muttered “Fucking shit” in a voice I thought was mostly to myself but based on the sideways glance of the probable rabbi next to me, must not have been. At this point, I had three options:

  • Work out then report to work in a sweaty t-shirt, shorts and tennis shoes. I briefly considered it before realizing that attire probably didn’t suit Business Casual Thursday.
  • Go home, get dressed, drive back in prime rush hour traffic, have a perfectly grumpy day because not only did I not get to work out but I also had to drive to Irving twice (contributing my part to global warming which I don’t really care about but still) and go home to find out I was out of scotch. This also briefly crossed my mind but since I gave up kicking the dog for Lent and it stuck, I figured this option was out too.
  • Drive clear back across town to the Parker gym while traffic was still light, work out, drive home and work there today. Hey, we have a weiner! While I was still muttering what a colossal waste of time the morning had been, at least I’d get a workout in and save my sanity as well as the dog’s behind.

So that’s what I did. Why am I bothering to write this all up? Because of this: the effect of environment on productivity CANNOT POSSIBLY be overestimated. In the three and one half hours I’ve spent writing code from 8:30 til 12:00, I have done more than I did the previous two days combined. While no one probably wants to hear that, it doesn’t make it any less true.

Here, I have peace and quiet (with the exception of the occasional pissy cat), all the cokes and snacks I want, perfect temperature, classical music playing in the background, almost zero interruptions (see pissy cat above) and a great view out my back windows when I need to gaze at something besides the screen while pondering something. The ability to concentrate is uninterrupted by anything external other than the rumbling of my stomach which I can ignore when I’m into a problem.

Environment is important critical to productivity. It is the difference between a jumbled, irritated mind and a clear focused one.

Don’t get me wrong, I don’t think we should all go into our offices when we get to work, shut the door and not come out until the clock strikes 5. But there are places for communication and there are places for concentration and those places are MUTUALLY EXCLUSIVE. When they are combined, less gets done in more time with more distractions leading to more defects.

Now the lunch hour is over and it’s time to get back to work. I’m actually looking forward to the next four hours because I’m going to get things done. Tomorrow, I’m going to the gym in the morning again. I won’t forget my clothes. But I won’t get as much done tomorrow either.

The Daily Palliative: Simon’s Cat

An Alternate Take On Scrum

An interesting read. It sounds like he’s definitely on a team where “Scrum” actually means “Daily Status Meeting” and if so, then I totally sympathize. Lots of scrum meetings I’ve been involved with turn into glorified status meetings and they suck. No one wants to stand up in front of your peers and say “yesterday, I spent 8 hours trying to figure out why we have serialization problems involving WCF RESTful web services and mobile technology clients. Oh and I’ll probably do it for 8 more hours today because I can’t really say when I’m going to be done.” That’s frustrating. But in reality, things like that happen all the time on projects. In fact, they should probably be expected.

If you have a good team, scrum should basically boil down to “do you have any blocks?” When management starts using the daily scrum to micromanage progress, the benefits have been lost. When scrum is a painful task to be completed each day, nothing good comes out of it. The problem is, the benefits of scrum are rarely described and elucidated to the team. Scrum should be a way to make sure nothing stands in the way of progress but it definitely should not be daily proof that progress has happened in the last 24 hours. Progress in software is much like punctuated equilibrium in evolution, i.e. there are large periods where nothing is happening followed by times of extreme productivity. If management expects the same steady constant progress throughout a sprint, I think they are confused about how software gets done. Of course, if we’re talking about management and not Scrumasters or Product Owners or Users, chances are the environment is such that the process is already broken long before daily scrum kicks off.

The Daily Palliative: Lucky To Be A Programmer