What Losing At Online Spades Taught Me About Business

I used to work somewhere where there was a very active and visible gaming culture. Some of the games were virtual, but a large portion of them were physical or based on physical games. Monthly game nights featured strategic board games which took several hours to play. Think Risk, but more complicated. At lunch every day, there was usually at least one table playing card or board games of some sort. Spades, hearts, and games most people have never heard of were standard fare. The players at lunch were all quite analytical. Card counting was common. If you weren’t aware that your six of diamonds was going to win the trick when it was played, the other three people in the game probably knew and could recall the last three tricks played. The games were quite competitive.

My game of choice was spades. I liked that it was a very strategic game. You could play the same hand several different ways depending on what other people had and bid, and what the progression of the hand turned out to be. In this environment, I probably won more games than I lost, so I fancied myself a good spades player.

One Saturday I sat down play me some spades online to pass the time. I had to sit at a beginner’s table because I didn’t have any sort of reputation. I got paired with some other “rookies”, and started playing. It turned out to be a huge exercise in frustration.

People would take forever to play out their cards. My partners would disconnect mid-round, leaving me with a loss. They would play abysmally, bidding far too high or low for the hands they had, and then going blind-nil in situations where it didn’t make sense to try to claw back. Unfortunately, while I tried my best, my reputation on the gaming site kept going down. Then the real pain started. Since my reputation was lower and I was out of the provisional period, I would get paired with partners of similar “rating”, which meant that I kept getting paired with worse and worse partners.

I stopped playing shortly after I recognized the death spiral going on, but was puzzled by the failing. Then I remembered one of my friends who was a competitive Halo player, and one of the keys to getting ahead in that game was to have a clan that could help each other train and compete together. He got really annoyed when his clan members didn’t show up to play or played poorly.

I immediately related these two. Imagine if I had taken a skilled player as my partner and we just sat at the same table and played together. Over time, we would get to know how each other plays, and start to be more strategic. We would trust the other person to not play stupidly, and have an underlying philosophy of what is going on.

Some takeaways

The lesson that I try to apply more broadly was: I have to take ownership of picking my teammates, or I will suffer the consequences.

If I am not proactive or intentional about working with people that are good at what they do and who I enjoy working with, I have only myself to blame and only I will see the negative effects of this. This is true if you are an employee, where you need to pick the organization that you want to be a part of. It’s a warning sign if you look around and aren’t excited about the prospects of who you can work with. This line of thinking is as or more applicable if you are on your own doing consulting or contracting.

Making “the awesome people list”

I think it’s useful to make a list of the people that you might like to work with some day. Maybe some of these are colleagues that you admire, others are people you’ve met, a role-model or two, or even people you just know through social media who seem interesting. More often than not, when I revisit my list, I realize that I have actually ended up associating with those people since the last time I looked at the list. Part of this effect just might be thinking about those people a little more and realizing when your paths cross. Sometimes they will be a little ahead of where you are in a certain skill, and other times it’s the reverse. I think the list helps me point out where I can grow, and to challenge myself to keep trying to get better.

I also think it’s pretty easy to mitigate risk by working with people informally before working “for real”. You can learn a lot about someone by working on a side project, picking their brain about sales in SaaS businesses, co-organizing a meetup, and so forth. I’m not sure that this strategy scales well, but it seems useful for finding good people to work with.

Why Only 12% of People Succeed at Their New Year's Resolutions

According to the Wikipedia article on this subject, the failure rate of New Year’s resolutions is 88%. In this article I’ll give you solid reasons why most New Year’s Resolutions don’t work, and how to make adding, changing, or removing any habit easier.

Limited executive function

Everyone from judges to dieters to engaged couples make worse decisions as the day goes on. (I have been feeling the “engaged couples” one lately.) As the article states, this is because we use glucose when making decisions and do not replenish it. After a certain amount of glucose loss, the brain stops trying to think of tradeoffs, and instead does whatever is easy. For the purposes of this blog post, consider glucose to be equivalent to willpower or executive function. I use executive function and willpower somewhat interchangeably.

I think that managing habits with willpower is a very effective way to improve personal and organizational performance.

