Hi all
Been a while since I posted anything here, and for a reason: Been working on, among other things, getting a new tool called VMLMAT out the door.
VMLMAT is Open Source (BSD Licence), and available at sourceforge:
http://vmlmat.wiki.sourceforge.net/
I just posted about it over at TalkBMC here:
http://talk.bmc.com/blogs/blog-carl/steve-carl/VMLMAT-BMC-Open-Source-tool
VMLMAT is a pretty specific managment tool: It is about managing and archiving Linux images on the mainframe. it is implemented in Open Sourcetechnologies like PHP, Apachie, Samba, and the like.
Full disclosure: I did not write this tool: I was the manager of R&D support at the time and I commisioned someone on my team named Ron Michael to write it. When Whurley came a calling looking for technology inside BMC that could be Open Sourced, this tool was a natural. Ron agreed, and the rest is history... more or less.
Had to tell someone who would understand....
Originally published December 31st:
http://on-being-open.blogspot.com/2007/12/apps-and-platforms.html
"Anonymous" pointed out on my post called "Repairo" that one reason people still use MSWin is that running things like AutoCAD under WINE under Linux are fraught with problems. At best, it requires work and experience at this point in time.
As much as I am a fan of Linux and OS.X these days, I want to state that there is nothing magical about either platform. All computer operating systems are amazingly complex bits of code written by human beings, and at any point in time it is possible that one platform is better than another, and even the term "Better" would require one to state what they mean by "Better". Better at memory utilization? Easier to cluster? Less prone to crashes? More virus proof? Sells more hardware?
That there are currently more MSWin applications is also not magical. To repeat what I said in the comment to the "Repairo" post: AutoCAD started as a Mac app, and when Autodesk saw people were willing to pay for copies of it on MSWin they ported it. If Autodesk thought enough people wanted it on BSD or Linux or the iPhone they would make a version that worked there as fast as their fingers could code.
Phrased that way, the question would seem to be, do enough people want any given app on Linux to bring it there. But that is not the way Linux works either. Here is where companies get into trouble not just with Linux but with all Open Source.
The real question about any Open Source platform always is: Are there enough people that want any given type of application that they are willing to take the time and effort to create it. In the example of AutoCAD: Are there any technical people out there that want a CAD package on Linux bad enough that they will write it themselves?
To look very quickly into that, I googled up two search terms: CAD + Linux
http://www.tech-edv.co.at/lunix/CADlinks.html
Over 50 CAD packages for Linux, some commercial, many Open Source. And that was just one of many hits.
The problem for a commercial company like Autodesk is knowing when the market has moved enough to a new platform to make it worth their while to port to a new OS platform. That costs a fair amount of money, and if the product is not written in a portable fashion, then it costs even more money to either port it or better, redesign it to be portable.
The problem is worse than it seems though, because in this case the Open Source world will look, maybe ask once, get a response like " We are waiting to see which way the market goes before we decide if we are going to move to the new platform", and then the Open Source folks just move on without them. By the time they decide to enter the market, the field is crowded and they are no longer the number one choice. In fact, there is now probably a free, Open Source solution sitting there and now they have to convince people that it is worth money to pay for their newly ported version.
I pay for the best. I think most people are willing to. Since I don't use CAD, I'll switch to Office packages for a second: Even though I do not have to, I send money to OpenOffice because I use their product and I like it. I like it better than MS Office because it uses Open Standard file formats, and runs on whatever platform I happen to be on.
Another example: I just paid for a copy of Scrivener recently. I am working on writing a few books, and found OpenOffice to be unable to do some things that I wanted it to do (Chapterization and organization). Some research found Scrivener, and I am extremely happy with it... other than I wish there was a Linux version. It's OS.X only. Guess what happens next? If someone comes up with a decent manuscripting program that is Open Source and cross platform, then I'll be retiring Scrivener...
All software applications are like that. Companies need to know and understand this new Open Source dynamic of platform, or find themselves playing catch-up.
This one comes from my personal blog, and was published August 28th, 2007:
http://on-being-open.blogspot.com/2007/08/on-being-open-in-my-most-recent-post.h tml
In my most recent post over at TalkBMC, "The Secret Linux Agenda", I spent a fair amount of time trying to think out loud about some of the disconnects in the world of Open Source. I am given a pretty hard time at BMC about the fact that I write long posts, so I worked hard to keep the "Agenda" post as short as I could, but still touch on at least a few examples of some of the disconnects people have when they talk about being open. Or Open. Or open source. or Open Source. I also mentioned the negative image some of this "open" stuff has because of the behaviors of some people in the various communities.
I wrote that post before I went to my first ever Austin Social Media Club meeting. Whurley was the speaker at the event, and he made a metric ton of terrific points about this during his talk.
Open Confusion
There was one particularly ticklish question from the room at the Austin Social Media Club meeting (Anne Gentle and I there) that I think really boiled all of this down. That comment / question was:
If people are doing "Open Source", why aren't they more Open?
It was a great question and really underlined the confusion about what the term "Open" means. Given the amount of audible agreement in the room with that question, for many in a social media club, "Open" in "Open Source" had connotations of "Accessible", "Easy to get along with", and "Willing to have civil conversations".
The Rainbow of Open Source
Spend any time in an Open Source product forum, and you can easily see what the folks in the social media club were talking about. Someone asks a question. Usually it is an innocent question being made by someone that does not know anything about the product. They, for their part, feel that they are doing the right thing. They are showing interest, and willingness to learn. They are being "open".
You know what happens next: In an un-moderated forum, some will actually try to help, and answer the question. At the very least, they will tell them where the first-timer documents are located, and some might even point out how to use the search facility to find every other time that question was asked, and the answers that they got then. All of those things are classifies as what we call "signal". Useful information.
The middle ground response happens when a response is given, but the person who asked the question has no way to parse the answer. That breaks down further as:
The answer was given in a way that assumed the person to have knowledge they did not.
The answer was given in such a way as to question whether the person is actually responding in the same language as the questioner.
Either of these examples are about communications styles, and whether or not the person who is doing the technical work can enter the requisite frame of mind (empathy, if you will) to have conversations with those less technical than themselves.
I had this experience growing up when I was talking to my Dad about math. He is a EE at NASA. A real rocket scientist. They exist! He knows so much math (some of it pretty esoteric and useful largely in his speciality of antenna design), and has for so long, that my simple frustrations with things like Freshman Algebra were in some ways a mystery to him. In one particularly memorable conversation, I asked why something worked in a particular way, and after a bit of time he said that once I knew a certain higher level of math this would become obvious. I was temporarily stuck: I would never see the next level of math till I grokked this one!
And Then Came Maude....
Sooner or later, intolerance strikes. Someone will post a response to the new person that contains anything from mild abuse to questioning their patriotism in a time of war. Something like:
"Are you NUTS!!! Why the HLL are you posting such stupid dumb** question. Why do you hate our troops? Your mother was a hamster and your father smelt of elderberries (From the Monty Python Phrasebook: "Useful things to tell customers when they are calling and bothering you")".
It may be more ... err... sophisticated:
"We do not tolerate fools lightly in this forum. Please remove yourself to other places, so that you do not annoy us in the future, and so that we may concentrate on real issues."
This new, trying to do the right thing, be "open" person is now deeply confused and hurt. Is this not Open source. Is this not a public forum? Even if they don't know anything about this tool or product, they still need help on it.
In a forum for a paid product, no support professional would post such a response. If they did, their career would be at an end in short order. A company would not tolerate paying customers being abused by people from their company.
There are a lot of reasons why the maladaptive response to the newbie question is occurring in the Open Source forum:
I am doing this "for free"
This is not my day job
I answered that same question endlessly already
I only have so many hours in the day. I can spent them repeating myself, or being productive
PUUUULEASE!!!! They asked me why this didn't work the same as Windows!!!! AS-IF!!!!!
I am out of caffeine, and I have no money to get fresh. I hate being poor and brilliant
I have not been on a date in a decade
Combinations of several or all of the above
The reason does not matter. In a customer support situation, if someone was thinking about trying the new "Open" thing, and gets that response, the damage is done.
Smug and Arrogant?
A post came out recently about Apple users being "Smug and Arrogant", and when I looked at it there was a poll. 2/3's or those who had read the post agreed that Applen were guilty as charged. You could take that post and change all the Apple references to Linux or other Open Source projects, and I think the poll would be about the same. And it is because of the same reasons. Well... maybe not the Apple advertising campaign part. But as smug as those ads may be, I like 'em. I think they kind of actually miss a point criticising the ads saying that John Hodgeman plays "PC" as bumbling. John Hodgeman gets all the good lines! In many ways, he is the more likable of the two. I have in fact often viewed the ads as being sort of a misstep for Apple because "PC" is more endearing in his own, can't stop blue-screening, kind of way. Maybe it's just me though...
Fedora and Ubuntu
Now I want to circle around to part of what I was trying to get at with my recent posts both here and at TalkBMC about Fedora and Ubuntu. Another aspect of "open", "closed", and the new users experience.
Fedora is a great Distro, if you already know what you are doing. Fedora, like OpenSUSE, lives in the middle of the road. It is not as challenging to install as MS Vista or rolling your own Linux distro starting with a download from Kernel.org. Fedora is easier and faster than installing GenToo. It is not as easy as Ubuntu or Linspire or Xandros. Yes: I know Xandros is in bed with Microsoft these days. See the bit above about arrogant and smug though: I know why the Xandros/MS deal is not optimal, but does the average person that just wants this stuff to work?
Fedora has an admirable stance on why they do not include any software in the Distro that is not really Open Source. My example in the other posts was Wifi cards like Intel and Atheros where even though the vendor has supplied driver code, they hold back the code to the cards driver loadable firmware and only provide a binary. With Fedora, you will have to work hard to get that card going, and their point in acting closed to closed source is to incent card manufacturers to be more open.
I love it. I think card manufacturers are wrong to think their microcode is all that splendidly different in a commodity market like Wifi, and that being more open and easier to install would be an advantage in the marketplace!
However....
Being hard to install for the right reasons means by default you are NOT after the casual installer. The person just trying to use the computer as a tool to get something or the other done. The person who heard that Linux was really cool and was willing to try it to see what it is all about.
The Spectrum
On one end we have the Xandros / Microsoft lashup. Xandros is licensing closed protocols from Microsoft that will allow them among other things to create programs to access content on MS Exchange. They call this mash "Mixed Source". If I sound a bit leery, it is because I used to run BMC's email system, back when we used HP's OpenMail, and I watched HP make a similar deal, and then not to long after that, see OpenMail sold to Samsung, where it later died. The problem from my point of view was that having the protocols was only half the battle. Someone still had to write all the programs to use them. MS has spent years layering all this stuff together, RPC's and Protocols like MAPI and CIFS so that it is no trivial thing to create programs that use them. Ask the folks at Samba.org. There is a reason MS Vista took seven years and billions of dollars in R&D, and came out looking like a gussied up version of XP with compatibility issues.
Middle ground is Ubuntu/Mint. Closed source, binary only bits are not only allowed but supplied. A message is sent to the person at boot that "Restricted Source" is in use, and if you click on it, a display of all the restricted source bits that the OS had to load to run on this hardware is displayed. You know who is playing nice, and who still keeps their cards close to their chest, source code wise.
Then there is the completely open. And Open. Supporting only that which is fully Open, and fully unencumbered, projects like Debian, Fedora and OpenSUSE reward openness by inclusion. Open is a wide world of things, where you can build whatever you need, as long as you know what you are doing and have the time.
Support
Stretched across the span of closed to open is another dimension. Support. Whurley likes to say that "people" (and these people include companies) have one of two things: Time or Money. I would add to that "Expertise", which came at least in part with time, and now costs money.
If you are paying for support, you probably have money, and you also expect that you will never have the conversation I outlined in the "Maude" section above. You are paying for the right to have a throat to choke. You can also spend money on a person who is your local expert, and whose throat you'll being squeezing. Or both.
Novell,RedHat and Ubuntu walks between all these worlds with their commercial Linuxii. Novell, like Xandros, has some sort of deal in place with Microsoft although I am not sure it is quite as "deep" as Xandros's. You can buy a Dell with Ubuntu on it, and it will be supported by Canonical. Etc. Etc.
But Its My First Time
I have been saying for a long while now that Linux is ready to take on the personal and corporate desktop. I base that on personal experience, not only of being a user personally and professionally, but in helping others to do the same thing. I watched my brother (who is not a computer person) look at an Ubuntu PC for the first time and say in some wonder "This is Linux?", clearly thinking it was going to be something much more mysterious than what it was.
If you are Open Source / Computer savvy, I'll wager someone someplace has asked you at least once: "What is the best version of Linux for me to run?". As technical people, we as a group like to answer such questions correctly, even if two minutes later their eyes are glazing over, and, like one of my blog posts, we are just warming up.
These days I just answer that question with "Mint" or "Ubuntu". If they asked me that question, they are not ready to hack device support in Fedora just yet. They may never want to. As good as Fedoras reasons are for being Open, and only Open, this rules them out for a beginner at least in my estimation.
As I was lamenting in "Agenda", that is too bad. Fedora has a ton of great stuff in it. By ceding the entry level Linux to Ubuntu, they are also ceding mind and market share. Since under the covers, Linux is Linux, Ubuntu can grow with the user. When it comes time to install their first Linux server, Ubuntu has one of those now too.
At the end of the day, it looks like to me that the way one goes about being open (or Open) is to be inclusive.
Original post from July 7th, 2007. Original post here:
http://talk.bmc.com/blogs/blog-carl/steve-carl/ who-do-you-serve-open-source-and-community
This one, like Piers Anthony, made a trilogy of what was originally one post:
Proving I have moderately high geek points, the title of this post were the opening words of the "Babylon 5" spinoff series "Crusade". These words seem to work here for todays post, especially if you know the TV show at all. To be clear if you are not Crusade-saavy: It was not a show about the religious Crusades of 1095 to 1291. It was about a race against time to save Earth from a plague created by an alien species. In typical Babylon-5 tradition (and in fact, all good Science Fiction), the show was as much about current times as anything happening in the future.
I always wanted to get a Babylon 5 quote in here. ![]()
When this question (or is it questions) are applied to the topic de-jour: Open Source, today's post becomes a sequel to my previous one about “Egoless Programming”.
Common and Community... same root word.
Open source is at its core a community of the creative. The innovative. A community of people with common interests and talents. There are many communities kinds of communities of common interest. Sporting events are communities of people with a common interest in what sport in under way. The first time my new-at-the-time wife came with me on a ski trip, she found out she was not a member of the community of skiers. She did not know that when we were not on the slope that all we would talk about was skiing. Even though we had just battered ourselves all day long against a mountain, where the mountain once again won as it always does, we would sit in front of cheap TV set that evening after dinner (where we recalled the days events in gory detail) glued to Warren Miller films about people who ski way better than we do. She thought when we weren't skiing we might do other things. I don't think it was self delusion: I just don't think she understood.
Other communities: I have been to many Mensa events: my wife is a member. I know people in the Society for Creative Anachronism (SCA). I literally knew rocket scientists when I was at NASA. Here at BMC I have met many product authors and product designers. Smart / creative people are still in need of the same things as anyone else. They need community. They need other people. It is just that what they are communicating with each other about can sometimes make ones brain hurt. When inside their community, they are in their zone of comfort, and they speak of things in ways that people outside the community just may not so easily grok. It is not meant to exclude, it is just a feeling, kind of like that one you get when you arrive home after a long trip. Kind of like the feeling I just got getting in a Heinlein reference and a Babylon 5 reference all in one post... ![]()
I used to date a waitress. When she was with me, and we were with co-workers and friends of mine from the computer world, she had no idea what we were talking about. She once asked me later if we were “being dirty” because to her ears, all the talk about bits and bytes had a vaguely obscene sound to it. She was an intelligent person with other interests: just had never been involved with computers at all. This was before PC's were commonplace too. Did I mention there is dirt younger than me? I did make an effort not to talk about computers after that when she was with me. She still dropped me like a hot potato. I'm pretty sure it was the computer thing... ![]()
Common... or maybe uncommon interests and abilities
Here is another bit of the puzzle: intelligence / creativity is not something that can be measured and expressed in a unitary number like IQ. See Stephan J. Gould's excellent book "The Mismeasure of Man" for why we humans are far too complicated for such simplistic ideas too have any application beyond that of party novelty. No believers in hogwash like "The Bell Curve" need apply here. That is a different community. The community of people that wish life was easier and less complex than it really is, where people all line up in neatly classifiable little rows.
I know this about IQ to be true because I am an example of it. Please do not interpret this as braggadocio or any other form of feeling self important, but I am not of average IQ. At any given point in my life though, I have taken IQ tests and returned scores that varied by over 30 points!
One reason is that intelligence and ability is about exercise: the more one uses their brain, the better it becomes. Another is that tests measure different aspects of ability will return different results relative to the average. If you were to measure my ability to perform math today relative to when I studied it in school, there would be a huge drop off. In my job I use math, but only parts like statistics and double entry bookkeeping and the like. Some geometry, for building houses. Anything else would require intensive study to refresh. All skills are organic when one is a human being.
This is deeply complicated: I am not even talking here about Savant talents, or cultural bias in testing. You have to read Gould's book or something like it to get ones head around the whole thing.
Add in now "interest". One is far more likely to gain skills or stay fresh and skillful if it is an area of interest. Over time I think this will tend to skew, so that one becomes even better at areas of interest, and even worse in other areas. This is probably further reinforced by community. When you are with like minded people, you tend to focus on your areas of common interest.
The results of the community that is Open Source are tangible, if not easily measured. Results like Linux, Gnome, KDE, Xorg OpenOffice, GIMP, Beryl/Compiz, On and on and on.
How does one create an environment of creativity ?
If you look at some of the most successful companies these days it is clear that they have internal environments that encourage creativity and innovation. Apple is clearly one of them: I am writing the first draft of this entry on my iPhone in an antique mall while my wife does ... something.... in a cabinet full of antiques. Not sure exactly what she is doing: I am not a member of the community on antiques. And I'm blogging on my iPhone, so I am not paying attention either. In that world of antiques I have found that my tastes run to either the very cheap or the very expensive. I can not tell the difference between one or the other when I am looking at it. I do know that most of what I like is often called "Art Deco". But I digress.
Another example company would of course be Google.
I admit freely that as a manager I have stolen freely from Google, specifically their 70/20/10 "rule". I have been around creative geniuses all my life (my dad has something like 17 patents he can talk about at NASA) so I know a good idea when I lift one. I have written to some degree about some of the creative things we are up to inside R&D support, but since I adopted this rule, some major changes have occurred in the team. I'll get into those in future posts. Some really good things happening here though.
Most corporate environments are not so flexible as to be able to deal well with the needs of the creator. Humans being what they are, needs are met one way or another. A stultifying day job is a recipe for creating all nighters, and weekends of creative frenzies. Or drinking. Sometimes both. They are not mutually exclusive.
Intersection
I was reading a very interesting article this last weekend in the New York Times about amateurs contributing to the Space Program (subscription may be required) . The article was interesting, and well written but at one point the author was essentially going to sleep during an in depth technical discussion that was occurring between those he was writing about. Even though the author was interested enough in the topic to do the research and write the article, they could not quite hang in there for all the detail that was required to make the project work.
I hit this phenomena again recently. I was talking for more than four hours with someone I had never met before. In the course of that conversation I found out that they were deeply intelligent, well traveled, well read, and had some truly original and fascinating insights into some things : things I had thought about for years and never picked up on. Then another in the room mentioned the idea that they kept a laptop by their bed, for late night computing needs, and they got the oddest reaction. This person could not believe anyone would do such a thing as have a laptop near their bed. I keep two there : a Linux laptop, and an Apple laptop, so I thought nothing of it.
Somehow this crossed some line for this individual between intelligent and geeky and it is always an education to find where that line is. It is completely individual, just like we all are. I am sure when I quoted Babylon 5, geek alarms went off for some, and for others it was more like “Hey, I didn't know he liked Babylon 5 too”.
My next door neighbors have a sort of mixed marriage. He is an engineer and a homebody. She loves to travel and I am insanely jealous of all the places she has been. She has seen the Taj Mahal twice! They are in their 80's now, so clearly they have figured out how to make that work. They are both intelligent, creative people. He likes to create from his home, in the world of his mind. She likes to learn new things, meet new people, and is trying to see everything that can be seen. He walks the dog while she is away. What is clear is that part of staying young is staying interested in things.
Meeting the needs of the creator
My theory about why there are so many Open Source projects with so many people so good at such complicated and esoteric things as writing operating systems like Linux or FreeBSD or amazingly sophisticated graphical applications like GIMP (or, any of the other 21,000 projects in Debian alone) then is this:
This is their interest
This is their community
This is who values them for what they want to be valued for
I know when I used to talk to Rick Troth about things like “suloginv” or “CMSFS” or any of the other Open Source things he was working on while he was here, there was always a special note of affection in his voice. He truly loved that work and that community of people. It was not just that they valued and love Rick either. it was that they were in a position to better understand exactly what it was he was doing, how hard it was, what it's value would be... and they valued him for that which he wanted to be valued for. I used to get a warm glow just standing next to him.
There was an interesting article I read today about the number of contributors to the Linux kernel growing. For the purposes of this posts focus, it was especially interesting that the total number of people contributing code to the Linux kernel just since the 2.6.11 kernel came out has doubled. Change rate is doubled too: from two changes an hour to four. Per hour!
Moving back to a personal example: what about oneself does one wish to be liked for? Does it feel better to have someone say you look good today, or that they really liked that patch you checked into the repository, or that you really made a great play in the game... what about you is what you want to be appreciated for? I was very gratified when I started this weblog by the response to it. As personal an act as writing is (a virtual putting your heart out on your sleeve if you will) it would have been hard to have had a huge groundswell of "You Stink" kind of responses.
Swimming against the needs
Companies that do not get this are going to be in trouble. The power of the creative / innovative is stacked against them. They will be facing companies that do get it. Entire groups and communities. Literally millions of smart creative innovative people motivated by common interest and community.
This is not even really a we-versus-them scenario, as much as some would personalize and demonize. To utterly torture a metaphor: This is a drive your stake in the ground and resist change thing, only to find your stake is really a sand castle, and that thing moving at you is wave. Big or little, fast or slow, the wave will win.
I said it was going to be tortured. But I like the mental image of the wave slowly lapping at the sand castle and think it appropriate. If you have ever been to one of those build a sand castle competitions, and then gone by the beach the next week you see all that remains, you get the picture. Beach. Waves. Skin cancer. Ok. Fine. Moving on.
Coming back then to the Babylon 5 quote at the top of the column. People always serve themselves. Their needs must be met. Look at any company in crisis, and most of the people that are leaving first are the good ones. They are not rats abandoning the ship, they are talents whose needs are not being satisfied.
My Brother spent his life battling alcohol. In the recovery programs he attended they talked about the fact the he had to work on himself before he could help anyone else. A sort of self protecting self involvment that was required to make progress against the disease. They had a saying: "You have to work on yourself before you can work on anyone else.". It may seem odd to say it that way, but it was and is based in a very solid bit of understanding about the way we humans work. If one does not take care of ones self, one can not have enough resources, mentally, emotionally, whatever, to be there for anyone else.
Call it enlightened self interest, or whatever you want. Creative and innovative people need to create and innovate. It is part of who they are. This is true of any subject: not just creation of Open Source programs for those gifted with talents in the area of programming, but any artistic endevour. And those of like interests tend to form communities: Just take a trip to Santa Fe, New Mexico or Marfa, Texas or Jerome, Arizona. Three places that pop to my mind whenever I think of the term "Artist Colony". There are many others....
Writers must write. Coders must code. All are acts of creation. All creative needs must be satisfied.
It is the way we are. Oddly, few companies really understand this about their creative talent. Some may even actively work against it.
Many companies fight a delaying game. They throw up as many obstacles as they can to try and slow things down. See SCO for details on how that worked out.
Here is another example: MS is seeing a drop-off in third party apps for MS Windows. This report says 10%, with another 2% this year. I am sure it will be denied as being true though. What I will be curious to see is if Ray Ozzie "gets it". Signs are not good: the patent deals with vendors like Novell and Xandros and Linspire look like another delaying action to me.
People will met their own needs. They will ultimately serve themselves, and their creative desires. They will go to where they feel good about what they do. They have to. They are people. That is just how people work.
As for the second half of the B5 quote: They will trust those that think and feel and act the same way they do.
That would actually be a whole other post I think.[Egoless Programming|http://beta.openmanagement.org/blogs/stevecarl/2007/05/16/egoless-programming-an d-open-source]
This one was originally posted at:
http://talk.bmc.com/blogs/blog-carl/steve-carl/egoless-programming-open-source
In a recent post I talked a bit about the various meanings and confusions of the term "Open Source". It was a long post, but it really only scratched the surface. of the subject. In this post I will most likely use the lower case version of the term unless what I am referring to is something specific to an Open Source project like Linux or some other Open Sources licensed endeavour (GPL, MPL, etc.).
Along the way of the last post I alluded to several other things the about open source that are things I plan to sooner or later return to. Things like open source as a feedback mechanism regarding what people / customers really want out of their software.
I did not really spend any time in that post talking about what the people that create open source get out of it. I guess you might lump 'companies' into that as well, but what I really had in mind here was the classical concept of Egoless Programming, as espoused by Gerald M. Weinberg in 1971 in the classic "The Psychology of Computer Programming" (Looking at Amazon I see there is a Silver Anniversary Edition out now...).
The Coding Horror website has a great summary of the principals on their web site. In summary, the '10 Commandants of Egoless Programming' are:
Understand and accept that you will make mistakes.
You are not your code.
No matter how much "karate" you know, someone else will always know more.
Don't rewrite code without consultation.
Treat people who know less than you with respect, deference, and patience.
The only constant in the world is change.
The only true authority stems from knowledge, not from position.
Fight for what you believe, but gracefully accept defeat.
Critique code instead of people—be kind to the coder, not to the code.
If you have ever read any forum about Open Source projects, it would be easy to think, on the surface that every one of these commandments is null and void. There are flame wars. There are people being nasty to each other over minor points of style (No one ever puts a comment in that way anymore? Where have you been?). Egos are on parade. "My code is better than your code" taunts are often flung like insults at a wrestle-mania event.
Dig a bit deeper though and I think you will see that all of these things are working. The people with true knowledge and ability tend to become known and recognized. The people with little ability but loud voices tend to be marginalized.
Often the noise is not on the actual developer forum (being it an email list, an online discussion forum, an IRC, or whatever), but on a site or forum related to the project. The noise is on some sort of public facing forum, but not the place where the people collaborating are doing their actual work. This is sad, because it creates a perception about the ways various Open Source projects work that more than likely is not accurate.
In a sense, this is "Those who can, do. Those who can't, comment". Ego is everywhere to be found along that spectrum.
Distilling Weinberg's book into an idea about programming being egoless is probably a bit of a misnomer though. At the end of the day, it is all about ego, and what it takes to satisfy ones own. People who do long hours of thankless charity work and expect nothing for it are still doing it because it is what makes them feel good. It is what satisfies their personal needs.
People are hardly all of a kind, and what motivates one person can be as different as night and day from another. Stereotypes would have it that all salespeople are aggressive, All successful jocks are lousy with money, and all geeks are socially inept loners. Stereotypes are based on some true things, but they are all surface. Scratch the cover a bit to find the commonality. Example: Everyone wants to feel successful even if what makes them feel that way is different. I want to feel like I have written a good weblog entry right now. Others would rather walk over broken glass than write any weblog entries. Writing a weblog would not be rewarding to them, even if it was a requirement of their job.
Take the geek stereotype. I know it pretty well. I am by nature painfully shy. That fits the stereotype to a T. I have over the years worked very hard to be less shy. To write this weblog, and to present at places/events like LinuxWorld and SHARE. Despite all my efforts in this regard I can't in some ways go against my basic nature. My presentations are not action packed, high energy affairs where at the end the attendees walk out wanting to dance. I am happy if we have an interesting session with lots of good conversation about the subject at hand, so that we all learned something. I like to learn new things. I like to meet interesting people.
My favorite sport is snow skiing because it is not me against anyone else. It is me against me... and maybe a mountain. It is a sport that contains breathless beauty and deep joy. I like to ski in part because I like to stand on top of snow covered mountains and look at the other snow covered mountains.
All around me on the top of the mountain are my fellow skiers. Some are racing each other. Some are working on tricks so they can win competitions. Some never stop to look at the scenery, except to read the signs to the nearest double diamond. We are fellow skiers, in the same place, doing more or less the same thing (staying alive on steeply angled ice with slick boards strapped to our feet), but having a different experience from it.
In every case, people are doing what they do because that is what it takes to satisfy their themselves. Their ego. The two are interwined and in many ways, they are the same thing.
If I write a tool (pick a tool, any tool), and someone else finds it very useful, then it meets several needs. First of all, I was probably trying to solve a problem I was having or learn a new thing. Second of all, the act of writing the code, like the act of writing this weblog, is a creative affair. When the code or the entry is going well, and I feel like I am solving the problem or effectively communicating, then I feel good. My need to create is being satisfied, therefore my ego is happy. Then, when someone else finds my tool useful, I get an even nicer feeling stroke. Even if they are not saying this, it is like they are saying "I like you".
That is a basic human need. Everyone wants to be liked, whether they admit it or not. Sure, there are some people I could care less if they like me or not. If I don't care for or respect them, then their lack or like of me is pretty tolerable. If what they value seems so utterly alien to me that I just can not connect to them on any level, it may be a failure on my part to find a common ground. But it is highly likely that at some point I will stop trying to find any common ground.
All you have to do is praise a child's picture to see the entire thing in action. The look on their face, and the torrent of new pictures that ensue will tell you all you need to know about ego and what satisfies it, and the creativity that can flow from satisfying it.
One of the powers of open source is that it, more than other forms of programming, fills a basic need in the code-creative person. Even better, it allows for people at all levels of skills, time, and creativity to contribute and be a part of something bigger than themselves. Something they created is being valued by others, and their name is in the comments and the CVS/Subversion check-ins.
People (even us geeks) are social animals. Ego can be satisfied even if you are not the the only one doing the creating, or the very best. Creative needs can be met by being part of a team or group that created something bigger. The creative interactions inside the team can reinforce all that they love about creating code. If the end result is well received, then that feels even better.
I liken this to when I was at NASA. My companies subcontract had ended, and the new company was not hiring yet. I had to take a new job outside NASA (actually, my only job in the Gulf-coast centric "oilpatch" industry), and I was sad that I had to leave the space program behind to put bread on my table. Then the Challenger accident occurred, and shortly after that, I got a call from the new subcontractor about whether I would be interested in returning to NASA and doing that work again.
I do not like to move around between companies a great deal. I have been at BMC for 18 years for example. I had only been at my then current oilpatch job for 5 months. My ego's need is in part to be a reliable person. This was being put in direct opposition to my need to be a part (a very tiny part) of putting the space program back on track. What I was going to do at NASA was not even obviously directly involved with return-to-space. I was a mainframer, and my work would be on support infrastructure like the email system and the computer that had the shuttle parts database on it.
It was a no-brainer. Even though it hurt to do it, I resigned immediately and went back to NASA. One need trumped the other. At NASA, everyone I know, or knew back then, feels like they are contributing to the bigger goal. I will always be proud of that time, even as I still twinge at my short service time at the oilpatch company.
This was originally published May 16th, 2007. Original Link here:
talk.bmc.com/blogs/blog-carl/ steve-carl/egoless-programming-open-source
This operated as a sequel of sorts to "What is Open Source"
So: Is open source egoless? Yes and no. Being a part of an open source project is probably not about personal glory. Example: The Linux kernel has a few superstars like Alan Cox or Linux Torvalds, but thousands of people have contributed over the y