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

31 of 246 comments (clear)

  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. career impact? by kin_korn_karn · · Score: 3, 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?

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

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

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

    3. 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.
    4. Re:career impact? by dillon_rinker · · Score: 2, Insightful

      how does a young programmer make a name for himself at Google

      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 formulated (for objects on the earth) the acceleration of due to gravity.

      You might as well ask how a young programmer makes a name for himself ANYWHERE, when he has compilers, libraries, optimizers, editors, development environments, revision control systems, etc. After all, the hard work is done for him . All a young programmer has to do is string together some statements that (let's be frank) are practically English.

      To answer your questions, if everything assigned to you is already written, then you can get your work done REALLY fast. Perhaps you will become known as the guy who can do anything fast. You will be tasked with doing even more. Your familiarity with the code base will grow. When asked to do something taht would take others days, you will see clever ways to combine existing chunks of code. On your own time, you will be creating new and interesting things out of other people's code, things they didn't think of doing because they were thinking of something else.

      And you're right, smart people don't wake up in the morning, chop down a tree, hew it into timbers, bind the timbers together, chop them into circles, and attach them to an oxcart. Smart tools build clockwork mechanisms containing dozens or hundreds of gears, wheels, cams, shafts, levers, and springs. And that's before breakfast.

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

  4. Not so... by TiggertheMad · · Score: 2, Insightful

    That assumes that you want to own it. Think open source type stuff. Even if you wanted to 'own' something like that, you can't, due to GPL.

    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.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  5. 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
  6. 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.

    1. Re:Innovative is good... by dillon_rinker · · Score: 2, Insightful

      Just curious - which peer-reviewed journals approved the scientific method? Or conjecture-proof? Or thesis, antithesis, and synthesis? I can't think of any other modes of inquiry that have nifty names, but you get the idea. Also, since when do books not engender debate? Did you miss out on the bit where peer-reviewed scientific journals show up a few hundred years after the printing press, which showed up a few millenia after scholarly writing?

      And as long as we're engaging in ad hominems, Godel went insane, Einstein was a philanderer, and Heisenberg was a German.

      I don't dispute your conclusion, by the way. I don't know Wolfram and haven't read his book. I merely dispute your lack of support for your statement. Which has nothing to do with the post you've replied to.

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

    If you want to own it, do it on your own time and pick something else for company time.

    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?

    --
    Edith Keeler Must Die
  9. 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.

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

  11. 20% time works pretty well in my opinion. by GoogleGuy · · Score: 2, Insightful

    The 20% projects work well in my experience. Sometimes you have to take the initiative to make sure you take that time, but you usually end up doing fun, search-y type stuff. And you end up meeting other people from different parts of Google, and getting familiar with new/different bits of the Google code base. It's also a good way to break out of a rut and make sure that you think about "bigger picture" issues. If you end up crunching on an important project, you can also bank that 20% time and use it up later.

  12. 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
  13. Re:Personal projects? by badmammajamma · · Score: 1, Insightful

    Yes, and I'm sure if some Google employee came up with some great idea that he spent his 20% free time on, and Google made an assload of money on it, they would give that employee a cut. NOT!

    I'm guessing he would walk away with a pat on the back and maybe a couple grand bonus. The only thing this is for is to exploit the employees out of good ideas to make more money for Google. That's it. This is not any kind of "we're so nice" bullshit that peole want to make it out to be. It's great PR for Google and I'm sure it will attract a lot of people who don't think it through, but it's all just a scam. Imo, the whole "we try not to be evil" bit went out the window whenever the implemented this supposed "benefit."

    --
    Any man who afflicts the human race with ideas must be prepared to see them misunderstood. -- H. L. Mencken
  14. Reuse! by 14erCleaner · · Score: 3, Insightful
    Wow, they seem to actually have code reuse company-wide!

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

    --
    Have you read my blog lately?
  15. 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
  16. 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
  17. 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.
  18. Re:Personal projects? by winkydink · · Score: 3, Insightful

    You do, of course, have to pay to defend yourself if sued. One assumes Google can afford it, can you?

    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.

    --

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

  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. New Creative Companies Explained by MrAnnoyanceToYou · · Score: 3, Insightful

    Google goes along the 'new economy' lines of thinking. If they make money as a company, everyone benefits, and since everyone benefits everyone stays and works together to benefit more. Think about working in a big corporation where it was a huge team, and everyone loved working there.

    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, that would be ideal. Collaboration is in the corporation's interest, and the interest of all the individuals involved because they all gain and feel their contributions are recognized and rewarded.

    This is why people want a job at Google, not because they get time to develop what they want, but because the corporate culture is more open. As I develop Access VBScript to interact with FoxPro databases and wait for some moron to install Business Objects and give me enough access to the data mart to do the worthless Monthly Record Review reports noone looks at except to gauge their bonuses, (I am in QA) I think more and more that I want a job where I've got that kind of freedom, that kind of collaboration, that kind of workplace.

    It's like being in the 90's all over again, only this time they're able to put the bar that much higher, and I wish I made the cut.

  21. Re:Personal projects? by Moofie · · Score: 3, Insightful

    Is it that unreasonable for the company to expect to own something that you built on their equipment, on the time they bought from you?

    --
    Why yes, I AM a rocket scientist!
  22. 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/
  23. Re:You Do Want to Express Yourself, Don't You? by KaiserSoze · · Score: 2, Insightful

    The CPAs? Are you kidding? Or did you mean MBAs? Because I have a hard time seeing how certified public accountants would direct a company to focus on shareholder value rather than employee morale or product quality or innovation. Certified public accountants don't write vision statements; that's the executive committee (at their $2000/day offsite).

    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.

    --

    "What we elect to call imagination is mere combination of things not heretofore combined." - Frank Norris

  24. Re:Personal projects? by koreth · · Score: 3, Insightful
    One assumes Google can afford it, can you?

    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.

  25. On trust and good ideas by SuperKendall · · Score: 3, Insightful

    I'm not even going to go into the 20% thing, because that has been done to death. Except that is to make one observation - the 20% works at Google because the people they hire are good fits for the plan. There are a lot of people at other companies that might not know what to do with a self-directed 20% plan...

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  26. Re:www.fuckedgoogle.com calls bullshit by TheLink · · Score: 2, Insightful

    Heh, just took a look at it. Whoever is writing the site just sounds jealous to me. The background should probably be green and not red ;).

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

    --