Capacity for change in behavior is like a muscle, and it can be exercised by applying willpower. Using willpower effectively is a skill. The capacity for change can be expanded by stressing the system and letting it recover. Too much stress and not enough recovery leads to poor results. See The Power of Full Engagement for more along these lines. Especially insightful is the idea of managing energy, not time. More on this in a bit.

Willpower as it relates to habits

The way most people try to change is to list about twenty things that they want to change and make them ambiguous. They try really hard for a couple of weeks, and then say that this whole “change thing” isn’t really what they are into. Maybe they don’t have enough willpower, they think…

I think willpower in and of itself is mostly overrated. Willpower is good for getting you to start something, but not usually very useful for following through. I think of it like adrenaline. It’s good for fight or flight and pulling trapped babies out from under cars, but you cannot sustain that level of effort for a very long time. Willpower depletes quickly. To try to will yourself to write every day is difficult. To instead set up a habit based on a routine makes it far simpler. So I use the willpower to think about and create the routine that I want and begin forming the habit, and when the habit is formed it does the rest.

Consider brushing your teeth. Most people in the modern world brush their teeth at least once a day without needing to think much about it. They normally have a routine of “after I eat breakfast, I brush my teeth”, or “after I get dressed, I brush my teeth”, or “before I go to bed, I brush my teeth.” This habit has been practiced regularly for a long time, and they do it every day. The associations are very strong. It takes basically no executive function to be able to do this. Brushing my teeth is the gold standard of habits, as far as I can tell. I can be half drunk and tired and still want to brush my teeth.

Routine lowers the need to use willpower. You don’t want to have to will yourself to brush your teeth. If you have to think about it much, you’ve already lost. Eventually you will lose interest or forget or just not want to do it.

Applying willpower for useful things

Taking this realization to more concrete or useful areas…

If you want to have one-on-ones with the people you manage, the best way is not to create a new meeting every month when you think of it. A better way is to set up an automatically recurring meeting once and then move it or cancel it only when something comes up. That way you have the intention once and don’t have to exert executive function again until something changes. You can easily make plans without needing to worry that you are not making enough time for your employees. The default is to have the meeting.

If I had to choose between trying to will a side project into existence or setting up a habit to work on it on Tuesday and Thursday nights, I would far prefer the latter. It is useful to set up a schedule that you can use later. Perhaps you finish project 1 and want to start project 2. Then you can use your existing schedule to begin working on another project without much effort. In my case, I generally do some sort of open source or side project work on Monday nights if there are no meetups. I started this by thinking, “I have several projects that I would like to see move forward, and the best way to do this is to have a regularly scheduled meeting with other people present so I cannot skip it. Hence, why not start this on a night that is generally free?” A few of us ended up turning this habit into Indy Startup Lab, and having group commitments helps to stay consistent.

Systematizing a business is similar to the process of creating personal habits. You come up with the main decision points over time and create rules that you generally want to follow. Proponents of lean thinking would say that it is not the people, it is the process. Focus on creating a productive and sustainable process and desirable results will come.

Ramit Sethi has some thoughts related to this dealing with strategies for saving more money. He basically says most “financial experts” say that you should try to save money by cutting back on daily lattes or other acts of willing yourself to spend less. Ramit, however, says that this unnecessarily causes you to make more decisions, and changes like this are hard to sustain. Instead, he recommends taking the willpower that you do have and devoting it to setting up systems like automated savings. Have the money taken out of your main account and put somewhere more difficult to reach, and you will be much less likely to spend it. You have the effect of saving more money than you normally would, and it happens every month whether you will it to be or not.

The meta-habit here is setting up your habits so that they give you more energy, thereby creating a virtuous cycle that gives you more willpower in the future. If you have some extra energy to spare, you could work a little harder at the task you are working on or screw around for awhile until it passes–OR you could invest that energy into systems, decisions, or habits that will be beneficial over the long run.

Practical thoughts

