Software Development Practices At Google 246
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."
Mirror, in case of slowness (Score:5, Informative)
Personal projects? (Score:5, Interesting)
Re:Personal projects? (Score:5, Insightful)
Re:Personal projects? (Score:3, Insightful)
That sort of defeats the purpose, doesn't it? If the employee does his real personal project on his own time, and a fake personal project on company time, he has cheated Google out of what they expected, hasn't he?
Re:Personal projects? (Score:5, Insightful)
Re:Personal projects? (Score:5, Insightful)
Re:Personal projects? (Score:4, Funny)
Re:Personal projects? (Score:3, Insightful)
Re:Personal projects? (Score:5, Interesting)
Re:Personal projects? (Score:5, Informative)
Re:Personal projects? (Score:4, Insightful)
Ever connect to your home account from work? Leave a PuTTY window open all day? Remember, it's a judge with a law degree who'll be making the decision, not a geek with a BSCS.
Re:Personal projects? (Score:2)
Thats besides the point though. If a large corps wants to try and sue you into submission, they can with or without a contract, and with or without a real case. They can make shit up and claim you stole their code if they want. Its not worth worrying about, because there's nothing you can do to avoid it.
Re:Personal projects? (Score:4, Insightful)
I don't think Google can afford it, actually. Financially, of course they can -- but consider how carefully they've cultivated an image as a place where self-motivated, super-intelligent people are welcomed with open arms. They are pretty clearly following a management philosophy that says, "Hire the best and smartest people you can find, and get out of their way."
Suing an employee to gain ownership of a personal-time project would be a serious blow to their future recruiting efforts and would cost them untold amounts of geek cred. It's hard to see what kind of personal after-hours project would be worth enough to risk the huge damage such a suit would do to Google's brand name. Even if they win, they lose.
The only way they'd do it is if someone fraudulently claimed that a company-sponsored project had nothing to do with Google. In which case that person is kind of asking for it anyway.
Texas? (Score:2)
Re:Texas? (Score:2)
Re:Personal projects? (Score:5, Informative)
Except California law states that if you do it on your own time and on your own equipment, you own it. Its not legal to request an employee to sign that away, and is not enforcable. Burden of proof is on the employer to prove the employee did it on work time, rather than the reverse. In this state those IP agreements are a scare tactic, nothing more.
No, that's not at all true. The first exception in CA Labor Code Section 2870 says it doesn't apply to inventions which:
(Feel fre to Check it yourself [findlaw.com].)
If you work for a large software company, that covers a *lot* of ground.
Re:Personal projects? (Score:2)
Re:Personal projects? (Score:5, Insightful)
Not so... (Score:3, Insightful)
I like to write games in my free time, but most are just sort of practice platforms to try differing things out, not to market. If I could do something like that, I'd do it in a heartbeat. I write stuff for my own personal useage, so if Google wanted to 'own' the code, I would care less.
Re:Not so... (Score:2)
Re:Personal projects? (Score:3, Interesting)
At least, I'd rather see them leave 20% ownership of the product to the employee. Then, the employee that created it/built it can still sell the rest to google, or to the highest bidder, etc.
Re:Personal projects? (Score:5, Insightful)
I have trouble comprehending how people here feel that it's a bad thing to give people a choice on what project they're going to work on but not have ownership over, as opposed to having no choice as to what project they're going to work on and not have ownership over.
Re:Personal projects? (Score:2)
Re:Personal projects? (Score:5, Insightful)
Get ready, this may come as a shock, but some people actually do contribute to their employer's welfare, because they realize what's good for their employer is good for them. I can see where people who feel unfriendly to an employer would develop their own special projects at home, especially if morale has sunk pretty low at the workplace or the company doesn't seem to be fairing well and the employee only has a job to lose, rather than an idea which would be sold off in a portfolio of patents/copyrights.
As many people at Google have shares in the company and stand to gain much more, I can see where they may kick in some good ideas, especially if they wouldn't have much of an opportunity of developing them further wihtout quitting and raising some venture capital and hiring a bunch of employees (who may wish to withhold their own best efforts) into a startup.
Re:Personal projects? (Score:2)
I give my employer a little less than one third of my life, and they give me a paycheck. I owe them no more than what's in my contract and vice versa.
I work for a huge multi-national, though, and own no stock in the company. Shares in a relatively small corp like google are worth contributing to. Here, I'd just be one of the hundred million or so meaningless shareholders.
Re:Personal projects? (Score:3, Interesting)
I think people do forget that Google is not a little project from two students. It's a huge business. I think it says a lot about our culture and society that Google, essentially nothing more than an advanced information filter, is worth more than the manufacturers of the thing that changed transportation and human contact forever. It just really does show how much information is worth these days.
Re:Personal projects? (Score:2)
Re:Personal projects? (Score:2)
Re:Personal projects? (Score:5, Insightful)
Think about it, some guy programs a Dock like program.
That's nothing new, and certainly no one really cares.
Untill google's name is attached to it. Then it's front page slashdot and linked to all over the web.
Never underestimate the power a brand name can give to your pet project.
Re:Personal projects? (Score:2)
Good companies will recognize their productive employees with promotions and pay increases. Bad companies will lose these p
Re:Personal projects? (Score:3, Informative)
Re:Personal projects? (Score:4, Interesting)
I ask because I work at a startup, and it's *very* well understood how the company's financial wellbeing will contribute to our own. My stock options are such that ((current_share_price - strike_price) * (number_of_options)) is well over 50% the price of my house, and anything that can be done to boost that share price a bit more... well, the benefit is obvious.
So, see, I don't mind giving good ideas to the company, because they boost that share price, and thus my potential future earnings. Not only that, but ignoring the company's benefit in exchange for focusing on my own cheats not only me and the company -- but the folks I've worked with over the last few years as well. So from where I stand, trying to keep good ideas for oneself is shortsighted (I can probably make more off these ideas w/ the company backing them) and selfish (sharing the ideas w/ the company means it's not just my own benefit but that of my cohorts as well).
Google may not really be a startup anymore -- but from what I can gather, they do their very best to stay an engineering shop -- and a good chunk of the company is in the hands of their employees. If you want to see the worst when you look at them, you're welcome to do so -- but those of us who are a bit less cynical (and who have worked in environments closer to the ideal they strive for -- my last employer was also a startup engineering shop with a damn-near-elite engineering team [and is, incidentally, still in business]) can see a far less tainted side of things.
Re:Personal projects? (Score:2)
How would you know? Do you have an example?
It only takes one shining example of Google screwing an employee in the way you describe (make a bundle off his or her invention but giving the inventor only a pat on the back) before people stop using this 20% "free time" on anything worthwhile.
Re:Personal projects? (Score:2)
What also arises is the ability of Google to integrate your wonderful project into their codebase if needed. Say you make a meta-tag scraper thing, or some other seemingly useless diddy, and then Google finds a good use for it. They test it out (but it
Some personal experience (Score:2)
To this day, those basic tools have become central to our business and saved huge sums of money. Shucks, the paper costs associated with printing, distributing, and analyzing surveys were tens of thousands of dollars each year.
In general, I think t
New Creative Companies Explained (Score:3, Insightful)
Done dreaming? Well, that's what GOOG wants to sell themselves as. If there were a company which had no politics, no minor empires, little ambition but to do a good job, and everyone was going to have enough for sure, th
Personal projects? (Score:5, Funny)
Re:Personal projects? (Score:2, Funny)
PeRs0Nal projects.
Transparent to the max? (Score:5, Funny)
What is this... a 1980s BMX article?
One could say... (Score:2)
Gleaning the Code!
Ugh. I'm going to slam my head in a car door now. Rad.
career impact? (Score:3, Insightful)
Not that that can't be challenging, but IMO smart people do things their own way, not someone else's, because their way is better.
And here comes the cavalcade of leeches spouting "smart people don't reinvent the wheel.."
Re:career impact? (Score:5, Insightful)
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!
Re:career impact? (Score:2)
Re:career impact? (Score:3, Funny)
Re:career impact? (Score:5, Insightful)
Smart people find wheels that haven't been invented.
Re:career impact? (Score:2)
Re:career impact? (Score:3, Funny)
Smart people don't reinvent.....uh, damn.
That was some sort of jedi mind tick wasn't it?
Re:career impact? (Score:2)
Dark Tick of the Sith.
Hmm... Spoooooooooon!!
Re:career impact? (Score:4, Insightful)
Re:career impact? (Score:2)
You used an already existing language - English - to post this article. You leech.
Re:career impact? (Score:2)
oh shit, i used an existing alphabet...
Re:career impact? (Score:3, Insightful)
How, then, did Isaac Newton make a name for himself? By standing on the shoulders of giants."
He had a host of mathematical notations (and if you think THAT'S nothing, try doing calculus using only words.) There were already techniques for finding what we would call the first derivative for most functions known at the time, as well as for finding the area under curves. The planets were already known to move in ellipses, and Galileo already had f
Re:career impact? (Score:2)
Thanks. I was half-serious, but it's nice to let loose on a friday.
Let me ask you, though: How is technology supposed to move forward if all the smart people spend their time redoing the same things?
Here's how I rank level of accomplishment.
1) Visionaries that come up with entirely new ideas that change humanity forever. Examples: Einstein, Galileo, Da Vinci, Tim Berners-Lee. Depending on your perspective you might even put Vint Cerf and other inventors of the internet in this group, als
Re:career impact? (Score:2)
Isn't this the place where the people say that coding is art? Well, what's artistic about pasting together a bunch of premade stuff?
I guess you can make sort of a pop/dada argument out of it, but I thought that the joy of creation for us geeks was in figuring out a way to do it, not in finding out what others have figured out.
What if you only did 19%? (Score:4, Funny)
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."
Re:What if you only did 19%? (Score:3, Interesting)
One Fine Day At Google (Score:5, Funny)
Let's consider this...
Yeah, I can see how working for such a place could suck...Re:One Fine Day At Google (Score:3, Interesting)
I am sure there would be the opposites of this kid, who will always be bitter irrespective
My 20% time (Score:5, Interesting)
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"
Re:My 20% time (Score:4, Funny)
Spongebob?
Re:My 20% time (Score:2)
freedom of expression, a positive initiative! (Score:2, Interesting)
The development process can never be fully mastered, as it continuosly changes with technology, time, as well as creativity.
To hinder the development process to 'work with what we have now, and ignore what else is available', is obviously limiting to the potential growth of the company.
You Do Want to Express Yourself, Don't You? (Score:5, Funny)
Re:You Do Want to Express Yourself, Don't You? (Score:2)
Re:You Do Want to Express Yourself, Don't You? (Score:5, Interesting)
Most companies start out this way. Friendly, open, honest, exciting. Then the company start growing and soon you no longer know the name of everybody who works there. Soon after that the management will turn over and they will bring in the CPAs. The CPAs will start talking about shareholder value and write vision statements. About six months to a year after that somebody will pull you aside and start talking about your flair.
The insane thing is that all the smart people will leave as soon as the vision statement gets written. Those people can get jobs anywhere. The mediocre people will run the company from that point on but by now the company is so large it won't matter. Everything will take ten times longer, customer service will suffer, employees won't give a damn and yet the company will still somehow survive.
I can't explain it but I have seen it a few times now.
Re:You Do Want to Express Yourself, Don't You? (Score:3, Insightful)
I can't explain it but I have seen it a few times now.
Maybe you should stick to the watching and stay away from the explaining, then.
Innovative is good... (Score:5, Insightful)
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.
Re:Innovative is good... (Score:2)
Re:Innovative is good... (Score:3, Insightful)
And as long as we're engaging in ad hominems, Godel went insane
Re:Innovative is good... (Score:2)
yeah but what's a guy got to do to get modded down around here? I tried personal insult [slashdot.org] and I tried blasphemy [slashdot.org]. so I decided giving offtopic a shot.
but not to give in to your straw man argument: I never said books can't provoke debate, I said that the way Wolfram went about publishing his research meant that he got almost zero input from the community until after he published a book. compared with peer-review, where every stage of his work would b
You can read it just for the history (Score:3, Informative)
If Wolfram did anything that might be questionable it was largely cutting himself off from others who were working in the same areas for the decade he was predominantly focused on the research that went into the book. Yet it's obvious he wasn't expecting it to take more than ten years when he s
Vital Company Secrets (Score:5, Funny)
I'd be content with 20% for work-related projects (Score:5, Insightful)
Like this is new.. (Score:3, Interesting)
In fact, EVERY Place I have worked my 25 year professional career (3 companies) had this same policy. One place the number was 10%, the other two, including HP, it was 20%.
Nothing to see here. Move along. Google is not innovating in this case.
Re:Like this is new.. (Score:2)
Heard this idea from Fred Brooks at GDC (Score:5, Insightful)
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.
Re:Heard this idea from Fred Brooks at GDC (Score:2)
Re:Heard this idea from Fred Brooks at GDC (Score:3, Informative)
A damn good idea (Score:5, Insightful)
20% time works pretty well in my opinion. (Score:2, Insightful)
My employer funds my open src development... (Score:5, Interesting)
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!
Re:My employer funds my open src development... (Score:2)
Someone got a bad case of the anti-BSDs or something?
Is /. the result of a Google employee? (Score:5, Funny)
Reuse! (Score:4, Insightful)
My personal experience with this: when I was working for a big multinational corporation a few years ago, the VP of my group declared that we would henceforth be reusing software components. A place was designated for placing the reusable pieces that would be reused in the future.
Needless to say, the "reuse repository" sat their empty, until it was finally forgotten and presumably disposed of.
I worked on a number of projects there, and I tended to copy useful bits from one to the other. I think I probably reused more software than the whole rest of the organization put together.
My conclusion from this: reuse is really hard to implement, unless you trust the source of the code you're reusing.
I suspect that Google can get it to work, mostly, because they get the cream of the crop programmers, so the stuff they have to share is really, really good. I kind of wish I could work somewhere like that...sigh...
Re:Reuse! (Score:2)
One problem with that general plan is that you don't reuse code in the future; you reuse code from the past. When you write something, you don't know if it is going to be useful in projects which haven't started yet. You find out that something is reusea
Todays management techniques (Score:4, Insightful)
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.
Re:Todays management techniques (Score:3, Interesting)
Does it have to be search-related? (Score:2)
I wonder... (Score:4, Interesting)
Google is well known for their Ph.D. hiring fetish; generally, people with Ph.D's have experience with doing directed research and projects. Would a company staffed with average programmers get the same benefit from having them "play?"
Re:I wonder... (Score:4, Interesting)
If you're interested enough in the details to want to dive on in, "The Human Equation" [amazon.com] is a light read with a good summary of the evidence.
Bees (Score:5, Interesting)
http://www.infobear.com/howswdie.shtml [infobear.com]
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
I've been there (Score:4, Interesting)
First thing I did was port Mozilla to Nano-X, then get it running on an iPAQ. It was fun. The company however closed the Australian office (R&D) and I had to work elsewhere.
Anomaly (Score:5, Insightful)
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.
Ah, the "Indepence" in ISV (Score:3, Interesting)
The intranet in Google is super transparent. Teams are actively encouraged to share the most intimate details of their projects with the rest of the company. This happens through tech talks, design docs, lunch table conversations, etc.
That is the advantage of being an ISV. In companies where you work under non-disclosure agreements with some other software provider, liberties are limited. (I know, that would not be the case if everyone in the world uses open-source, but that is not the case, yet). Yes, there will still be opportunities to share good ideas in the form of utilities and stuff, but there certainly are limits to what you can share with other teams without infringing on NDA.
Hell, a few companies I know (in particular software contract-companies), have different access cards for different groups - preventing physical access. Sometimes it is imposed by client. But many times it's just the wisdom(!) of the PHBs who impose policies like, everything will be shared on a "need-to-know" basis!
On trust and good ideas (Score:4, Insightful)
But there are a lot of other great ideas there as well. Everyone using the same codebase? Thank god you can finally look at any company code you want! Workers have to actually buy in to business plans instead of having to implement every crazy idea that comes down the pike? There's a breeze of fresh air a lot of companies could use.
But what ties all of these great ideas together is the greatest idea of all - all of them rely on the fundamental assumption that Google trusts its workers. When you work with people you trust and they in turn trust you, many great things can be done - as Google has shown.
Companies should ask at every step of the game if things they are doing show more, or less, trust in employees. Especially important to remember in the days of Sarbanes-Oxley when companies would cut of their own noses just to keep the auditors happy - even when they would have been happy without the drastic cosmetic alterations.
Progress since VA and Redhat? (Score:4, Interesting)
Given all the things these current hot companies do right and the previous hot companies did right, is anything about the current batch of hot companies a net improvement over the previous batch of hot companies or is this a different patch of the same ground being retreadded?
Salaries are a fraction of what they were in 2000 but maybe software development processes have improved. Pensions and health benefits are gone but now the company intranet is transparent. Dot com parties are gone but there's 20% time for personal projects. Is this round of companies really better than the last iteration?
Re:Googledot (Score:2)
The Apple one should have an iPod subcategory.
Re:Joe Beda? Explains a lot! (Score:2)
You mean "Reweased".
Re:www.fuckedgoogle.com calls bullshit (Score:2)
Re:www.fuckedgoogle.com calls bullshit (Score:3, Insightful)
If that's the worst they can come up about Google then Google is not doing too badly.
Just compare it with the plentiful crappy companies for instance. Or even just an average company.
For laughs, compare it with HP in the days of Ms Fiorina...