Monthly Archives: August 2011

What is Science? (For Dummies)

I get tired of repeating this over and over again, so I thought I would write it down.

  • Gathering data.
  • Spotting patterns in the data.
  • Making up a possible causal relationship from the patterns. This is called abduction.
  • Testing that hypothesis. Showing the truth of the predicate produces a true result is called deduction.
  • Creating a falsifiable hypothesis. Many would say that showing a concrete case where the hypothesis is true yet the result should be false is the difference between elaborate guessing and science.
  • Testing That. Induction again.
  • Updating the probability that the cause is related to the effect based on the experiments. Stipulating that a finite number of results can be extrapolated to a larger infinite set is called induction.

Repeat and rinse.


  • This is not a sequential system where each step is completed perfectly. Instead, all of the steps are going on at the same time, and each step many times is only done “well enough” for whatever goal the practitioner has
  • The system builds on itself. So whatever you learned previously, new nouns, new actions, new relationships — you carry forward into the current activity
  • A baby does all of that the first time he cries on purpose and somebody brings him a bottle. This is not only scientific learning, this is real-world human learning.
  • As chains of causality are created, the universe of nouns and actions also increases. This means that the search for “why did that happen?” is the driving and integral force behind learning new systems of knowledge. Everything we know, we know because we asked “why does this happen?” — that is, we looked for causes.
  • The result is that the probability is updated, not that we “know” something. Real-world knowledge is inherently Bayesian.
  • The human brain is a master of working with reality using a bunch of heuristics that may only at times be 5% correct. We are wrong in zillions of ways in which it does not matter that we are wrong.
  • The system has a tendency to “stick” running down bad paths for a while and then making quantum jumps. This is the way the system is supposed to operate. It does not move directly in a straight line. It finds false paths, sticks with those, then jumps over to new paths. (Humans and politics play a big role in these jumps. People have a hard time changing their attitudes.)
  • When given a new situation, we can do two things: 1) create an analogy between this situation and one for which we have much more causal data mapped out, or 2) take the rules of the universe as we “know” them and try to extend them into this domain. Both approaches are fraught with difficulty.
  • Because this learning process increases our knowledge domain, and because that domain is not increased before the process is finished, we can only ever really begin learning something by analogy. After the simple analogy is understood we can begin looking for differences between the system being used as an example and the new system
  • You never really know. Science is always provisional. The best you can say is that it is ludicrously improbable that you are mistaken about something
  • When somebody says, “That’s Science!” The appropriate response is to question him on each of these items. Most times people confuse what most scientists believe with science. Remember that there is a big difference between a series of experiments which may show X to a 61.2% likelihood and the fact that 95% of scientists agree on X. Remember the brain is master at jumping to “yes” or “no”. People don’t like to be unsure about something, so their opinions will aggregate around certainties. Real science does not do this. If you want an honest, reliable answer, stick with the real numbers. Science is not a popularity contest.
  • Check a priori data. The assumptions people bring into an experiment have a lot to do with the conclusions they draw from it. Hidden assumptions get you every time.
  • “Test” doesn’t mean to simply to the experiment again. It means to describe the experiment in neutral terms and have somebody who does not know what they are testing for to try to reproduce the results.
  • If you don’t know why data and algorithms should all be public then my explaining it won’t help any.

I wonder if I am being pedantic here. I don’t even know why this is necessary — it all seems pretty obvious — but folks keep getting hung up on it over and over again. Might as well write it out.

If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter.

Don’t Know Much

I’m having lunch with my oldest son today. He turned 25 this year! It was a big birthday for him, and a big moment for me too.

Looking over the last 25 years, I can’t help but try to figure out what’s changed. Am I the same guy I was at 21? Of course not.

A lot has changed. I think one of the most interesting changes has been in the last five years. I’ve decided I don’t know very much.

Up until then, I studied a lot, learned as much as I could about something, then dove in and took charge. In the last year or two, however, as my startups start taking off and I finish up my agile/kanban book, looking back over all of it, I realize how little I actually know.

Please don’t think I have a lack of self-confidence: I’m still the arrogant asshole I always was. But now I don’t automatically assume that the world is the way I suppose it to be. Looking at dozens of teams get more productive — and some fail — has made me rethink what it means to construct success.

In the western world, many of us are model-builders. Give us the specs, the shape of the system in question, and we will build a mental model that emulates it. Then we work the model to see what happens. If that works, we move to the real world.

As an example, if you were coding a large client-server system in the 2000s, the first thing you should do is talk about your domain model — which concepts are important enough to be in the system and which aren’t. Based on that discussion, identifying concepts and their relationships, you could continue down the path of development.

