Friday, September 7, 2007

Its Not Easy

As a followup to my last post here (but subtly related to the last two over I did over at TalkBMC ) I wanted to mention something that has been bothering me for a while. There is an attitude, quite prevalent in some quarters, that everything should just be easy. Uncomplicated. That if thought is required, then it is not worth the time. I don't want to know anything new, or learn anything new, I just want the right thing to happen. It is everywhere, and the funny thing is, like so many other things, that attitude is both good and bad. When it is bad, it is incredibly destructive though.

Whats Good About It?

I am a computer generalist, and a geek. I love learning new things, and I love to learn across a broad swath of topics. History, science, technology, travel... I'm your guy. My wife starts to tell me about some kind of costume jewelry made back in the 1950's and I start asking how they made it. I don't care that it is "pretty" (but it is handy to know that she thinks it is), but I am curious how they did vapor deposition of rare minerals on various surfaces 6 decades ago. I am hardly alone in being this kind of person, and everyone I know who is like me gets pretty frustrated when someone raises their hands to interrupt a loving soliloquy on some topic we are interesting in and says "I don't care: just tell me if it works or not."

It is a classic communication gap, and it works in every direction. Start telling me about the win-loss record of some sports team I have never heard of and watch my eyes glaze over. Now the sports person I am talking to thinks I am an idiot for not caring about what they care about.

Here is at least one way I think simplification is good: take OS.X for example. Under the covers is a sophisticated, secure, UNIX-like OS and Apple has hidden all the geek stuff under the covers and away such that utterly non-technical people can use the computer to do productive things. At the same time, I can still pop open the terminal or X11 window and do the same things I can on any other UNIX.

Saying something can not be made simpler is just a challenge for someone someplace to prove them wrong. Even if it took a billion dollars and a zillion person-hours to create the simple face over the complexity, it can almost always be done.

There is a reason there are specialists. And the best ones are those that can not only deal with the complexity of the task at hand but explain it to ways the uninitiated can comprehend. I am thinking of things like Brian Greene's books like "The Fabric Of the Cosmos" or Kip Thorn's "Black Holes and Timewarps" here. Moderately easy to read and comprehend, well presented books about some of the deepest and most esoteric stuff going in the human "space".

What is bad about it

It isn't easy.

An expert may make something look easy: Bonnie Raitt may make playing steel guitar look like it takes no effort at all, but only because she has been living with the music since she was a tadpole.

Raise your hands, scream, and run all you like from the geeks, but at the end of the day nothing gets created without them. Without someone writing code someplace, a software company has nothing to sell. If you want your software to be the best there is, you can't have someone who writes bad code run it through a magic box and have it spit out great code. All the high level languages and Nth-generation coding toolsets may make people more productive, but at the end of the day, that good creative knowledgeable person still had to write it. Forget this at your peril.

That new gadget like your tiny cell phone? That thing has been under continuous development since Hedy Lamar invented the principal behind them. Literally billions of dollars, but more importantly millions upon millions or person hours went into making that tiny little thing. You can have all the money you like but till it hires a talent to do the creation... well. Say you went back in time, and had a billion dollars with you. You could hand it to all the cave people you like: you still won't get a Web 2.0 application. More likely a bunch of campfires.

It is not easy. Nothing worth doing is.

So What?

  • "Bottom line that for me."
  • "Just tell me how to make it cheaper."
  • "Can I have that in a spreadsheet?"
  • "In Color please."
  • "No new formats or paradigms please. I only understand stuff I learned when I was a kid."
  • "I do not care how you make it happen, just make it happen."
  • "I don't want to know"

Ever feel like the Black Knight in the "Monty Python and the Holy Grail"? You keep succeeding, so they keep lopping off more body parts? Which part of the "this isn't as easy as I'm making this look" principal is not being grasped here?

Grasp. Concepts. NEW concepts! Run away!

Social Media is one place I see this new knowledge / new concept thing. Something as simple as a Wiki. Here is this nifty tool, easy to load content onto, easy to enable group editing and enabling sharing "tribal knowledge" or "groupthink". Content generation is one of the *hardest* things for anyone to do, and here is this tool that allows that pain to be shared, and knowledge grown and expended on by everyone that has a piece of that knowledge. Under the covers is webtech (actually based on some pretty old principals: Hyperlinks have been around for decades) so it can hot-link to other things, like explanations of terms and background information and all sorts of other things.

It was not easy. It took a bunch of incredibly creative people person-years to make the Wiki tools simple and easy to use. In fact, multiply *that* by all the Wiki toolsets out there, since there are many Wikis. Add in the other tools that were something else that *added* Wiki features. Millions of person-hours, and most all of them from subject matter experts with *years* of experience. But there it is: this new concept. This new invention. This new way of thinking about how people can work together on content. It isn't a glorified file server. It is based on layers and layers of other inventions, but it is this new thing.

