Software Development Practices At Google
prostoalex writes "It's widely known that Google allows its engineers to spend 20% of paid work time on personal projects (that are nevertheless considered property of the company). But how does the practice actually work? Joe Beda provides a helpful insight in his blog, pointing out other interesting software development practices at Google. The code database is open for everyone, the snippets and pieces are documented and one is encouraged to re-use existing code. The intranet is transparent to the max and the company accepts the fact that there's more than way to accomplish something, so a better method is always welcomed. Interesting to note that just like Hawaiian shirt days in Office Space, the 20% per projects are "actively encouraged" - Joe suspects his review ratings might slip if he doesn't have one soon."
Here
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
So you work on your personal project then google owns it? It seems like it would be more worthwhile to do them on your own time then.
Hang on... we all know majority spend 20% of their time on porn, but labelling it "personal projects".... yeah, could work as an excuse for filling in the efficiency void :)
Three rings for the Elven-kings in the sky
Gnarly dude!
;)
What is this... a 1980s BMX article?
DBA? Software Engineer? My company is hiring! Click
What if you only did 19%?
Or 18%? 17%? Where do they start saying..
"hey...you need to work less on what you are supposed to and more on your side project."
If I was at google I would spend my time working on
1. Voice to search features
2. Image searching features for iPaqs and the like to take images and search google.
3. A better AI for being able to understand end user questions.
My father in law is a farmer and lost most of his crop last year because the local university took 6 weeks to get back with him and tell him what was eating his crops. If instead he has a iPaq hooked up to google with a camra and speach search software he could have said "Hey google what the hell is this yellow stuff in the picture eating my plants"
Why clone Unix when I can clone Windows instead. http://www.reactos.org
Exactly! So when I needed to add some database capability to a program at work, the first thing I did was to design and implement an ACID compliant database with replication support!
How many pieces of flair do they have to wear?
CC Licensed Serialized Story and Podcast: Ingenioustries
Smart people find wheels that haven't been invented.
Don't think of it as a flame---it's more like an argument that does 3d6 fire damage
Google probably doesn't care about how a young programmer could make a name for himself. They just want to create the most productive environment possible, not one in which code has to be rewritten dozens or hundreds of times. As for a smart programmer having a better way to do something, if this is so, she's likely to go ahead and change something in the universal code base, since everything is apparently transparent.
Sometimes you've gotta roll the hard six.
But one does have to remember one thing: It's not easy to make a company succeed in this fashion. Sometimes, as a manager, one wants to give one's employees everything, but one simply can't because of lack of resources. At Google, that isn't quite as large a problem, and they have the ability to perform some very long-range thinking and innovation, because their commercial success is giving them the freedom to do so. Their annual revenue is in the billions.
I would say that Apple is also quite innovative in quite the same respect, though that will be highly debated, as is Wolfram Research, which will probably not be debated very much.
Business that treat their employees like crap will ultimately lose. Businesses that are innovative in every respect, including business practice itself, don't have guaranteed success, but those that do succeed will do so in large quantities and the people who work there will have great fun in the process.
"You're fired for blogging!"
Shit, let me work on whatever part of out product I want for 20% of my time, and I could add some nice improvements. As it stands, the energy burnt off trying to get directors, product managers, etc to approve anything makes it too difficult...
Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.
At GDC 2003 or 2004 (can't quite recall) Fred Brooks (author of The Mythical Man Month, in case you're here by mistake) gave the programming keynote, and one of his suggestions was exactly this: to give your employees 20% of their time to work on whatever they want. He mentioned the benefits to morale, retention, etc., but he said the main benefit was the freedom to find new methods and new technologies. Pounding away on the day-to-day coding will only give you incremental benefits, but these 20% projects could provide the germ for an entire new product or business model. It's basically making everyone part of the R&D department.
Also, if you have the chance, I highly recommend seeing him speak. In addition to being obviously brilliant, he's also a very entertaining and amusing speaker.
I really like the concept of 20% for projects like this. Some other companies like 3M have tried it and benefitted tremendously both in terms of employee engagement and in innovative products.
...on this.
It's already paid off - I've gotten some good input from outside folks, and our company can use it however because it's under a BSD license. Everybody wins!
The Army reading list
If slashdot were owned by a Google employee then that would explain why 20% of the stories that run on /. are about Google.
/bye karma
Let's consider this...
Yeah, I can see how working for such a place could suck...A feeling of having made the same mistake before: Deja Foobar
The assembly line was created, thanks to Henry Ford. During that time, machines assisted less qualified humans to complete complex tasks. Nolonger will a master shoe maker be needed, an idiot can inspect components down an assembly line.
During this time, a person who could screw ten screws into a peace of metal within a particular time frame could directly be translated to production and in turn relate to prospective profits. (Time cards were probably born.)
During the dawn of industrialism, economists and businessmen developed optimal management techniques in accordance to this model of production. It is a fixed model, you peace thirty components together in a day, that's thirty peaces of merchandise out the door; management is now tasked with optimizing output from workers.
Today, a lot of work is more what I call, artistic. A software developer or engineer has to create an idea and apply it. This is a far cry from simply grabbing a screw and twisting it into a peace of metal; there is much more involved and worse there is no reasonable time frame or consistancy in production.
The management techniques, economists, the business classes in schools and universities have not evolved from an assembly line managment goals to techniques to accomodate artistic development.
IBM tried many years ago. They tried to pay a developer by how many lines of code were written, we all know this leads to utter failure in quality design and robustness.
My point is, most companies are NOT going to adopt this model of management. They do not make sense of permitting a worker to spend 20% of his time on a personal project, becuase to them, that's 20% of the time away from production of their interests. The math hasn't been developed, and frankly, everything todays managers and businessmen were taught in school about management and business is completely wrong in regards to dynamic production.
This topic somewhat reminds me of this:
http://www.infobear.com/howswdie.shtml
Windows Made Me This Way
How Software Companies Die
Windows Sources, March 1995, p. 208
By: Orson Scott Card
You can domesticate programmers the way beekeepers tame bees.
The environment that nutures creative programmers kills management and marketing types - and vice versa. Programming is the Great Game. It consumes you, body and soul. When you're caught up in it, nothing else matters. When you emerge into daylight, you might well discover that you're a hundred pounds overweight, your underwear is older than the average first grader, and judging from the number of pizza boxes lying around, it must be spring already. But you don't care, because your program runs, and the code is fast and clever and tight. You won. You're aware that some people think you're a nerd. So what? They're not players. They've never jousted with Windows or gone hand to hand with DOS. To them C++ is a decent grade, almost a B - not a language. They barely exist. Like soldiers or artists, you don't care about the opinions of civilians. You're building something intricate and fine. They'll never understand it.
Beekeeping
Here's the secret that every successful software company is based on: You can domesticate programmers the way beekeepers tame bees. You can't exactly communicate with them, but you can get them to swarm in one place and when they're not looking, you can carry off the honey. You keep these bees from stinging by paying them money. More money than they know what to do with. But that's less than you might think. You see, all these programmers keep hearing their fathers' voices in their heads saying "When are you going to join the real world?" All you have to pay them is enough money that they can answer (also in their heads) "Geez, Dad, I'm making more than you." On average, this is cheap. And you get them to stay in the hive by giving them other coders to swarm with. The only person whose praise matters is another programmer. Less-talented programmers will idolize them; evenly matched ones will challenge and goad one another; and if you want to get a good swarm, you make sure that you have at least one certified genius coder that they can all look up to, even if he glances at other people's code only long enough to sneer at it. He's a Player, thinks the junior programmer. He looked at my code. That is enough. If a software company provides such a hive, the coders will give up sleep, love, health, and clean laundry, while the company keeps the bulk of the money.
Out Of Control
Here's the problem that ends up killing company after company. All successful software companies had, as their dominant personality, a leader who nurtured programmers. But no company can keep such a leader forever. Either he cashes out, or he brings in management types who end up driving him out, or he changes and becomes a management type himself. One way or another, marketers get control. But...control of what? Instead of finding assembly lines of productive workers, they quickly discover that their product is produced by utterly unpredictable, uncooperative, disobedient, and worst of all, unattractive people who resist all attempts at management. Put them on a time clock, dress them in suits, and they become sullen and start sabotaging the product. Worst of all, you can sense that they are making fun of you with every word they say.
Smoked Out
The shock is greater for the coder, though. He suddenly finds that alien creatures control his life. Meetings, Schedules, Reports. And now someone demands that he PLAN all his programming and then stick to the plan, never improving, never tweaking, and never, never touching some other team's code. The lousy young programmer who once worshiped him is now his tyrannical boss, a position he got because he played golf with some sphincter i
Education is the silver bullet.
Lets not forget that Google is a complete anomaly, they were in the right place, at the right time, with the right algorithm. Since then, they have had no real competitive pressure, and they make plenty of money on that first idea to fund anything they want. They could easily all sit and work on their own projects 100% of the time, and Google would still be profitable.
Google is not the real world, is nothing like a normal company any way and so should not be compared to other companies in any way.
The day Google faces real competition in the search realm, expect them to become a normal company in every way in a real big hurry.
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/