|
|
Thinking Like a Programmer
by Marc Schriftman on Apr 03, 2008 - 10:54 AM read 668 times |
When someone says "programmer" there are plenty of pictures that might go through your head. Some think of the typical asocial geek type while other folks might imagine a big beard and laptop strapped to his chest doing the "soulja boy" dance. No matter what you associate with the word "programmer", there is an undeniable fact that understanding how programmers think of things can help us use software. Just as you might examine a book by making an effort to link characters to people in the author's life, when you use software, it can be helpful to consider the software author's intent.
Thinking like a programmer could have a wealth of meanings. Attention to detail, math and abstract thinking all come to mind as potential programmer qualities. But, as a programmer, the part that defines what I do is learning. Programmers are forced to learn new languages, systems and software all the time. The majority of a programmer's day is spent reading and understanding documentation. Bugs are often fixed with a few lines that take a few hours of reading to find. The reality is programmers must be good at learning more than anything else.
If you ever want to see this requirement, just take a look at open source project mailing lists. Of course, I don't really expect you to do this. If you did poke around on mailing lists for a while, you would see a consistent pattern. The folks in the know are asked questions by folks just getting started. The answers come as links to documentation and code. A new user is forced to go find their own answer in the resources given. In a way this is very frustrating, but once you become the person in the know and you've dedicated your time to learning something, it feels unfair that you are seen not as expert, but a simple dictionary.
I mention all this because as we consider how to help companies move towards being NGE, we need to consider the authors of the software. If you can imagine then how programmers are forced to spend hours figuring out the two lines to make some new whiz bang feature, you can also imagine that they expect effort from their users. In one sense programmers are very detailed oriented, so there is an excellent chance there are clues to how to do things in a piece of software. While at the same time, programmers have had to do quite a bit of work, so exposing the easiest way to do things for every user may not be at the top of his/her list of things to do. As a user then, if you want to get the most out of software, the best course of action is to take some time to go through things in detail. Make some notes and when confronted with a problem, try to find the answer yourself. The result is you will learn the software and you will become a better learner in the process. It may seem like you wasting your time and it will be frustrating, but being NGE relies on your ability to learn and understand new things quickly. Programmers excel at this and so should you. Learning new software is a great way to practice this and potentially find a great new tool in the process.
-
re: Thinking Like a Programmer
a reply to Thinking Like a Programmer
by Espen on Apr 07, 2008 - 03:55 AM read 68 timesIn other words, to get NGE underway, users need to stop thinking "know-how" (which button do I press?) to "know-why" (what is the underlying information architecture and process design this piece of software is trying to support, and what consequences does this have for my behavior and productivity?)
While I do not disagree with you that that would be nice, the world wants it otherwise. Most people (the least interesting portion of humanity, but nevertheless) is not interested in how things work, or why they work. Even the net generation which is now entering the workforce is not interested in how things work or how they can change them to any higher or lower degree than the generations that came before them. They have access to better tools (Facebook, for instance) and therefore can easily do what it would take a programmer to do only a few years ago, but ability to Tivo, Google, text, Twitter and Facebook does not a reflective and analytic mind make.
Programmers actually hang back a bit on the new tools - they prefer their computing more barebones, but also more flexible. In his brilliant essay "In the beginning was the command line", Neal Stephenson distinguishes between the Eloi (happy to deal with technology at a metaphor level) and Morloks (want to dig down, preferably using EMACS). He makes no judgement as to what group has the more satisfying or productive life (in fact, he cannot see any difference) but concludes that the difference in outlook is immense - and that things that work for the Eloi would not work for the Morloks and vice versa.
Consequently, if we are going to get companies into an NGE state, Enterprise 2-0 and so on, I think we will need to recognize that the vast majority of employees are lurkers in the knowledge and information creation game, happy to listen, use what is useful, push the buttons that get things done, and go on with their lives. The key difference the software makes is that creativity and productivity in a digital domain is more visible across geographical and organizatorial fiefdoms. This will increase the career prospects and influece of Morloks until the tools are simple enough that the Eloi will usurp them. Which they will do, being the majority.
As I have written myself, not knowing technology is dangerous, because if you do not know how things work, you can make bad decisions. But in the long run, technology fades into the background and the technology providers fade into support roles. In the short run, there is money and influence to be had, but that has to be managed as a temporary competitive advantage - get the most out of it while you can, then commoditize it and move on to the next new thing.
-
re: re: Thinking Like a Programmer
a reply to re: Thinking Like a Programmer
in a conversation thread started here
by Marc Schriftman on Apr 07, 2008 - 09:59 AM read 73 timesYou are very right in saying people do not have to understand how technology works. I think my point was that users should make an effort to be systematic and thorough in how they analyze a tool, moreso than understand how it works. That is probably a subtle difference, but hopefully clarifies what I meant.
This is also probably obvious to many people. A thorough examination of anything is probably beneficial, but just as many companies fail to do due dilligence in terms of research, it is helpful to consider a full review of a tool before using it or dropping it.
I've always thought the reason that Web 2.0 has caught on has been more about users being open to invest more time in the tools. Social software has caught one because at some point users actually used the software without the benefit of a huge community. This suggests that users took the time to get past the initial learning hump in order to see the value in the tool. It is this kind of methodology that will help companies move towards being NGE.
Thanks for the reply!
-