There is this group of people. This huge group. They don't want to know the new thing, or adapt. They view documents as having "owners" and should only be edited sequentially.

"Here: I copied that web page on the Wiki into this document and emailed it to you so you can update it."

If you read that last sentence and went "Well, yeah. Of course..." please slap your forehead.

Naw... This is a blog. No one who reads a blog about Linux and Open Source would think like that. Right? :)

The Recent Posts

Here is how this all relates back to the recent posts I mentioned. Over at TalkBMC I am doing a new thing where I am talking about an in-flight project. As things progress problems are found, traced, solved, and corrected. Progress is made, but only as fast as it can be made. Remember that for humans the principal encapsulated in the phrase "Having a baby takes nine months, no matter how many woman are assigned" is true in all sorts of other endeavours. Progress is gated on expertise and the time and focus allowed TO the expert.

OK. Sure. No one not interested in that project will even read the post. But that is OK, because it is a blog. Whenever anyone needs the information it contains, they will find it with Google, Yahoo, etc. The power of social media in action. Google up 'tru64 nfs v2 linux problem' or similar search terms, and you'll find out what we know, and in the process see when we knew it, and how we learned it. At the end, you'll see that building a NAS cluster file server doesn't just happen.

Related to the last post here, one of the disconnects out there is around the way we use words, and what extra meaning is loaded into them based upon our experience. "Open" has connotations, and the initiated in "Open Source" bring to the party a meaning every time they read it in popular written media, even if it has no relation at all to what it really is. But for those that know a little more. Lets say they know about Linux, and that it is free, and even that Dell now supports it, and maybe it is even on the PC they are sitting in front of, and it is easy to use, lets them surf the Internet, read and write email, create documents, balance their checkbooks... whatever.

What are the chances they know how many people have worked how many untold hours creating this nifty computer, wrapped in the intricacies of things like device drivers, system schedulers, running the application space in the right key so it doesn't have root level access... on and on. And on. And on. Experts created it. It was not easy. Not everyone can do it. And not everything can be made simple. It can be made simple to USE. But if you want to do something: add a feature, fix a bug, whatever then you now have to learn.

Here is the destructive bit I talked about. If one does not know how hard something is, and they are the ones deciding how resources will be allocated to various things, what are the chances they are going to get it right? What if political realities are well known but technical ones are just too hard to figure out? See the Challenger Space Shuttle disaster for details: The politics of having to have a successful space program was defined as launching on time rather than with a safe bird. An uninformed point of view. To be clear, I am not saying that we should not launch Space Shuttles because they are dangerous. Exploration is dangerous. We know that. The tragedy of Challenger was that the "O" rings was a known problem. If we are going to die exploring (and we will), lets do it finding out the things we didn't already know. See last section.

The lesson of Challenger: Learn how to listen and learn from your experts.

Learning is Not Just Technical

it is not just about technical things that you have to learn. There are social things too. Example: Once you are good at C (the technical thing, and no small feat), and have read the code, made the change, tested it, verified it works, and all sorts of things, you still have to deal with things like:

  • How does any given project like to receive code updates or suggestions?
  • Just because it worked, is it coded according to the standards of the project?
  • Is the feature useful to enough people to make inserting it into the code base worth all the effort over the upcoming years of maintaining it?
  • Did anyone get talked to? Consulted? Will it hurt anyones feelings that the change was made?

It isn't simple. It isn't easy. Not everyone can do it. But that does not mean that there is not benefit in learning something more about about it, no matter what "it" is. Next time someone is telling you something about a subject that you think you have no interest in, take a second and learn a little more. You never know where it might take you.

All Knowledge is Good

The biggest detour of my life was when I spent about two years working in an alcohol and drub rehab center. Nothing I learned there has direct bearing on being a computer person? Wrong. I use the stuff I learned from all these people who were trying to turn their lives around every single day of my life, and in every aspect of it. I would not trade that time for anything. It was hard work (16 hours days sometimes, Rotating shifts, minimum wage pay, Constant emotional stress...) and it was especially hard for a geek just trying to understand. Long story why.... Doesn't matter. As they say in the commercial here in the US, it is "priceless"


Akshun J said...

You had me at hello, and then you had to mention the Operating System That Shall Not Be Named. Lord Jobs needs no further kudos. But aside from that....

AMEN!!! This needed to be said. The "how" and the "why" are at least as important as the "what" or the bottom line. History is replete with examples...

Steve Carl said...

Lest you think I'm totally darkside about the empire of Jobs, I am not thrilled about the new tv-out security chip in the new gear. I won't be getting one of those for sure!