Duff O'Melia

The Goal by Eliyahu M Goldratt

Wow. What a book. Who would have thought that a book about how to convert a factory from a money loser to a profitable enterprise could be so entertaining and engaging? Who would have thought that you could teach business principles using a novel? It’s really a brilliant book.

I can’t stop thinking about how to apply the principles to Spreedly and No Kahuna.

This book makes me want to someday own a factory and make “real” stuff. I wonder if there’s a business owner out there who can actually put this book down.

The Well-Grounded Rubyist

This past Tuesday, we had a pretty enjoyable book exchange at the Raleigh Area Ruby Brigade meetup. Before the gathering, I had some food with Matt Bass. He mentioned that he was bringing a book he was hopeful would help someone who hadn’t been using Ruby for very long. It turns out that I ended up pulling the book Matt brought (The Well-Grounded Rubyist). My first thought was, oh well, I’ve been using Ruby for years, this probably isn’t a book I’d be into reading. I even tried to convince folks to exchange for it.

When I got home that night, I started looking at it a bit and it seemed interesting. The next morning, I read a bit more and I was hooked. I declared yesterday to be an axe sharpening day. I didn’t code a bit. I spent the entire day reading the book. And about half of today doing the same. I’ve got about 3 chapters left to read. It’s one of the best technical books I’ve read in a long time. David A. Black is an amazing author. The book is filled with crystal clear explanations and I’ve been quite surprised how many aspects of Ruby I didn’t truly undertand.

Ever been confused by some of the code that _why’s written? Ever been unsure how some of the code in the guts of Rails really works? Ever read someone else’s code and had the thought, “why don’t they write simpler code that doesn’t utilize such wacky aspects of the Ruby language?” Ever thought some code was too magical? I know I have. No more. This book has been quite motivational in terms of increasing my desire to reach a new level of Ruby mastery. If there’s some code I don’t understand, it’s on me to understand it. Time to take more responsibility.

I’ve noticed that the folks on the Rails core team and other advanced Rubyists like Nathaniel Talbott regularly take advantage of parts of the Ruby language I haven’t been an expert in. They know what self is, they know that a class method is a singleton method on the class object, they truly understand the more dynamic aspects of Ruby and how and when to customize an object. In short, they own Ruby.

The book has given me even more of an appreciation for how beautiful and powerful the Ruby language is. Thanks for the book Matt!

One Person Makes a Difference

We’ve all had experiences as a customer when we’ve heard things like “I don’t have the authority to do that” or “Sorry, we have this policy…”.

It can be pretty frustrating and it seems to happen more when dealing with big companies than small companies.

Recently, I became a customer of a big company named Sprint. You’ve probably heard of them. :) I wouldn’t expect excellent customer service. In this case though, there’s one person named Dennis who works in the store in Garner, NC who seems to consistently attempt to delight customers. He’s one person working for a large corporation whose actions affect customers on a daily basis and cause them to start yapping about how great their experience was as a customer of Sprint.

Example 1: I was having trouble getting my new 4G card activated because it doesn’t handle Macs well yet. Dennis tried a bunch of things and then offered to let me follow him home so he could activate the card on his home computer since there were no available PC’s in the store. A crazy offer. Not something most folks would offer. One I accepted. One that helped me get up and running with the card.

He’s also going to get a PC running at the store for new Mac customers because he knows this solution won’t work long term.

Example 2: Here’s part of an email I just received from Dennis:

This is Dennis at the Garner Sprint store. I was nosing around our 4G rate plans and found a better 4G plan for you. Unlimited 3G+4G for… $10 less than you’re paying now! It will take effect on the start of your next bill cycle, 12/07/2009. Let me know if you have any questions.

This is amazing to me. It’s a remarkable thing when we’re delighted as customers. Perhaps because so few people consider unconventional solutions. Perhaps because there’s often little incentive to delight the customers you interact with when you’re working for a conglomerate. When it happens though, customers remember it and talk about it.

Customer Service Delight

every interaction matters and every customer is precious… Every interaction is both precious and an opportunity to delight.

