Skip to main content

The $10,000,000 Question

Neal Ford posed a question on Dave Rael's Developer on Fire podcast. He asked whether if you were offered $10,000,000 on the condition that you could never write another line of code for the rest of your life, would you take it? I'll leave it to you to go listen to the podcast if you want to hear Neal answer his own question, but you can have my answer here.

Why Take the Money

For me, and probably a lot of other people, the purpose of accepting the money would be to gain freedom. Having a sufficient amount of money with which one could live out the rest of one's life comfortably changes one's perspective and position considerably. With $10,000,000, I would no longer need to work. That's probably obvious, but considering how much of our time is spent working in and on our careers, that's an enormous gain. All of that time comes back to me because I am no longer compelled by necessity to go out and earn a living through labor.

The Value of Work

The difficulty begins with the fact that work is more than merely necessary to keep food on the table and the lights on. There is significant evidence in history and scientific data to support the notion that work is good for you even if you don't have to do it to survive. People who retire cold turkey, i.e. stop working altogether, often have significantly shorter lifespans than those who continue to perform some kind of work even after retiring.

It may be worth giving a definition at this point, so we're clear. For the purposes of this discussion, work is an activity that a significant number of people are paid to do for performing the task at a comparable level of proficiency to the way you perform the task. I include the proficiency requirement to rule out such things as recreational golf. Yes, some people do get paid to golf, but they get paid because they're much better at it than you are. One other important point here is that it doesn't matter whether or not you actually get paid to do the work. If you volunteer to build houses with Habitat for Humanity, that counts as work, as there are many people who get paid to participate in the building of houses without having much skill in that trade.

I would argue that in addition to potentially lengthening one's life, work is good for one's character. It helps to develop responsibility, leadership skills and diligence among other valuable traits. Depending on the type of work, it exercises the mind and/or the body in various ways. Exercise of the mind and of the body have significant benefits to health and quality of life. Work is one thing that can also lend a person's life meaning. While there are other sources from which a person can derive purpose, work is an effective one. Work frequently helps you to connect socially with other people, which is another critical component of health and well-being.

Now that we've established that ceasing to work, if allowed the possibility, is potentially deleterious to the quality of one's life, I know that I would continue to work even if I were free from the necessity of doing so. However, the great aspect of having a large sum of money to support myself, is that it would give me a great many more options as to the type of work that I could perform and the terms on which I could perform it. I would no longer be constrained by financial considerations. This would leave me free to work on the projects that were of the most interest to me.

Freedom for Freedom?

The problem I have is that the projects of most interest to me would involve programming. Thus, if I accepted $10,000,000 in return for giving up programming, I would be gaining the freedom to do what I want by giving up my freedom to do what I want. Yes, I could pursue other interests. However, the principal remains; I would be sacrificing freedom to gain freedom. It's difficult to quantify how much is lost or gained on either side, but the money tempts me because I want more choices in my life, yet I ultimately have to constrain myself to get it, so in the end the gain is little or nothing. I would rather take the long road and earn the money (freedom) over time such that I can have it in its entirety.

The question really strikes me as an almost-Faustian bargain. We ought to be very careful with what we are trading away and be sure it is not very important to us. For me, programming and software development are a significant part of my life; more than something I merely do for a paycheck. Software development is my trade, and one's trade is part of one's identity. So, in addition to some part of my freedom, I would also be sacrificing some part of my identity as well in taking the money.

A Test for Success

The other significant thing that bothers me about the offer is that it doesn't pass one of the baseline tests that experience has taught me to employ whenever evaluating a so-called path to success. I have found that every reliable path to success that I have encountered in any area of one's life, involves the disciplined, persistent execution of relatively simple behaviors. I believe most people fail, not because they're not smart enough or talented enough to succeed, because I don't think you really have to be that smart or talented, but because they lack discipline and persistence.

We're all tempted by the magic pill that will cure all of our problems or the complex system that someone will sell to us in 5 low payments that will make us rich overnight. I don't believe there are any magic pills or complex systems that yield the proclaimed results with anything nearing consistency. Thus, when evaluating an offer such as the one presented here, I apply my test. It is simple in this case, as someone is just going to hand me some money in exchange for me giving up an activity. However, it lacks any notions of discipline or persistence to achieve the reward; the reward is simply handed over. On that basis, I become extremely wary that such a course would yield the positive benefits I am seeking. It's kind of like winning the lottery in this regard, and despite what we all would like to imagine, people are often worse off after winning the lottery than before.

No, Thank You

No, I would not accept $10,000,000 in exchange for giving up programming. I've learned to be cautious about what I give up to gain what I'm reaching for and to be wary of the easy or fast paths to my objectives. Although we often scoff at them, the tortoises keep on plodding along after the hares crash and burn.

Comments

Popular posts from this blog

Don't Build it Yourself

This post discusses the whether to buy or build software components needed for your application. The title should give you a clue as to which side of the discussion I land on. Someone Else's Code One of the behaviors that I've noticed is significantly more often exhibited by junior developers versus more experienced ones is the tendency to build everything from scratch. While I can appreciate the enthusiasm for wanting to create something better than has been done before, this is often simply a waste of time. For many of the software tasks you will want to accomplish, someone will have made a library of framework that does 95% of what you want out of the box, lets you configure or extend it to do another 4.9%, and you come to realize that 0.1% remaining wasn't all that important anyway. In fact, with the proliferation of open source software, many of these software packages are 100% customizable because you have access to all of the source code and can change it at will...

Some Thoughts on Software Estimation

"All programmers are optimists." Fred Brooks's adage is as true today as it was when he first penned the words. The truth is that people are naturally very poor estimators. We all have a tendency to believe everything will go more smoothly than it probably will. Things will work out just as we planned, assuming we bothered to plan at all. I encounter the reality of this often in my work. The first deadline passes, and we assure ourselves that we can catch up to meet the next one. The next deadline passes, and we finally come to terms with the reality that we're not going to make it. Then, we push the schedule back a week, when if we really reflected on the situation, we would realize we were probably a couple of months out from actually completing the project. The product gets later and later one day at a time. Lots of yelling and finger-pointing ensues. Management demands better estimates, but rejects any that don't fit with their view of when we "sh...

Notions of Debugging

Bugs can be really evasive and produce some surprising, even "impossible" behaviors. Part of a software developer's job is to relentlessly hunt them down and destroy them. However, often at least half the battle is finding them to begin with. The best debuggers I have seen rely a lot on experience, both experience with the application and experience with debugging in general. The former is situation-specific, and there many not be any good ways to advance in that regard other than practice. However, we can extract some information pertaining to good debugging practices in general. Dig for Clues Using All Available Resources The first step in debugging an issue is ideally to reproduce the problem. This isn't always possible, but if you want any significant level of confidence that you have fixed a bug, you need to observe the broken behavior and understand how to trigger it from a user's perspective. Sometimes we're lucky, and a tester has taken the time to...