If you've read my blog for a while, you have hopefully noticed that I keep a very open mind when it comes to self-improvement. I have some strong beliefs in the way that I do things, but I often enjoy questioning these beliefs and having rich conversations about the founding of my beliefs as well as the beliefs of those around me. While some people agree with what I think and others do not, invariably, someone asks me, "What's the point?"
When I talk about single quotes vs. double quotes, please ask me Why? When I question my naming conventions, people ask me Why? When I completely re-evaluate my coding consistency, people ask me Why - what value does it add?
In a client-centric world, it is very hard to answer these questions. When the changes that I am making don't make a difference to the experiential outcome for the client, it's hard to say what value these changes actually contribute. The best I can offer as far as "Why" is to relay a quote from the Peaceful Warrior. When Dan and Socrates get into a discussion about eating styles, Socrates brings the conversation to a head, asking:
Do you know what's the difference between me and you? You practice gymnastics, I practice everything.
Sometimes the value of a decision is not always outwardly experienced; sometimes, the value of a question and its subsequent answer is in the fact that is done in practice. I am a strong believer that I don't know everything; and, I believe that it is only through a periodic re-evaluation of my beliefs that I can make any progress in my quest for self-improvement.
So, if you want to know what "Value" my changes add, the value is, at its core, about personal integrity. And if you want to know "Why", it is because I seek to practice everything.
What do you practice?
THAT'S IT. SOMEONE FINALLY SAID IT.
For god's sake, it's finally okay to think about these things. Does it take time away from other tasks sometimes? Yes. Does it lead to a dead end sometimes? Yes.
Does it nearly always lead to a certain level of elegance -- whether you're an architect of buildings or software? ABSOLUTELY. For a long time, I laughed that those that laughed at me, when I did/requested/insisted that certain convention be followed or practiced. As I grew older, I started to question myself... perhaps "they" are right... perhaps I "worry" to much about minutiae. Perhaps I create or solve problems that do not/will not ever exist.
I now stride forward with that confidence again, knowing that I can continue to question my approaches, reach a decision on how I want to do "things" - both "big things" and "little things" - and not worry so much that others may not "get the point". I can practice everything, while striving to be a master at something.
"Sometimes the value of a decision is not always outwardly experienced; sometimes, the value of a question and its subsequent answer is in the fact that is done in practice."
Thank you... this made my day, and I'm printing it out, framing it, and putting it on my desk.
Ha ha, well I am glad that someone likes it :) Thanks for the kind words and the agreement of practice as an end in itself.
I practice making interesting things easy. I attempt to understand subjects until they become both easy to do and easy to explain to others.
My definition of easy changes often. I like to think there is always a better way of explaining or doing something, so I continuously question my coding habits.
I originally thought your post was going to be about another subject.
I realized during college that I get to learn about everything by programming, which makes me happy. Some people learn specific skill sets such as accounting, electrical engineering, blacksmithing, etc. Writing software for these people means that I get to learn all about their subject as well.
( also amused at asp.net ads on your site )
Sorry the title was a bit misleading. I wasn't sure what else to say so I just went with part of the quote that inspired me. I like the idea of learning something till you can both do and explain it easily; I definitely know the pain of having a hard time explaining something (or having something explained to me).
Oh no - these are my fault, aren't they? I'm sorry, that was not my intention, but you speak well so I guess some good came of it.
I really do enjoy reading your perspective on things - it helps open my mind to new things and it is refreshing to have logic behind the words.
Thanks, Ben. I'm sure you have a ton of work piled up from being away. Hope you settle back in quickly and have a few moments enjoy the (hopefully) last snow of the season today.
I am not sure what you mean by your fault? I think maybe you are referring to comments made on another post? If so, please do not think of it as a fault at all. All comments made for or against an idea provide me/us with another change to think more fully on the topic. If anything, you inspired me to write - not to a fault, but to a benefit.
Yeah, enjoying the snow out my window... dreading the idea of going out to get lunch :)
Very good attitude! There arent so many people out there with a similiar state of mind.
Lots of people ignore and block the fact that they dont know much about the world around them. You can see that especially in interactions between parents and kids. Mummy/Daddy favor a "half-knowledge" answer to not giving an answer at all or admitting: "I dont know." when they need to handle the kid's questions.
Kids learn that and later - in professional environments - often tend to also give any answer, even with the risk that its not true or completely wrong. Just to pretend that they also have "something to say".
A quite complex phenomenon and hopefully my lines werent too off-topic!
All I wanted to say is: move on the way you do. Its the right one! :)
Ben, are you acquainted with the Book of 5 Rings? The scrolls of the book specifically refer to the details of swordfighting, but its modern relevence is still in its the basic structure, and its notions refer to a lot of the "taking a step back" observations you like to make.
When I hear writers talk about writing, they mostly say something like Vonnegut's analogy for it, which was that it was like holding a conversation in a restaurant: you speak to hold the appeal of whoever's sitting at your table, but clear enough for anyone listening-in to understand why anyone else gives a damn. If we take a step back, we may see that the diffusion of anything presented to the public typically hinges on how it balances its intimate and elements.
The structure of the Book of 5 Rings is to attribute 4 scrolls to the alchemical elements, earth, water, fire, and air, and attributing the fifth scroll to emptiness.
The Art of War is actually a thematically more detailed example of the earth scroll, emphasizing knowledge of terrain; intimacy.
The Art of War is also a thematically more detailed example of the air scroll, emphasizing command through the general's ability to make things modular; you epic agendas. All the colors of the artist's palette is rooted in his mastery of the 3 primary colors and b&w. In the same way, armies are commanded by drums and flags.
The Tao te Ching is also actually a thematically more detailed example of the water scroll, emphasizing the adaptability of the mind. When the mind is like water, it sinks to the lowest level, and nothing surrounds it; that is how the mind achieves its most comprehensive field of view.
The duad of the water scroll is of course the fire scroll, which embodies decisiveness. The implication of the 80/20% rule is that of a suite of options, 1 option is 4 or 5 times better than the next best option. But we can't think through which option was best, otherwise we would be able to teach genius in our schools.
And the emptiness scroll is only a couple of paragraphs referring to the need to suppress our thinking, the means by which we allow practice to root out that option that's 4 or 5 times better than the next best option, and make that wisdom part of our common sense. This is in contrast to the convention you touched upon in your previous virtue-of-ignorance post of devoting our thinking the same 10 seconds of thought over-and-over, which shelters our mediocrity. Thinking is all about "keeping score," and can act as a barrier to our authentic experiences.
While the Tao tells us a finger pointing at the moon is not the moon, to highlight that words are not the things they represent, 40% of Americans are saying they don't believe in evolution because it's incompatible with their pretense of themselves. The 20th C.'s basic theme itself seems to have been that you can't have your cake and eat it too. This theme is ubiquitous from Jung noodling about the demarcation between reason and experience to the liquid role of representation in modern art.
The Book of 5 Rings looks very interesting. I just looked it up on Google and it looks like the text for it is available online. It sounds fascinating - I shall certainly give it a read.
I don't know, to me it's pretty obvious.
The reason I personally do any of those things (and I do them incessantly) is in attempt to form and reform myself into an automatic-best-decision-making machine so that when I have to perform ANY task, whether it's concepting a new product, performing some maintenance on an old project, or developing scratch software, it takes the minimal amount of time and action and then requires the minimal amount of revisiting (bugs, code-level changes, etc.)
That ability isn't free or purchase-able. It requires consistent, constant conditioning and practice. It is bought, but only with the currency of time, attention, and conscious effort.
The underlying gasoline and roadmap of any worthwhile analysis is increased efficiency.
Behind-the-scenes analysis and experimentation are probably the two most directly influential forces on the results of any gauge or metric of quality and success.
An athlete with the natural capacity to dunk a basketball cannot transcend that initial execution potential in a competitive environment without asking the questions that his fans won't benefit from seeing him ask.
When he looks at video footage of himself, GRANULARLY examines past scenarios, things he's done, better and less efficient outcomes...
Though his fans/clients are none the wiser, they do eventually reap and participate in the benefits. They get to see things like a 6'3" point guard ( Baron Davis ) completely dismantle the face and pride of a 6'9" forward ( Andre Kirilenko ) at the exact right moment to create an experience and momentum for the fans that is hard to come by.
They get to request a surfacely-complex and difficult modification to a web application interface and get a phone call back within 15 minutes informing that the alteration has been developed, tested, and deployed.
Granted, the athlete or developer can't do that on-demand and with 100% success ratios. There are variables. Human performance is volatile and wavering. But through the kinds of questions you ask yourself he is able to continually improve that percentage. Some people get pretty close. Michael Jordan at one point was able to all but guarantee certain outcomes, and execute them seemingly automatically.
Though my clients don't know which functionality I was able to streamline by reusing abstracted and polished code techniques I'd refined previously, they do benefit with a statistically sounder product and less development time.
@Ben - As soon as I saw the title I immediately understood the meaning and intent of the article.
Your approach mirrors my own which is what makes your articles all the more relevant in practical application.
Kudos and keep the hits rolling!
There was something very beautiful about that. Thank you.
I am glad that we are in alignment.
I think this gets more complicated when more people get involved. For example, Ben, I think your coding style looks great and works well for you. But if I were working on a team with you and you expected me to adopt your specific coding style? I think that request would bother me.
The first anonymous commenter is talking like someone who has attempted to impose conventions on a team of developers and gotten pushback. Asking people to change their own habits is difficult. I think that one needs to be clear which practices are essential and provide tangible benefits to the whole team-- and which practices are simply about elegance and style in your own work. Imposing your own style on a team member almost never works.
I agree with what you are saying. I think it is important (though hard to enforce) that a team meet and agree upon a coding style guide. I don't think that that style guide should be any one person's ideals; but, rather, it should be discussed and debated in such a way that all parties meet an agreement.
Once this style guide is agreed to, it is up to all developers to meet it.
And let's face it, if any given employee doesn't want to adhere to a company style guide... is that someone you really want to work with?
I don't think this is outside the realm of possibility; I know that large coproprations have extremely strict style guides about everything visual (font size, margins, line heights, colors, indents, logos, alignment, etc.). Do you think they let some random designer say, To hell with your design standards, I am gonna do it my way?
No, that designer gets disciplined. Possibly fired? Why? Because they are misrepresenting the company's ideals.
Now, you may say, but yeah, that's visual stuff - things the public sees. But, I ask, why is that held to a different standard? Should a company be emphatic about one aspect of representation and heavily compromised about another? Shouldn't all representations of a company align directly with its core values and standards?
Of course, I am talking in the ideal world. I have not actually enforced such a thing in reality. BUT, that is not to say that I for one moment don't believe it to be a worthwhile goal.