Generally decision-making is going to be best at the beginning of the day. This suggests a few routes to increasing effectiveness. One is making as few non-critical decisions early on in the day. Having a habit of having your morning clothes all laid out is one popular technique. Knowing a healthy breakfast you can eat without having to think too much should preserve even more executive function. Having your day generally laid out (by scheduling it the night before) is a way to know where you have to be and when without needing to exert much thought in the morning. This leaves morning hours to be devoted to a block of writing, programming, or other creation.

Getting better at making decisions quickly seems to be a useful way to preserve executive function. No sense in spending a lot of mental energy over an low-impact decision. Just make a decision and move on, and if you need to revisit it later, you can.

New ideas and connections seem to strike when someone is in the shower, brushing their teeth, shaving, or some other mundane task. Perhaps going on ‘autopilot’ is a way for the brain to relax or to make new connections. What would it mean for someone’s creativity if this were true and they could cultivate more automatic habits?

Maslow’s hierarchy of needs comes into play here, as it is probably more difficult to reach the highest levels of performance with a weak foundation. Nail the basics to avoid spending energy on them, which leaves that energy for higher level pursuits.

Set clear actions and habits rather than muddy goals

To tie this back to the title of the post and talk about New Year’s Resolutions, I think that change should be small and continuous over time. I think resolutions that start on the same day every year are dumb. Why wait six months? Why wait until tomorrow?

Someone who is out of shape is not going to be able to beat themselves back into shape in a couple of weeks. There is almost certainly an issue with current systems and how they function. At this point saying something like, “I want to lose weight” is probably not going to be very helpful.

Does the person regularly work out? If not, why not? Insufficient time? Insufficient energy? Inconvenient? Other priorities? What could be change to change these conditions? Should dinner be shifted earlier or later to have time to work out? Would doing something in the morning help out more? Is there just too much on the person’s plate at the moment?

More helpful than a muddy goal of “I want to lose weight” would be “I want to lose X pounds by a certain date”. But even better than that would be laying out a specific habit modification plan.

Something like “Every Monday, Wednesday, and Friday: Before I leave for work, I will lay out my exercise clothes. When I get home from work, I will put on my exercise clothes. I will drive to the gym and go in.”

No need to actually work out, but if you’re in the gym, you are more likely to get at least some form of workout in and you can go home super-happy. But even if you go all that way, if you go in and turn around, it’s still a win, because you are training yourself to lay those clothes out, to put them on, and to drive to the gym. You keep the habit alive.

Gardening your habits

Undesirable behaviors come from all directions. Some of them might be known undesirables, others were coping strategies at one time, others were once useful and are no longer as useful (zombie habits.) Whatever the means of acquisition, there are some strategies out there to bust them up. The book Self-Directed Behavior comes in handy here.

To begin to break a habit, you should identify the antecedents, or what triggers the activity, and try to avoid putting yourself in those situations. The antecedent to yelling at your landlord is when you are hungry. As a result, you try to stay well-fed when you know you will have to deal with your landlord.

Just as nature abhors a vacuum, so does human nature. It’s important to have something to replace your old activity with. We don’t deal well with voids. It’s tough to just eliminate a behavior without having something else to replace it with. Someone trying to quit smoking might chew gum or play the harmonica instead.

You might have to think ahead to set yourself up to succeed. Cultivate the habits that you want to have and weed things you do to waste time. If you want to read more books, have one at hand. When you would normally go to a time-wasting website (or find yourself teleported there), read the book for a few minutes instead.

Every time you choose to do something that has low-value, you reinforcing your tendency to do that behavior.

Today’s actions form tomorrow’s habits. Sometimes before I take an action, I consider, “if I had to do this action every day for the rest of my life, would I still choose to do it?” Every time I break the chain of something that I want to stop doing, I increase the likelihood that I will do so again in the future. Every time I keep doing something that I want to stop doing, I reinforce that behavior. Like Pavlov’s dogs, I too am a creature of habit.

Regularly scheduled work meetings are a form of habit. Maybe this meeting was once useful, but has since outlived its usefulness. Maybe it was habit to invite person X, but they no longer have much need to be there. What if all meetings at an organization were suddenly canceled and you had to start from scratch, once per year?