Or take playing a video game. As we play, we construct a mental model of how things work. Pull that lever there and the door opens. Do these three things in order and you can do the forth, and so on. As our mental model gets more detailed, we are able to play the game better. Life, it seems, is just a series of models that we learn to some degree of fidelity and then master.

All of this is true, but as I continue writing my book and looking back on teams I have led or coached, it occurs to me that successful teams were always rebuilding models, not elaborating even more on pre-existing ones.

If you ever worked in a successful startup, you’ve seen project managers do what comes natural to them: take what works best from each project and combine it into a master “cheat sheet” of how good projects should operate. I have seen this several times. These are all well-meaning efforts, but in the end they all fail. They hurt more than they help.


I think it’s because the human mind naturally models way far beyond anything that might be actually true. We can see a butterfly in a meadow in the morning and have a 3-page poem dedicated to it by lunch. Or — a much likelier scenario — we can observe 3 or 4 projects that do well, identify commonalities, then extrapolate that to the universe of projects.

But it’s not just technology teams, that’s the kicker. We all do this, and we do it in every part of our life, whether we realize it or not. It was learning about startups that taught this to me. You’ll have an idea, try to sit around and decide if it’s a “good” idea, then, based on that judgment, elaborate on it some more. Maybe you write some code. Maybe, if you’re new to this, you write a lot of code. Perfect code. Use a bunch of TDD and have a rock-solid architecture and implementation. Make sure you’re able to scale. Pick the best problem to solve. Use a data-driven implementation. Pick the right corporate structure. Hire a lawyer.

How can I say this nicely? There are a thousand things you can do in a startup that don’t amount to jack shit. There are very few things that are important. All of them directly relate to getting customers.

You see, it’s easier for us — it’s more natural for us — to construct these models and flesh them out, turn them into reality — than it is to actually see the real world. The real world wants an iPod app that farts when you push a button. You and I may want a super-colossal app that ends world hunger, but nobody else will buy or use what we make, so in the end it doesn’t matter. But — and here’s the crazy part — instead of adjusting our work habits to try to continually find out what the world wants, instead we create more and more complex models or what we think they should want. We love models a hell of a lot more than we love feedback.

That’s why I think being stupid and humble is probably the best attitude for having a startup. I don’t know what people want, I actively resist learning, and the best I can do is struggle with that truth.

The same probably goes for the rest of life as well, although most of us (including me) are uncomfortable looking at it like that.

I don’t know much.

If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter.

Warren Buffett has me Confused

I went back and read Warren Buffett’s op-ed in the NYT again this afternoon, and heck if I can make heads or tails from it.

His message seems to be “I’m rich, and I want the super-rich like me to pay more in taxes.”

That’s great. Write a check.

But that can’t be it. He doesn’t want the super rich to pay voluntarily , if he did this would be a very simple thing to do. He wants the government to tax the super rich at a higher rate because it’s the right thing to do. He’s tired of having politicians look out after him and other super-rich “…much as if we were spotted owls or some other endangered species…”

Okay, so how come they pay so little? Because they make money on investment income — capital gains. As I read this, he seems to be saying to raise the capital gains tax.

And then I get lost again.

Continue reading

If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter.

To fix the Economy, make just one Job

I’ve always been reticent to participate in charities. It’s not because of any kind of cruelness or heartlessness on my part — I simply find myself gravely unable to make a decision that I think will actually help people and not hurt them. Giving a junkie ten bucks on a street corner might make me and the junkie both feel good, but in my mind what’s actually happening is that I’m just helping the poor guy suffer.

For a long time, I felt the same way about startups. Back in the 2000s, I used to get calls — multiple times per week — from startups who were looking for sharp technical folks to come on-board. There were nice salaries, bonuses, stock options, etc. I met some wonderful people back then, and the offers were very tempting.

So why didn’t I sign up? Because I never felt that I was any good at picking out startup winners. A set of competent and wonderful people attacking a great problem doesn’t necessarily mean success. Looking at the odds, I made the decision that I was ignorant. Or as I put it at the time, “If I knew enough about startups to be able to pick a winning team, I’d be in a startup and not just joining one.”

There are a lot of problems with my attitude back then: for instance, there can be a lot of value in joining a team just to see how the game is played. But the underlying observation, that predicting success was tough as hell, was spot on.

Looking at the economy — millions or tens of millions of businesses and jobs — I find that there are a lot of people who don’t share my lack of confidence. Any day I can pick up the paper and find multiple opinions, most of the time of differing conclusions, about how to fix the economy and make new jobs. These things are almost religious in nature, that is, no matter what the actual evidence, people just keep believing the same things they’ve always believed.

