I hope you are ready to see the word assumption appear a billion times because this post relies on a lot of assumptions about humans.
Why "Do and Why"
I recently had a brief philosphical discussion with a co worker about the value of being "productive" at work versus the time "wasted" developing a deeper knowledge of the topic involved with the work. We respectfully agreed that we have different perspectives, but it left me curious about the state of my field
and the world I live in.
At this point, a bit of context is due. I am a full stack software engineer at a startup in Cambridge, MA.
This post is my analysis of the demand for productivity and the pursuit of "doing things right the first time (read doing things to the best of your current capacities)".
Assumptions About You
I am going to take a gamble and assume that you are a human and that you have emotions. You want to feel happy. You are proactive. Furthermore, I am going to assume that you seek some form of fulfillment in your life. Since you are practical, you work in a specific field and behave in a specific way that helps
you feel fulfilled.
For the sake of this post and to avoid the overly meta discussion of what fulfillment is. Instead, I am going to just define fulfillment as "the feeling of acceptance from the society that one belongs to and the feeling that one's labors have value." I am also going to tack on the condition that fulfillment
is a fleeting feeling. It comes and goes. It's not something that you can keep when you get it. I think the tacked on condition covers the cases of people who from the outside appear successfull and should be fulfilled with thier lives, but are in reality an emotional mess. If you don't agree with my assertions, this post may be useless for you.
I think this is a fair definition since it considers two things that directly affect our emotions. The first is that you don't like being bullied. In fact you like it when people like you or at least accept you, which is a watered down version of liking you anyways. You get sad, angry, or frustrated when this doesn't happen. Second, you like feeling that your day to day activities have value. You hate feeling like you accomplished nothing at the end of the day. When you don't accomplish anything you start to doubt your career path and the life decisions to make. For example, that beer you had last night totally ruined your life because it prevented you from totally solving that critical work
When you feel accepted and accomplished, you feel good about your day. When you feel good about your day, your chances of feeling fulfilled goes up.
Assumptions About Society
I am going to assume Society values busyness and productivity. This can be observed by the amount of people who brag about their "all nighters banging out code" and "weekend work". Confession, I am one of those people. Since society values productivity, if you are productive, the likelihood that you are accepted increases. Furthermore, when society marks you as productive for the day, you also feel like you accomplished something of value during your day.
Its a double whammy!
If you are productive you have both conditions necessary for the feeling of life fulfillment to occur.
Do! Productivity! Always!
What I am trying to hilight above is that the world we live in, in particular the startup culture I work in, puts a heavily encourages people to be "busy" and "productive". Furthermore, because most of us are normal humans, we are inclined
to buy into that culture of "productivity" since we believe that it is the most efficient way at facilitating fulfillment (refer to my assumptions above).
I like being productive as much as the next human; however, I am constantly tempering that with my desire to fully understand the scope of my problem. I can't make a pull request with code changes that resolved the symptom without understanding the parts that are directly related to the problem. You could argue that with a large enough scope for "problem", someone like me would get caught spinning my wheels trying to understand too many things.
You are right. I have been screwed over many times spinnings my wheels, trying to learn as much about the scope of my problem/project as possible, when I could have just solved/built what I needed. In that light, it would appear that the
world has got it right. Go off and do things quickly. The more you get done the more productive you are.
But doesn't it make sense to know what you are doing before you go on and do it? It's like trying to weld a boat without knowing what a boat is. You can do the physical act if welding but if anything horrendous happens you wouldn't be able to fix the boat because you don't know what a boat is supposed to do when it is
So now who is right? I sit on one end of the learning vs productivity seesaw while society and many others sit on the other.
After reading The Lean Startup by Eric Ries, I have come to the realization that balance is needed. If you haven't read the book, I highly recommend it. The book hilights an approach to developing a business based on Lean Manufacturing philosophies. My intepretation of it is that it is essentially the
scientific method applied to creating a business. Develop a testable hypothesis, learn and do only what is necessary to get the business into a testable state, evaluate results and repeat with various aspects of the business tweaked until
desired results are achieved. There is a whole lot more to it than that but I am paraphrasing. Again I suggest you read the full book.
Let us map that to our daily productivity struggle. By going out and doing, we are shortening our feedback loop. We quickly learn whatever we are doing to be productive is working or not. In other words we quickly figure out if we solved that critical bug at work or if our marketing strategy is worth pursuing. If we don't solve the bug, we can tweak the solution until we get what we want. The
problems arise when we tweak and fiddle the variable knobs without knowing what the knobs do. It'll just be a blind, drawn out process of fiddling until we serendipitously get the desired solution. If we get a similar but different problem in the future, we have to repeat the whole process again. This is where I introduce another facet of the Lean Startup philosphy, validated learning. Validated learning is the knowledge we get from running our small iterations of hypothesis and tests. It is the information we gathered through the tests that let us know what works and what doesn't in the busness. You can interpret it as
the knowledge of the code base you develop as you solve a bug in a particular part of the program. If we go back to my productivity seesaw, validated learning is the balance of both extremes.
Back to Reality
We all have bills to pay and a job that pays the bills. The job requires us to be productive and that productivity helps us feel good about our days. I agree that productivity is good for us and our employers, I also believe that expanded knowledge in our profession/business will help us out in the long run. Being
hyper 'productive' versus spending too much time learning all the related components is essentially a depth versus breadth problem.
End of the day, I have come the conclusion that balance is key. You need to learn the bare minimum to complete the task at hand. What categorizes the bare minimum? The information necessary to resolve the current problem and enough related information to solve a similar problem in the future, quickly. We shouldn't have to fiddle with the variables and knobs a second time once we have
discovered the formula the first time. That is the minimum knowledge. In the end it will help us in the long run since we know more about our domain and won't trip over the same problems again. This is my way towards productivity. This is what I believe will help all of us feel fulfilled with life.