Change your environment to notice more habits. If it’s television (are you really still watching television?), put it in the closet and cancel your cable. If it’s a social network, remove the bookmark so that you have to type into the address bar to access it. Change around the icons on your desktop and bookmarks on your browser frequently. You will become more aware of the fact that you are doing something merely out of habit. Heck, change your key bindings once you know them too well. I’ll bet when you remap the save key of your editor or word processor you’ll notice habits that you didn’t think you had. Just trying to change an existing habit creates an awareness.

What other people are doing

Giles Bowkett has a bunch of posts on his own habit management system, based on the Seinfeld method of keeping the streak alive. I find this to be an effective way to see how you are doing at sustaining habits.

One of my favorite quotes of the series is in the second article:

Just like with fast-running tests that pass or fail quickly, showing you in real time whether or not your code is any good, the win is immediate response. Since I noticed quickly, it’s easy for me to throw away the delay-inducing idea and switch to something new.

I like the idea of having a baseline for habits and then you can see when changes in your life impact them. What caused week 1 to be so-so and week 2 to be fantastic? What changed?

If you’re into reading more about habits, check out the work of Buster Benson. He thinks about this kind of stuff a lot. Pretty much all of his posts are good, but be sure to check out Everything I (currently) know about starting and keeping habits in one long manifesto. There are some really actionable items, especially planning for bad days and how to get back into action.

Creating new habits

Behavior expert BJ Fogg recently had a free distributed exercise called 3 Tiny Habits. I participated in this, and it was very helpful for seeing how to easily add habits that I wanted to add.

During the weekend, you come up with three habits that you write down and plan to follow Monday through Friday. BJ sends you texts throughout the week asking you how you did and course-correcting if necessary. There a few key components to the program.

One is that you anchor the behavior to something that you currently do. For example, “after I X, I will Y”. Doing something after an existing habit is one way to make new behavior adoption much quicker. This is because you already do the existing habit, so it’s much more likely that you will have a trigger for it (see Self-Directed Behavior again.)

Next, and this is possibly the most important lesson I learned, you make each habit the smallest possible habit you can make. One of my habits was initially “After I wake up, I will write down any dreams that I have in my dream notebook, and in the event that I don’t remember any, write NDR (no dreams recalled.)” BJ pointed out that it could even be simpler: “After I wake up, I will pick up my dream notebook.” This seemed ridiculous at first blush. What was the point of just picking up the notebook? However, this is closer to the minimal action that reinforces the habit and ensures that I don’t break the chain. If I am feeling low on energy, I can do this and still feel excited that I accomplished something. BJ comes up with other examples like, “after I brush my teeth, I will floss at least one tooth.” Seems strange, but it is a lot easier to approach mentally.

Doing the 3 Tiny Habits program was a win. It took negligible time on my part and only a little preparation. Hooking a behavior to something you already do fairly regularly and easily is a great way to hack habits. I think as a result of seeing my progress, I am more likely to pursue habit modification in the future. I still floss essentially daily after doing this. I liked the emphasis on congratulating yourself for the small wins, and not being too hard on yourself in the event that you slip. Picking the smallest possible success criteria for a task is very useful.

Instead of saying that I will write every day for fifteen minutes (an actual aim I once used), I’d be more likely to now say, “after breakfast, I will open up my blog drafts document and read it for thirty seconds”. Generally changing my current default to opening up the document is the hardest part, and once I start looking at one of the drafts I remember something I was thinking about in the car yesterday or see a paragraph that could use some love, and I’m off to the races. Once the small habit is fully ingrained, you can start making it slightly bigger or piggy-backing off of it. This is nice because habits beget more habits.

Wrap Up

Well that was a really long post. Thanks for sticking with it! What are the best resources on habit formation and gardening that you’ve found? What are your techniques for preserving executive function? Hope your new year is off to a good start. :)

Change Where You Work

There are many books out there on effecting change in an organization. But what if effecting change is not the most effective strategy?

A Story

Imagine for a moment that you have recently heard about a new recursive development technique called “DDD Driven Development.” The proponents of DDD (a recursive acronym) claim that it speeds up your development cycles by increasing feedback, but only anecdotal data exists so far. Some groups have claimed it led to higher system reliability and development speed, others the opposite.