I think this is extremely wise advice and it’s incredibly difficult to implement. It takes time, effort, patience, and perseverance. It takes love. It takes actually caring about the person on the other end of the support request.

For the last few days, I’ve been on point for Spreedly support while Nathaniel’s been on vacation. The experience has given me an entirely new appreciation for how challenging the task is, and how adept Nathaniel is at it.

The question that comes to mind is, if the business you’re creating has a product or service that’s remarkably good and you knock customer service out of the park by attempting to delight people, how could it not succeed?

Prefixed Pluralize

I’d like the view to be smart and say something like “There are 3 plans available” or “There is 1 plan available” based on the number of plans.

Icky:

1
%p There #{( current_gym.membership_plans.count == 1 ) ? "is" : "are"} #{pluralize(current_gym.membership_plans.count, "membership plan")}.

Better:

1
%p There #{prefixed_pluralize(current_gym.membership_plans.count, "is", "are", "membership plan")}.

Here’s the little helper method:

1
2
3
4
def prefixed_pluralize(count, singular_prefix, plural_prefix, singular_suffix, plural_suffix = nil)
  prefix = (count == 1) ? singular_prefix : plural_prefix
  "#{prefix} #{pluralize(count, singular_suffix, plural_suffix)}"
end

And the test:

1
2
3
4
5
6
7
test "prefixed_pluralize" do
  assert_equal "are 7 dogs", prefixed_pluralize(7, "is", "are", "dog")
  assert_equal "is 1 dog", prefixed_pluralize(1, "is", "are", "dog")
  assert_equal "are 0 animals", prefixed_pluralize(0, "is", "are", "animals")
  assert_equal "are 5 users", prefixed_pluralize(5, "is", "are", "person", "users")
  assert_equal "are now 2 penguins", prefixed_pluralize(2, "is now", "are now", "penguin")
end

Helpful?

A Monopoly of Violence

I think it’s important to remember exactly what the State is. It’s so easy to be tricked into thinking it’s something that it’s really not. It’s easy to be fooled into thinking that the coercive monopoly of the State is somehow a force for good.

Murray Rothbard’s defined the State in his amazing essay entitled War, Peace, and the State.

The State is a group of people who have managed to acquire a virtual monopoly of the use of violence throughout a given territorial area. In particular, it has acquired a monopoly of aggressive violence, for States generally recognize the right of individuals to use violence (though not against States, of course) in self-defense. The State then uses this monopoly to wield power over the inhabitants of the area and to enjoy the material fruits of that power. The State, then, is the only organization in society that regularly and openly obtains its monetary revenues by the use of aggressive violence; all other individuals and organizations (except if delegated that right by the State) can obtain wealth only by peaceful production and by voluntary exchange of their respective products. This use of violence to obtain its revenue (called “taxation”) is the keystone of State power. Upon this base the State erects a further structure of power over the individuals in its territory, regulating them, penalizing critics, subsidizing favorites, etc. The State also takes care to arrogate to itself the compulsory monopoly of various critical services needed by society, thus keeping the people in dependence upon the State for key services, keeping control of the vital command posts in society and also fostering among the public the myth that only the State can supply these goods and services. Thus the State is careful to monopolize police and judicial service, the ownership of roads and streets, the supply of money, and the postal service, and effectively to monopolize or control education, public utilities, transportation, and radio and television.

Albert Jay Nock defined the state as well:

The State claims and exercises the monopoly of crime…. It forbids private murder, but itself organizes murder on a colossal scale. It punishes private theft, but itself lays unscrupulous hands on anything it wants.

Toilets!

I just love this quote from J.D. Tuccille :

Red and blue tribal loyalists shriek about each other’s perfidy because they have conspired to intrude the state into virtually every area of human life. Having created a government so powerful that it tells them what size toilet they can install in their homes, steals the lion’s share of the average shmoe’s gross play, and kicks in people’s doors for smoking the wrong plant (weed or tobacco — your choice) or playing poker without a permit, they’ve suddenly discovered that who’s in charge is really important.

Also enjoyed this:

Here’s a small suggestion for both lefties and righties, for whatever it’s worth. You know that nasty, slobbering beast you’ve created out of the government? Take it out and shoot it. We’ll start over again with something that minds its manners and leaves us all alone.

Republicans and Democrats take turns “leading”. Nothing really changes though. Government gets bigger and more powerful, and they take more of our freedom and money. And for all of you fans of Reagan out there – he grew government too.

Time Freedom

I met a dad in the pediatric intensive care unit whose child had been in the neonatal area of the hospital for 3 months. I asked him how things went with work and how he and his wife were able to spend so much time at the hospital. He replied that he’s a business owner and that his work wasn’t too affected by the long hospital stay.

Creating assets that provide value to people is important. Producing more than we consume is important. Figuring out how to live in a way such that your income is not solely based on the time you spend working is important.

Seasteading

I think that government throughout the world is fundamentally broken. I don’t see how the current governments out there can possibly be fixed or refined. I think they’re too far gone. They’re not really competing with each other primarily because it’s too difficult for individuals (the customers of government) to switch governments. They’re also too big for individuals to really have a significant impact. Put a few million people together and you get a government that no one is really happy with. Government becomes the legal way for people to take other people’s property and to force others to act the way they’d like.

In America today, there are a ton of groups who think they can do a better job but have very little hope of America ever really reflecting their values. There are libertarians, environmentalists, Christians, Muslims, liberals, neo-conservatives, and anarcho-capitalists. That’s just naming a few of the groups who will never really see their ideas for government really enacted.

So if you’re in a hopeless group and you’d actually like to implement your ideas, what are you to do? At this point, all people can do is whine, complain, and dream. They never really do anything. They often talk about it, write about it, call their representative about it, and hope for a different future. Sure, some do become activists and have some slight impact.

I’ve been one of those whiners by having this blog. One could write a blog entry about each of the laws in this country explaining why it shouldn’t be the way that it is. Many whiners, complainers, and dreamers eventually resort to contemplating the creation of their own nation. It’s been tried many many times by many people. All of the attempts have had one important thing in common. They’ve all failed. Miserably.

That’s about to change.

I think that Seasteading will become a reality. I think it’ll be the first nation creation idea that will actually work. I’ve read their book. I’ve read every entry on their blog. They have an impressive plan. I didn’t know that it was possible to create a floating structure that doesn’t rock with the waves. I’d really like to see this in action. If this works, it changes everything. It could actually make governments more competitive since it gives people more of an opportunity to vote with their feet.

I love that they’ve learned from all of the failed attempts. I love their incremental approach. It’s the same approach I use to create software and websites. I think they’re brilliant and I’d like to invest large quantities of cash in this new way of life.

UPDATE: This multi-page summary of seasteading could be a good place to get some more background.

Ready for Real Customers?

You’re creating a website that you’d like to release to the general public. One of the questions that needs answering is, which features do you need to make it to that first release?

I’ve been enjoying creating sites that I personally use like Spreedly and No Kahuna. When I’m an actual user of the site I’m making, it makes the decision about what to implement a bit easier.

The goal is to get to market and have the site being used by real customers as quickly as possible. For No Kahuna, that happened in 2 days. Spreedly took many weeks of effort before a real customer started using it. To release to a real customer, we’re only trying to make something that’s slightly better than what’s out there. We’re only trying to provide some value to the customer, not all of the value we’re ever going to provide. Does the site in its current state improve the lives of our customers?

When you’re your own customer, this becomes fun because you’re only working on the features that you’re quite sure would improve your life. If you’re at all unsure whether a feature provides value, defer it. Only do the stuff you’re confident about. This is fine because you’ll be released soon, and then customers will start giving you real feedback which is much more valuable than your guesses about what’s important.

Once you’re released, then you need to be judicious about which features to implement and be willing to say no to many requests from customers. In Getting Real, the 37 Signals guys said this:

And one more thing: it’s not just about the sheer number of requests (we don’t recommend adding something just because X# of people requested it), it’s about customers planting a seed in your mind. If they keep reminding you of something, it forces you to think about it. Maybe it is a good idea. Maybe it isn’t. But at least it’s important enough to consider if so many people keep asking for it.