What Business Can Learn from Open Source
dtolton writes "Paul Graham has written a fantastic article on what businesses can learn from Open Source. He covers why Amateurs can outperform Professionals, why the home is a better work environment than the office, and how bottom up ideas are better than top down. Finally he ties these lessons into the business relationship." Derived from a talk at Oscon 2005. From the article: "...the biggest thing business has to learn from open source is not about Linux or Firefox, but about the forces that produced them. Ultimately these will affect a lot more than what software you use. We may be able to get a fix on these underlying forces by triangulating from open source and blogging. As you've probably noticed, they have a lot in common."
The problem with the "I can be more productive at home" argument is that it blurs still further the distinction between work and personal life. IT people are already subject to odd-hours, psuedo or real on-call schedules, VPN access "just to check your email", etc.
People need to stop this trend - its not healthy. When I walk out the door of my job, I'm done. They pay me for 40 hours a week, and they get it. No more. If I work an extra 4 hours a week at home, I just gave myself a 10% pay cut.
I want to delete my account but Slashdot doesn't allow it.
Or Open Source similar to blogging? I just saw that and my vision went blurry... Blogs are just web pages that people update everyday or so... WTF!? BLOG!? I hate that word. It's just stupid.
My humor is probably your flamebait
This group of technical professionals are doing a hobby they enjoy. That's it. It really doesn't have anything to do with work. Would you like to explain how somebody who works in, say, insurance could be more inspired by his employer, given that his hobby is model trains? What they do on their own time is completely unrelated to work.
I don't respond to AC's.
As the author of TFA states, changes to our cultural ideas of "how things get done" are indeed glacial. But that's no reason that business in the 21st Century can't take a couple small steps in the right direction.
I have been lucky enough in the past to work for a forward-thinking company that understood that allowing their employees to follow the threads of their own ideas could be enormously profitable overall to the company. Job descriptions are far too restrictive, IMHO, and should only be used as base guidelines. This is not to say that management should push employees outside of the job description and expect more, but that they should allow and encourage employees to explore new methods and ideas.
I've written quite a bit of software over the years for employers with this "Go ahead, give it a try" mindset -- software that was completely off the track of what I was actually "hired to do." Yes, I did my job, but by allowing my job to morph as my interests drove it, the company ultimately ended up with new products and services to offer that they hadn't envisaged. I was paid well for the work that I'd prefer to be doing, and everyone was happy on both sides of the equation.
So, managers of the world, loosen the grip on the reins a bit. Let a little entropy into the system and see what gets produced...
why Amateurs can outperform Professionals
I think the article and the facts on the ground would justify rephrasing this as "why professional programmers get better results on their free time, without pointyhairs, committees, and marketing droids in their way".
Actually, one of the most liberal-minded companies I've ever done work for had under 100 employees. But they understood that allowing me some flexibility paid off in the long run. And, to be quite honest, I ended up putting in more than 40 hours a week because of it. Overall, I'd say they came out way ahead compared to trying to turn me into one of the masses who feel like watching clocks and rushing the parking lot are the norm.
..who hates their job.
I enjoy coding, and the stuff I code at work is very interesting and challenging. When I was unemployed for 6 months 2 years ago, guess what I did with my free time - code!
You think professional golfers just quit at the end of the tournament and say tripe like "if I golf 10 hours in my free time, I just got a 10% paycut!"
Have fun hating your job, working the bare minimum, and never getting ahead. Meanwhile I will keep enjoying my job, getting ahead, and when I am 45 I will be sipping on a margarita in the bahamas while you are still working 40 hours a week to make rent.
Yeah, but the best open source products have people involved who are paid for their time in working on it.
Amateurs are great, and amateur drive is an amazing thing -- it's enabled me to produce software of a quality and sophistication that a "professional operation" couldn't match for anywhere near the price.
But the "great advantage" of amateurs -- they work better at projects they love, without bosses -- is also their great shortcoming. As a rule, amateurs don't do the crap work. Most amateurs, being their own bosses, won't do, or do inadequately the pain-in-the-ass parts of the job. Check grammar on a weblog? Make the GUI useful and intuitive to an average user? Hang around and get the damn thing finished? Ensure that your startup has a legally sound foundation?
In short, discipline is something amateurs as a group lack, and that's something some of those fancy degrees teach : to achieve something, you can't just do the stuff you like.
As far as meetings go, well sure, meetings are to be abhorred by any sensible person. That's also why in Universities (where you get your fancy degrees) we teach people to break up in arbitrary small groups and work on a project. The smart ones figure out pretty quick that small group work sucks and determine to avoid such situations, or make them as functional as possible.
And well, yeah, it sucks being a wage slave, but most jobs are just that: jobs, and for lazy-ass amateurs like me to live our lives, we need an infrastructure of people who work for a living.
I've found that this is a particularly bad problem when it comes to software development. Most American developers lack the maturity and responsibility to be allowed to "work from home".
Really? Hm. I'd have to say that if I have employees that I feel it necessary to watch their every working moment to make sure they're working, there is most likely a major problem with my hiring process, since I'm obviously grabbing the least-trustworthy schmoes I can find.
It is not that open source software can outperform professionally-written software. It is most often the case that a piece of nice commercial software is written and the open source community tries to replicate it for free. The reason that they can come up with so many quality, open source alternatives is because they have no timeline. Nobody bats an eye that it took the open source community 5 years to come up with a competitor to IE6. Nobody cares about that (it's free, after all, quit complaining!).
Rather, it is the case that code that is well written, only needs to be written once. Take the gecko rendering engine, for instance. How many open source browsers use it? And once a quality piece of core software is written, it doesn't need to be written again! So, it may take the open source community years to come up with a solution, but once it's there, it isn't going anywhere.
You can see this happening with kde and gnome, too. They aren't quite as user-friendly or as stable as their commercial counterparts, but once they get there, unless the desktop paradigm changes, then the OSS community will have their free desktop alternative.
The first reason is that many, many businesses are focused on building what the customers ask for. Clue number one: customers know fuck all about building software. If they were remotely clued in, they wouldn't need to ask somebody else to build it, would they?
So customers ask for stupid things. That's what makes them customers. The problem arises when the business doesn't care that it's stupid, but builds it for them anyway. Now you have a suboptimal solution that cost lots of money.
Compare this with the amateurs. They are building it for themselves, so they are qualified on both the problem domain and the software construction. They aren't going to build something stupid because they are going to be the ones using it.
Then there's the morale. The professionals are fully aware that what they are building is stupid. It's demoralising. They offer sensible solutions instead, but get knocked back with "it's not what the customer asked for". They begin to understand that their job isn't to build good software, it's to spend their time programming, and if the result is somewhat functional when they reach the deadline, that's just a bonus. It's not surprising that they don't really give a shit whether the code is up to scratch or not, because the whole exercise is pointless beyond collecting a paycheck.
Again, compare with the amateurs. They get satisfaction not only from using the software they wrote (being both users and developers simultaneously), but they get the satisfaction from finding that others appreciate it too. They know they've solved a problem well, and they take pride in their work. People who take pride in their work generally put in more effort.
If there's anything that businesses can learn from this, it's that they need to be able to say no to customers. To put off deadlines. To say "You know what? This is solving the wrong problem!" and go back to the drawing board with the customers to figure out a better approach. It's only when the professional programmers see that they are actually doing something productive that they'll feel motivated enough to take pride in their work, and feel like they are in an environment where they can contribute actual solutions instead of banging their head against a brick wall.
It's not so much the evils of corporate profit so much as the evils of technological progress. Farmers have lost their income, so have factory workers, along with script monks (1600, printing...).
Every time paople scream that the world will end, but it never does, it just adapts.
If open source cost's me my current job as a developper, so be it, I'll find another way to pay my rent.
But that won't change the fact that in my spare time, I'll still be helping out on projects and chatting with other developpers on IRC.
by triangulating from open source and blogging. As you've probably noticed, they have a lot in common This is the most irritating comment I've read in a long time. Blogging has nothing in common with open source, except for it is one of the things that are now considered cool even by mainstream media. Apart from being currently "in", they have nothing in common.
"Two things inspire me to awe -- the starry heavens above and the moral universe within." - Albert Einstein
As someone who invested 6 years, and about $250,000 worth of lost earning potential into a business, I can honestly say that I agree with him, 100%.
I wouldn't trade my experience running that business for that $250,000, if you tried to give me the cash. Now that I am back at a programming "Job", I treat it completely differently than I did before I had a business. I find that I worry much less, too -- once you've come close to living in a gutter, there's not much that is "threatening" about a boss!
He does say that someone with Kids and a Mortgage should think twice. So, all in all, Mr. Graham's article was very even-handed in its comparison of Jobs vs. Start-ups.
-- -pjk Perry Kundert perry@kundert.ca http://kundert.2y.net
Google uses Linux which is free to make money. Tivo use Linux (although I don't know if they actually make money. Linksys sells (and I assume does pretty well) products like the WRT54g which run Linux.
I don't want to go crazy with examples, but the point is that lots of companies make money off of free software and some of them probably even give things back, they just don't always make money the way you expect a software company would.
"He covers why Amateurs can outperform Professionals"
This is total bullshit.
Perhaps he covers why motivated people outperform unmotivated people. Just because you don't get paid for you craft, does not mean you are not a professional.
In his latest essay, he tries to explain why a Professional will never be as productive as an Amateur because Professionals don't do what they like. Excuse me? So you're saying amateur athletes players are better than people in the NBA/NHL/MLB/NFL because they'll play for free? That's absolutely ridiculous. Professional athletes are more motivated than anyone else. What about people who actually applied for jobs doing work they loved, like me. Not only do I have a job I love, I get paid to do it.
I'm certain there are people who hate their jobs, and who are very unproductive. But has Paul ever considered the fact that maybe they were unmotivated to begin with, and that the reason they took that job was because they were too unmotivated to get anything else?
A previous posted stated that motivation is what drives productivity. I couldn't agree more. Money has absolutely nothing to do with productivity, it's all about motivation.
Phemur
Customers often times have no clue as to what they need (and therefore the requirements that the design and implementation flow from are flawed/wrong) and this can caues issues. However, this has less of an effect on whether or not the code is "up to scratch".
Perhaps you misunderstand me. I'm not saying that bad requirements directly cause bad code. I'm saying that programmers who know they are building the wrong thing are going to find it difficult to care enough to create high-quality code.
The author seems to portray that startups have a high chance of attaining google-like fate. This is a bit ambitious. Startup requires money and financial backing and most graduate students have neither. If the startup fails, you may not feel that bad;atleast you had fun working on that project. Too bad your credit-card company will not feel the same way!.Also, how many startups have actually survived more than a couple of years?
I believe amateurs are creators, but professionals drive the industry. Being on time, following rules and other "plague" of professional life is necessary for sane life. Imagine if your plumber refused to come and fix the problem because he/she "don't feel like it"!. However, I do agree that office environment degrade productivity. I am a full-time employee at a large corporation. I have seen people taking up days doing work that I could have finished in a few hours. In my opinion, traditional offices are a workplace for tired and burnt-out, or for those who are inline to achieve this status. But, the cold, hard reality is that you need money to live, and people will rarely pay you to have fun!
These are one of the reasons open-source has thrived. It lets you have the best of both worlds.
The author must not have a wife or kids.
>Is that really a fair thing to say?
It's not, but for different reasons (in my view). IBM, in my view, is selling snake oil (give you a "free" Linux, then rip you off on everything else). Red Hat is probably the only noteworthy example.
Tivo is making money not from Linux but from their product (which incidentally runs on Linux), but could have made money using any other OS (BSD or even some commercial embedded OS).
The same goes for Google (just look at Yahoo - I think they're big on *BSD).
I think making money on open source is one thing and using open source components in one's product/service is another.
Also, note that some of Red Hat's best-selling and money-making products used to be closed source. They're giving them away now (and they've become GPL/OSS in the meantime) in exchange for maintenance. If the development doesn't pick up properly, these will dry up. As far as the OS is concerned, their best hope is that Linuces remain fucked up as they are right now so companies get locked in their enterprise distro.
And then there's Fedora and other communities who work for Red Hat for free.
If you 'look over my shoulder' more than one time a week, you and I have a problem.
I can track how you're spending your time and if you're ripping me off I'll know it.
As a manager/boss, you should be able to tell that up front.
"This will take me X days to finish"
"OK"
-here, you, the boss, should be able to determine if 'X' is reasonable. If I say it'll take 80 hours, and you KNOW it should only take me 20...then there needs to be a meeting of the minds. If you also realize that it will take 80 hours....then by next friday, I should hand you a completed whatever. Or a valid reason why it isn't done.
If you don't know WHY something should take 80 hrs vs 20 hrs, maybe you shouldn't be the boss.
Paul Graham has written a fantastic article...
This article is only "fantastic" if you are already a "true believer" in what he's already saying. At that point, you are just looking for others to help you validate your own beliefs.
His second paragraph, for example:
More significant, I think, is which 52% they are. At this point, anyone proposing to run Windows on servers should be prepared to explain what they know about servers that Google, Yahoo, and Amazon don't.
Is completely religious. What Google, Yahoo, and Amazon know about their business and why their choices work for them may have zero bearing on what servers YOU need for YOUR work. For example, there may be applications (even legacy ones) that run on some other OS (doesn't have to be Windows) where the application is not OSS and is not available on an OSS OS? I personally know someone who has a bunch of software that he wrote running his own business (quite well, I might add) that is written in a language that he can't find in OSS much less on Linux. Why change? Why would any of those three companies know more about his business than he does? Why would he have to justify his decisions to, well, anyone?
Basically, this article is great if you are already part of the OSS religion. If you view OSS as "just another tool that you can use" then the article is somewhat "meh". Besides, the author doesn't even take into account any other businesses that aren't electronic in nature, such as manufacturing (yeah, you want a bunch of amateurs spread out all over the world trying to assemble cars? the shipping costs of the required parts for one car to all the workers (and back and forth) would cost 10x the amount that a car on the lot today would cost). Yet, the author doesn't make any distinction (perhaps saying that his "research" only applies to businesses that do all of their business online and are basically just information or retailers). Maybe he doesn't realize that there are other businesses out there...
I have a 4-year old. Trust me, I get far, far fewer interruptions when working at the office than when working at home!
I've abandoned my search for truth; now I'm just looking for some useful delusions.
What if you tell me that a particular task takes 80 hours, but in reality it takes you only 20? I have no way of knowing that I'm wasting 60 hours!
You're trusting me to create the software that's going to determine whether your business succeeds or fails, but you don't trust me to be honest with you about schedules? I think you've got a more fundamental problem, then. Either you can't trust me period, or your expectations on schedules are out of line with reality and nothing can be done until you correct your expectations. Oddly, I've found the latter to be far more often the case (this was in fact the primary reason I changed jobs earlier this year).
If I have you in a cubicle, I can look over your shoulder and make certain that you are working, I can monitor your browsing, check for personal emails, etc - in other words, I can track how you're spending your time and if you're ripping me off I'll know it.
And why do you need to do this? You hired me to do a job. Either I'm turning in the results on time and to spec or I'm not. If I'm not, you might need to watch me closer to figure out why. But if I'm finishing my projects on time and my schedules are reasonable, why should you need to confirm that I'm doing what I'm obviously doing?
I think the lack of maturity here isn't on the developers' side. I've found most commonly that managers lack the maturity to trust highly-paid professionals to simply do their job unless and until there's evidence they aren't.