As team lead, you pick up the premier DDD book and read through it. The arguments, while not airtight, seem to indicate that at least some aspects of the approach would be useful in your organization.

You play around with the techniques in a personal project, and then pitch using DDD on a pilot project. The project goes mostly smoothly, and most of the team members agree that it was useful. A couple dissent, and you can see that it might be difficult to get buy-in from other engineers in the organization who are not as open to change.

At the final project meeting, project data is analyzed. The data can be interpreted both for or against using DDD.

What if the company decides not to go forward with this technique?

What are the alternatives?

If you still want to use DDD for some reason, you can try to effect change in your organization–or you can start or join a group that believes that DDD is the way to go. Maybe there is another company that thinks DDD sounds like the best thing ever, and would love to have someone on their team who has real-world experience with it. Maybe it’s enough of a competitive advantage that it forms the basis of a new company.

It is generally far easier to join or create a new group that has your beliefs than to change an existing group mindset. It is very difficult to change entrenched behavior and cultural norms.

I think that teams can go much faster when they generally agree on the way that software should be built. Whether the practices the team chooses are optimal might not be as relevant as whether the team is in agreement on them. So-called “best practices” are dependent on the team as well. If you have one team member who advocates unit tests and another that thinks unit tests are a waste of time, it won’t be long before those beliefs begin to conflict.

Whether DDD is really faster, if everyone on the team prefers to work that way, they are going to buy into it. It might be that they have a bit of ego wrapped up in it, and use that for more motivation. This in turn creates its own unique culture, which excludes people who don’t prefer to work that way.

Joining another group is the social or business equivalent of a forest fire that makes way for a fertile new forest–harmful in the short run, productive in the long run. There will be less arguing and lot more happiness on the side of the developers who branched out with the new techniques.

There will always be people who dislike certain techniques, for good and bad. But it’s up to you to decide who to associate with.

On the other hand

Clearly there are a lot of good reasons to stay on a project or organization even if everything is not to your specific tastes. For one, you could be wrong about the best way of accomplishing something. For another, maybe there are several valid ways of approaching the same problem, and the value of having the team aligned is high enough not to rock the boat. Or maybe it’s a stylistic thing that you are willing to compromise on.

Your thoughts?

Jay Fields has a couple of great articles that touch upon some of these points, with many real-life examples. See Compatible Opinions on Software and Signs That Your Project Team Might Be Too Large.

What do you think? Is the value in trying to introduce change to teams and organizations worth it?

Do Lean Startups Reduce Personal Commitment?

At one of the Indianapolis Lean Startup Circle meetups, someone asked questions along the following lines (paraphrased):

Won’t using lean startup techniques reduce my commitment to an idea? If I can just walk away from something because I have not invested much in it, how do I know that I won’t give up too early?

I had a bit of cognitive dissonance about the question. At first, I thought the line of thinking was silly. After all, the whole reason I was there was to ensure that I didn’t go “all-in” on an idea with no validation. I responded intelligently at the time, but the question kind of gnawed at me.

As I thought about it the next day, there seemed to be logic to what he was saying. In ancient times, didn’t conquestors burn the boats at the shore to improve their troops’ desire to win the battle ahead? With no easy way to retreat, the thought goes, they can focus all of their energy on the task at hand. And what about pushing through the dip or other aphorisms for getting going when the going gets tough? What if you quit right before the finish line because some metric said to do so?

I think my arguments for validating the idea are:

One of the advantages is that you are not all-in. You can be more impartial about your particular implementation of a solution when you know that you have ways to learn about what a better solution is. If you don’t have a way of repeatably learning, you’re stuck in no-entrepreneur’s-land.

Personally, getting feedback and having early adopters is very empowering and motivating. I think that value is a multiplier of idea quality and execution. I’d rather be pretty sure that the idea itself was pretty good and ensure that I’m excited to work on it, thereby increasing the execution component. If you think ideas are cheap, then there’s an opportunity cost of pursuing one over another, because the cost is in the execution and there are always more ideas.

If the validation turns out cold, find another idea and find a better one to be committed to. Then commit. :)

Not sure there’s much more for me to say here, so I’ll leave it at that for now. What do you think? Is it better to go all-in?

What I've Learned From RailsThemes So Far

I brought up RailsThemes in an earlier post, and figured I’d post an update about how we are working on it and what I have learned so far.

RailsThemes is a project that I’m working on with Eliza Brock and Luke Flener. It is like WordPress themes, but for Ruby on Rails applications. Basically you purchase a theme on our website, and then you can install it on the command-line and have a site that is easy on the eyes in a matter of minutes. Traditionally, you would have to spend a lot of time and money to get a good looking theme.

What day of the week is it again?

Eliza lives in Nashville. I live in Indianapolis. Yet we were able to spend about two weeks together in the same location working on the project over the course of a couple of months due to some creative scheduling.

The benefits of working in close physical proximity are fairly well documented (see Peopleware). For me it is speed of getting feedback, better design sessions, and general morale boosts.

When the project first started, we talked on the phone and I said that I needed to find a weekend to come down there so we could work together. Eliza reminded me that I can work whenever I want to, so I could come down for a few days in the middle of the week and that would work. I said that made sense, and then five minutes later, said, “OK, well I’ll find a weekend that works and then I’ll come down,” and then immediately re-realized that I could come down on a weekday. Old habits die hard I guess. :)

So I picked a Monday through Wednesday trip and drove down and back while listening to audio books (a good use of the dead time.) Later iterations of the “work weekend” as we came to call them had me riding on the Megabus to free up time to work on things or read or relax. We would get a lot of work done during those periods, so it was worth the cost of traveling. I went down to TN, she came up here for a week or so, we met in the middle in a Kentucky state park and used a MiFi to get internet, and I went down there again right before RailsConf to finish up some things. So overall, a pretty productive way to get things done. We could also work on things outside of these blocks, but they were very effective in staying on task and ensuring that the time was used well. The opportunity cost of traveling made it really unappealing to waste time.

Scheduling things like this does take its toll. At some point in the last month, I tried to order the Wednesday lunch special and after a puzzled look by the waitress, was informed that it was Friday…

The installer

The installer is what I’ve most been working on for this project. I also worked heavily on the payment gateway and backend tools to help us create and manage themes. We came up with the idea of a command-line installer to allow devs to quickly get up and running with installing a new theme (full source and history here). The idea is that the installer does most of the heavy lifting of looking at your project and determining what files you want, and then asks the server for the right set of files and installs them correctly.

I researched how to make a gem, and used Bundler to generate the scaffolding. Then went through and developed it using (mostly) test-first development. Sometimes there were issues that were easier to track down by running the installer on my machine, and then I could make the appropriate changes to the tests afterward. I think this is a good example of “spike and stabilize”.

One cool thing that I ended up using was fakefs. This allows you to stub out file system calls and thereby test things without needing to actually touch the file system. This makes for more repeatable tests, reduces the need for cleanup, and possibly speeds up the specs as well. Before using it, I had functions that I was invoking that would operate on the filesystem, and then would mock those calls. However, fakefs works by setting up a fake filesystem (hence the name!) that you can run your tests on and then make assertions about the state of the filesystem. Overall a much cleaner solution.

Progress update: Early-access beta

We still have a few kinks to work out, but we have themes and people are starting to help us test them out. If you work with Rails projects and you haven’t signed up yet, check out RailsThemes and we’ll let you know when things are rolling.

We are planning on coming out with a new theme every month, and some extensions like themes for emails that you end up sending out through your app.

General thoughts

It’s too early to say whether RailsThemes will be a financial success or not. I think the next couple of months will shed some light on this. However, I’m glad that I worked on it so far. I had been wanting to work with Eliza on a side project of some sort for a few years. I think we made an ambitious but achievable schedule and really executed on it. My confidence to be able to do projects has gone up. I better understand how hard it can be to make something.

I think regardless that we are creating value, and that good Rails themes are something that I wanted to have in the world. If things don’t work out, I also think it will be a good data point for me to refine future business ideas.