All of us know the buzzwords: education, de-regulation, tax-free zones, incubators, centers of excellence, tax amnesty, infrastructure banks, micro-lending, etc. These buzzwords have been around for decades, and sometimes I think the same folks pumping them 20 years ago will continue for another 20 years, no matter what the actual facts on the ground are.

My opinion on startups had to change. I realized as a consultant that I only had so many hours in the day. It was either grow a consulting business, go full-time somewhere, or do something that made money that did not involve my time. So, thinking it might be a “little” difficult, I hopped into startup world.

That was around 8 years ago, and I’m finally slowly getting the hang of it. A “little” difficult turned out to be one of the toughest changes in my life so far. It’s a completely new way of looking at everything. Unlike everything else I’ve done, startups are very specific: there’s not a lot of generalizing you can do. Each one is its own world.

So now when I read some simple answer to fixing the economy, I ask myself a question: given infinite resources, how would I make just one job? Not employment: giving a sack of money to somebody to work for a year is not creating a job, it’s providing employment. After all, the goal of a startup and the goal of these speech makers and commentary writers are the same. The political guy wants to create ten million jobs. I just want to create one. Our problem is a difference in scale.

In the startup world, we always are looking from the bottom-up, not the top-down. That is, you’re always observing the world as it is and trying to find little defects and inefficiencies that you can fix in return for money. Top down guys are always dealing in big picture, broad topics. A top-down guy will tell you the transportation sector is weak. A bottom-up guy will tell you that people shipping stuff would really like to do it from their smartphones. The top-down guy deals in big aggregations and always is behind the curve. The bottom-up guy deals in very small concrete pieces of information and personal skill, and they’re always ahead of the curve.

Startup guys fail a lot. In fact, the whole thing rests on failure. The more you fail, the faster you succeed. Top down guys view failure as being the last thing you can possibly do, because once you fail, nobody believes you any more.

Top-down guys are always looking at “enablers” — attributes they can add to people to make them succeed. Bottom-up guys are always looking at obstacles — I have this plan I need to test in the market. How can I eliminate the obstacles preventing me from testing it in the swiftest manner possible?

In fact, aside from “get obstacles out of my way to find my first customers,” there’s not really a lot of generalizations you can make. (Note that I didn’t say “remove all government regulation” — not my point at all. And obstacle between me and my customers might be my education level. It doesn’t happen very often, but it happens.)

There’s no master plan. There’s no secret sauce. There’s no big broad slogan you can put on a banner and rally around. It doesn’t work like that. The next big business generator might be nuclear fusion. Or it might be a new form of stuffed animals. You can’t predict it, and you can’t select the winners and losers ahead of time.

So I have one simple test to apply to any political or economic theory: does it describe to me how to make one job? Because if it does, if the pitch is that by doing x,y, and z somehow jobs will appear? It’s not a very good theory. If anything, a good theory would describe how it is going to create millions of people failing repeatedly at helping each other. Perhaps that theory is out there. But I haven’t seen it.

If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter.

Causes for Drop in U.S. Credit Rating

Here’s the systemic problem, which has nothing to do with Treasury Bills, tax structures, or political parties.

Phases of political maturity:

1) Apathy. Political parties are like football teams. You pick one and they’re your guys. You root for them no matter what. If anything, there might be something wrong about folks who take these things too seriously.

2) Emotion. The other political party is the devil. They are out to destroy America.

3) Enlightenment. The other party is just full of people like me. There are some smart

folks, but the problem is that they have all the wrong incentives and conclusions.

4) Understanding. Gee, there are those same bad conclusions and wrong incentives in my favorite party too. Ergo, parties don’t matter. There are smart people everywhere. When the system fails, it’s a problem of the system, not of the people or parties.

The problem in the U.S. is that the majority of folks are in stage 1 or 2 when we need them to be in 4. So when deep structural conversations come along, they’re still either rooting for their team or blaming the other guys, when they should be talking about principles that need to be changed for the entire system to work better, no matter what the actual goals of any party.

There is another problem that helps create deadlock — an understanding of where the money comes from. I think many folks view the economy as something the government grows so that it can harvest money in the form of taxes. (This is not a Keynesian discussion, simply a discussion about taxes in general.) Other folks view the government as something the economy grows in order to keep it functioning. These are two deeply conflicting world-views. I’m not sure you’ll ever reconcile them. Some put trading first and sharing second. Many put sharing first and trading second. These two camps have come to demonize the others, sadly. (Which takes us back to the observation above)

For this problem to be solved, we need to give up on arguing specific issues or philosophical positions and instead talk about fixing structures so that the budget stays balanced long-term no matter who is in power or what their priorities are. Imagine a world in which the most bizarre and extreme liberal policies could come true. Make the system work in that scenario. Then imagine a world in which the most bizarre and extreme conservative policies could come true. Make the system work in that scenario. This is a meta conversation, the kind the framers had. I am very doubtful there is anyone around today in power that can handle it. All of the people in political power got that way by playing ideological and rhetorical games and by being fiercely loyal to their party. It’s the exact opposite qualifications that we need in folks for actually fixing anything. Not a happy outlook.

