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
One thing that businesses can learn from open source is that properly motivated employees can produce great things. Here we have a group of technical professionals working for free to produce great software. Employers on the other hand, have a difficult time motivating people who they pay. Motivation == productivity.
Ultimately these will affect a lot more than what software you use.
From my own observations, this part is very true but, not in the way you think. Rather than ushering in a new revenue stream, open source destroys revenue streams. So far, there are only two companies that will even claim to have made a profit from open source. They are IBM, who may have reason to fudge the numbers, and Red Hat, who claims to have scraped some skin from its teeth. All the others are either losing money or folding.
Now, before you go off on me about the "evils of corporate profit", let me remind you that without corporate profit, you don't eat or have a roof over your head or any of the other "God given rights that you enjoy. Open source is shaking up the business world alright but, it looks like it is going to make a lot of people homeless.
Yes, the best blogs spreat, the worse ones get forgotten. But the worst ones can cost you a breakfast.
Anagram("United States of America") == "Dine out, taste a Mac, fries"
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.
There'sa lot of people in the open source community who work with motivation and fun. That's the key in my opinion.
If the great industries care about his employees, they should be a lot more productive
Codexcast, the first Spanish podcast in the world made in High-Resolution parchment. (I think so
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...
You're assuming that you're talking to people who all work for mega-corporations with thousands of employees that can afford to let their emplyoees tinker on company time. I think that's a bit unrealistic. I know that when I hire somebody, I have a job for them to do. I simply cannot afford to have them playing around, hoping to come up with some great idea that's unrelated to my business.
I don't respond to AC's.
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".
..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.
This guy is really insulting. He says that failing your own business "won't hurt as much." as having a real job? To say that investing every dime you own in a business, and spending every day for several years (most businesses fold in the 1-3 year range), only to see it fail "won't hurt as much" as working as a job that may not be 100% rewarding is pure bullshit.
Actually, I'd say it's this cavalier attitude about business that causes many startups to fail.
It sounds like he's suggesting that developers work at home, develop open source, and pay their rent with what? fairy dust? good will?
Another thing that keeps people away from starting startups is the risk. Someone with kids and a mortgage should think twice before doing it. But most young hackers have neither.
And as the example of open source and blogging suggests, you'll enjoy it more, even if you fail. You'll be working on your own thing, instead of going to some office and doing what you're told. There may be more pain in your own company, but it won't hurt as much.
I don't respond to AC's.
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 think the important part of OSS is that teams are built on individuals' technical ability rather than race, creed, colour or indeed paymaster.
rd
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.
His opinion, while interesting, is incredibly naive. It's great that there was recently a posting about the spread between "good" programmers and "average" programmers. Much of what the author talks about represents an incredibly small portion of the overall developer community. While there may be some people that would flourish being given freedom to work from home on a project that they found interesting, the fact is, those types of projects are fairly uncommon (the real challenge is to take the "mundane" project and make it interesting) as is the person who would actually benefit from this. Let's face it, the majority of developers would not see a similar leap in productivity. They might enjoy their lives more, but it certainly would not relate to higher productivity.
The author mentions that M$ can't motivate its IE programming staff to come out with a "better" browser than FireFox. Well, discounting things like dealing with the codebase you have inherited, lets face it, M$ operates by putting their A Team resources where they perceive they are needed the most. Right now, they kick butt in the browser wars (even against "better" competition), so there isn't a perceived need to "have to come out with something significantly better". OTOH, the FireFox team does nothing but produce a browser (kinda), so of course they HAVE to be better. Would a new browser that was only "just as good", or even "not quite as good" been acceptable for the FF team, obviously not. So to assume that the quality of software coming from both sides has more to do with amateur developers vs non motivated professional developers is simply not looking at the bigger picture.
When people are paid for units of work rather than hours they will try to do anything to get themselves more productive. And number one step is lowering the quality as much as they can. I have seen this happen in real life.
The one thing that makes FOSS better is in my opinion the fact that in most cases you are working on something you are going to use yourself. You care about quality, maintenance and you will not try to cheat.
Slides and Video.
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
Distinction between work and personal life is a very fresh concept, connected with capitalism and work for hire. As someone already mentioned it does not exist if you run a restaurant. It doesn't exist if you are a farmer. Hell, it probably doesn't exist if you run any kind of private small-scale businness.
It didn't exist in pre-capitalism era: families worked together, dined together. Even if you were hired, quite often your brother/sister worked at the same place. Women were taking their babies to work or were gathering together to spin wool or linen, to sew and so on.
So it seems that this distinction was artificial and caused by a fact that if some people have to be in the same physical location to work and they have to commute - it is more efficient to separate their work time and leisure time. But with introduction of modern communication methods more and more jobs take different trend: work at home, feel comfortable, manage your time yourself, your employer is only interested in results, not means. And this means switch from time based work to task based work - which in fact is a return to natural state.
Wouldn't you like to spend your day at home, with your family, just retreating to your home office if you need to focus a bit more on work, have a lunch at home with your wife and kids than to commute everyday, order a pizza for lunch, and then spend an hour and a half driving back home? Do you like explaining to your boss that you have to take a day-off because of some reconstruction in your house or something?
With a laptop I can do my work while laying on my sofa and listening to my favourite music on my home stereo - and that is when I am really productive.
Cheers
Raf
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.
If there's anything business tends to learn, for a combination of reasons which do include constant onslaught from those who are reflexively anti-business (attack and your enemy defends, it is easier to influence friends than defeat enemies), it is to do things as cheaply as possible.
Coders have as much right as anyone else to be paid for their work. Oh, but here comes Free Open Source Software. Legions of geeks willing to write all sorts of code you find useful and you can use it in your business. They want you to. Who needs to pay coders' relatively large salaries now? Now you have a cudgel in the fight against giving the coders the pay they want and feel they deserve. Why pay $60K/year to someone writing in-house apps when you can pay some geek who couldn't maintain a job at Dairy Queen but who has really good Linux skills half that?
THAT is what business learns from FOSS. And all OSS is FOSS in the minds of the majority of the OSS using and writing world. It certainly is in business. A way just needs to be found to insure that is is FOSS.
The socialistic and chintzy anti-corporate "free, free, free" brigades and the corporate "closed source if we can help it, open source if we pay nothing" people need to call a truce and establish a way that coding can be open to future learning from it without denying fair IP to anyone or making it hard to earn money from your labors or for those who are not in OSS. Corporations will always make money. If it is not handled right, then they will be the only ones making money and those doing the programming will make little to none. All because of blind fanaticism, inability to see the forest for the trees, and unwillingness to do what is needed in the way of compromise and different approaches to the conflict.
Not for nothing my day job isn't programming or supporting same anymore.
If my grammar and spelling are off, I am [distracted/tired/careless] (take your pick)
I actually get more thinking done on the subway during the commute. If I could dispense with the ten hours per week plus the 40 hour wasted there,I'd actully be much further ahead.
Meanwhile, I tried to telecommute for a week while telling my boss that I had pneumonia. I got more done in that week in my underwear than in the rest of the month. He still insisted that I haul my carcass in thought and my productivity went up in smoke.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
The author must not have a wife or kids.
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.