Slashdot Mirror


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."

34 of 246 comments (clear)

  1. Mirror, in case of slowness by winkydink · · Score: 5, Informative
    --

    "I'd rather be a lightning rod than a seismometer." -Ken Kesey

  2. Personal projects? by thundercatslair · · Score: 5, Interesting

    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.

    1. Re:Personal projects? by Rei · · Score: 5, Insightful

      You're paid to do it on company time, though. If you want to own it, do it on your own time and pick something else for company time.

      --
      "It felt almost as good as stealing cars from grandma." -- Margaret Thatcher, probably.
    2. Re:Personal projects? by yitzhak · · Score: 5, Insightful

      It's not just getting paid to do it - having access to Google's codebase and infrastructure would allow you to do "pet projects" that simply wouldn't be possible on your own.

    3. Re:Personal projects? by ackthpt · · Score: 5, Insightful
      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.

      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.

      --

      A feeling of having made the same mistake before: Deja Foobar
    4. Re:Personal projects? by winkydink · · Score: 4, Interesting

      Unless you're extremely careful about documenting how & when you spent time on your personal project that you're working on in your own time, chances are Google owns that too (based on the IP agreements I've read in the Valley).

      --

      "I'd rather be a lightning rod than a seismometer." -Ken Kesey

    5. Re:Personal projects? by MoneyT · · Score: 4, Insightful

      I think the idea is to get people to play with code on their own ideas, without corporate overhead.

      --
      T Money
      World Domination with a plastic spoon since 1984
    6. Re:Personal projects? by MoneyT · · Score: 4, Insightful

      A couple grand bonus is nothing to scoff at if your idea wouldn't have made it to daylight without any google code, or the time your were paid for, or the other people to help you, or Google's name attached.

      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.

      --
      T Money
      World Domination with a plastic spoon since 1984
    7. Re:Personal projects? by lawpoop · · Score: 4, Insightful

      It's a personal project in the sense that it's self-directed. It's not some PHB saying "code this", but you doing *whatever the hell you want.* It's not personal in the sense that you own it.

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
    8. Re:Personal projects? by Rei · · Score: 4, Insightful

      But the thing is... you're getting paid, to do something that you want. If there's nothing that you want to do that you aren't willing to relinquish copyright on, then do something that you're not interested in. At the very worst, it's no worse than working at your average business, where you work 100% of the time on some specific corporate project; at best, it's a lot better, since you have a degree of freedom.

      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.

      --
      "It felt almost as good as stealing cars from grandma." -- Margaret Thatcher, probably.
    9. Re:Personal projects? by AuMatar · · Score: 4, 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.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    10. Re:Personal projects? by Anonymous Coward · · Score: 4, Funny

      Does that mean it's personal as in "beer" not "speech"?

    11. Re:Personal projects? by stewby18 · · Score: 4, 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:

      Relate at the time of conception or reduction to practice of the invention to the employer's business, or actual or demonstrably anticipated research or development of the employer;

      (Feel fre to Check it yourself.)

      If you work for a large software company, that covers a *lot* of ground.

  3. Personal projects? by Nevtje(hr · · Score: 5, Funny

    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
  4. Transparent to the max? by tquinlan · · Score: 5, Funny

    Gnarly dude!

    What is this... a 1980s BMX article? ;)

    --
    DBA? Software Engineer? My company is hiring! Click
  5. What if you only did 19%? by OsirisX11 · · Score: 4, Funny

    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."

  6. My 20% time by Steven+Edwards · · Score: 5, Interesting

    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
    1. Re:My 20% time by 0x461FAB0BD7D2 · · Score: 4, Funny

      "Hey google what the hell is this yellow stuff in the picture eating my plants"

      Spongebob?

  7. Re:career impact? by Homology · · Score: 4, Insightful
    The flip side to their encouragement of extensive code-sharing is, how does a young programmer make a name for himself at Google? In my opinion, a system that merely strings prefab parts together is not nearly the accomplishment that a from-scratch system is. If everything you are assigned to do is already written, then what have YOU done, other than figure out other peoples' APIs?

    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!

  8. You Do Want to Express Yourself, Don't You? by Shky · · Score: 5, Funny

    How many pieces of flair do they have to wear?

    --
    CC Licensed Serialized Story and Podcast: Ingenioustries
    1. Re:You Do Want to Express Yourself, Don't You? by killjoe · · Score: 4, Interesting

      It's a joke but...

      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.

      --
      evil is as evil does
  9. Re:career impact? by oGMo · · Score: 4, Insightful
    And here comes the cavalcade of leeches spouting "smart people don't reinvent the wheel.."

    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

  10. Re:career impact? by Rylz · · Score: 4, Insightful

    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.
  11. Innovative is good... by rice_burners_suck · · Score: 5, Insightful
    It's very interesting and refreshing to see a technology company that is actually run, as a business, in as innovative a fashion as its programs do from a technical perspective. And most surprising is that Google is actually quite successful. Companies like that can be counted on perhaps one hand.

    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.

  12. Vital Company Secrets by osewa77 · · Score: 4, Funny

    "You're fired for blogging!"

  13. I'd be content with 20% for work-related projects by boomgopher · · Score: 4, Insightful

    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.
  14. Heard this idea from Fred Brooks at GDC by jparker · · Score: 5, Insightful

    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.

  15. A damn good idea by the+eric+conspiracy · · Score: 4, Insightful

    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.

  16. My employer funds my open src development... by tcopeland · · Score: 4, Interesting

    ...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!

  17. Is /. the result of a Google employee? by mcguyver · · Score: 4, Funny

    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

  18. One Fine Day At Google by ackthpt · · Score: 5, Funny
    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."

    Let's consider this...

    Manager: Hey, welcome to our team, we're all going to be working on a great, exciting project! Are you all looking forward to a fun challenge that can add cool new features and attract more customers?
    Employee: [Yeah, right, exciting for you, but not for me, mister millionaire manager.] Yeah.
    Manager: Excellent! Ok, we've all got new workstations, the latest and greatest, installed with all the tools you should need, but if you need anything else just scribble it down and zap it over to me, I want to make sure you have everything you need.
    Employee: [Yeah, everything you need to squeeze every last drop of blood out of me, you capitalist pig.] Ok.
    Manager: Further, don't worry about your hours, come in late work late, come in early leave early, whatever, just so long as you can all make necessary meetings and hook up with each other when you need to.
    Employee: [Yeah, you'd really like it if I came in early and left late, mister exploiter.] Cool.
    Manager: And I'll have a caterer bring you lunches, snacks and drinks, whatever you like, just jot it down and I'll add to the list. Don't forget to take breaks now and then, we don't want anyone to burn out.
    Employee: [Why not, because then you'd have to go find some other guy to wring the life out of?]
    Manager: Oh, and one last thing, we did really well last quarter and everyone will get an additional bonus in their check. We'll also throw a party on Saturday where you can all kick back and have some brews and listen to a live band and bring your kids for a pool party and lots and lots of food.
    Employee: [You'd just like me to slave away on things and then choke on damn eggroll, wouldn't you, you bastard.] Wow!
    Manager: Carsten, you ok? You look a bit down?
    Employee: [Yeah, trodden under your oppressive boot.] Oh, I'm fine.
    Manager: Ok... but why don't you take the rest of the day off, have a long weekend. Heck here's some tickets to see the Warriors, if you can't use them, pass them to someone else.
    Employee: [You'd like that, wouldn't you, me sitting in the third row just as a fight breaks out and I get mauled by some genetic freak.] Uh, thanks.
    Yeah, I can see how working for such a place could suck...
    --

    A feeling of having made the same mistake before: Deja Foobar
  19. Todays management techniques by CherniyVolk · · 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.

  20. Bees by Viking+Coder · · Score: 4, Interesting

    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.
  21. Anomaly by Duncan3 · · Score: 4, Insightful

    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/