If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter.

It’s All Content

I reached a conclusion several months ago that I’ve been a bit timid to explore, but this morning seems as good as any.

Basically, the internet has made everything into a commodity.

Hackers love this argument when it’s used for something that’s not dear to their hearts, like the future of record companies. Why should record labels charge so much, they ask. It’s just all bits floating around on the net, and bits got to be free.

Some hackers will take this to the logical next step, and demand that most programs should be free as well. How can you in good conscience charge for something that, while it might have a high prototyping cost, has no production cost at all? It’s all just bits. Bits got to be free.

But very few of them actually reach the logical conclusion: everything is just bits. Diagnosis for a medical condition? Just a bunch of bits representing an expert system with your personal data applied. Legal assistance? Same thing. Directions to assemble a nuclear reactor? Just bits. And bits got to be free.

Here’s an exercise for you: pick something, anything (as long as it’s some sort of service or intangible product). I can show you how it all boils down to a bunch of bits. Yes, initial costs might be quite high, but follow-on costs will drop quickly to zero.

With 3-D/Christmas Tree machines beginning to take off, this is going to spread to tangible products as well. I can easily foresee a future in which most all physical goods are just so many bits, all out there on the web wanting to be free. A song is the same as a legal document is the same as a car. They’re all bits.

As a startup junkie, this has profound implications. It means that no matter what the complexity of the code you are generating, it’s all either completely worthless when your’e done or trending towards zero at a high speed. Last year’s complicated tax preparation system that cost 80 bucks is this year’s free web app.

Well then, what actually has value? Easy one: audience participation. When you create something that has high audience participation, the involvement of the audience is the thing of value, not the complexity or value of the solution the code provides. This is why sites which emphasize the audience creating and amusing each other, say Facebook or Twitter, have so much more long-term value than sites that solve a simple problem and then disappear from the user’s mind.

In fact, let’s just be blatant about it: it’s the engagement, stupid. Everything else is content. The goal: create content that leads to engagement.

This sounds so simple as to be trite. Many of you are saying, “Sure! But if I knew how to engage users, I would already be done with my startup!”

So let me explain a bit more.

The programming you do for your startup is just a form of content, and like any other form of content, it’s value will trend towards zero over time. The minute you finish the code is when it has the most value. From there on out it’s decreasing. Of course, the idea is that your userbase increases, thereby making your startup soar. But it’s the user involvement, creating and consuming content, not the solution, that provide the value.

The best kind of content is the content — the type that has the maximum engagement potential — is content that users create for themselves. Ideally, your program will do something that will facilitate the users creating their own content which will also trend towards zero. But it will be their content, not yours, so it’s value starts much higher and there is a bigger chance of them sharing their content with others, thereby giving you the network effect which means you’ll grow like wildfire.

This might sound impossible to do unless you are making a social app, but actually it’s quite easy, at least in theory. Making a financial app? Allow your users to create an analysis of where they want to be in 3 years — then let them send themselves reminders about it each month. When your users are creating their own content, it has much more initial value. In fact, once you understand this, you can recognize that any kind of service is just an assisted form of letting users create their own content.

You should look at the programming part of your startup as just being a form of content creation, just like a marketing brochure or a sales email. This means that programming, at least in the startup sense, is very much an art, not an engineering science. It’s should be easy for you to do, and the focus should be on visual expressiveness and the emotional impact on the user — nothing else. If your startup has any chance of success, it should sell the user on the idea of their creating their own content for reuse using your app.

There was a famous scene in the movie “The Social Network” where college kids were rating pictures of other kids with an up-down vote. To the kids, what they were doing was simply something they were naturally bred to do: rank potential mates. Pretty brainless, but lots of fun. But to the guy writing the app, what the kids were doing were creating a personalized ranking system of attractiveness, a system that they wanted to share with others. From the kids’ standpoint, the content was in the pictures, but in fact the content was in their ranking. They were so enamored with the content they were consuming, they had no thought of the content they were creating. It’s a beautiful thing.

In the academic world, we look at the subjective value of the solution. In the consulting world, we look at the relationship to the client. In the manufacturing world, we look at how the features address market segmentation.

In the startup world, we look at none of that. Or rather, we look at all of that, but the only reason that it is important is in how we use it to create new content that people want to create, share, and consume. I think many of us pull down these old paradigms from places we were before and try to make them work in startups, and it’s not the same thing at all.

It’s all content.

If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter.