For example, an engineer could flag a variable as requiring a given lock be held during access, and the compiler would do some static analysis to determine if the lock was actually being held. Separately, they decided to use these new annotations across their codebase, and were surprised when their code no longer compiled. After fixing the static analysis failures, they discovered that their production crashes had disappeared: static analysis had moved their failures from production to compile time, making it easier to find and fix them.
There are lots of types of bugs and defects that computers are simply better equipped to identify. InfoQ: What branching strategy is used at Google and what are the pro's and con's of that strategy? That is, the branches that do exist are release branches, and they tend to be short-lived and not merged back into trunk. This turns out to be really important: nobody has a choice of what version to depend upon, nor where to commit their changes. Instead, they have to make changes incrementally and often go update their users directly to prepare for a change.
The biggest guidance in dependency management is to prefer version control problems over dependency management ones which is part of why we like the monorepo concept. Many things that happen to work today can stop in the future because of incompatible versions, diamond dependencies, and unsatisfiable dependencies.
The industry seems to have settled on semantic versioning semver as a way of identifying compatibilities, but semver is at best a highly-compressed human estimate of how compatible any given change is likely to be.
It works OK in simple cases, but larger networks of dependencies are both bug-prone and overconstrained, which is a drag. I think that has a lot to do with why Google tends to build its own things so often. Winters : We try to minimize the amount of external dependence: the vast majority of our code is written in-house.
Most of our difficulty in managing that code is finding the necessary incentives to keep the number of versions bounded and the checked-in version up-to-date. Trying to update such a thing at scale when it is used by 10, projects is not fun. Along the way he has started several Google projects that are believed to be in the top 10 largest refactorings in human history.
That unique scale and perspective has informed all of his thinking on the care and feeding of software systems. Tom Manshreck is a Staff Technical Writer within Software Engineering at Google since , responsible for developing and maintaining many of Google's core programming guides in infrastructure and language.
Stuck trying to diagnose connectivity or performance issues? Learn how to quickly get to the root cause of traffic and network problems. Join a community of over , senior developers. View an example. You need to Register an InfoQ account or Login or login to post comments. But there's so much more behind being registered. Like Print Bookmarks. Google is imperfect, both technically and organizationally. You can see that in our handling of technical issues like maintenance of external packages, and also in our cultural issues around equity and diversity.
It provides a great opportunity for education, and establishing a shared understanding. Choice is often the enemy of efficiency in technical domains.
Our version control and dependency management policies work mostly by removing options from our engineers. Author Contacted. Related Editorial. Related Sponsor Stuck trying to diagnose connectivity or performance issues?
How to Recognise and Reduce HumanDebt. Flutter 2. Leading with Empathy. Kotlin at Ten. Outcome Mapping - How to Collaborate with Clarity. Introducing the Ionic 6 Component Framework. 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.
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 Google is well known for their 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? There may be more comments in this discussion. Without JavaScript enabled, you might want to turn on Classic Discussion System in your preferences instead.
If you push the "extra ice" button on the soft drink vending machine, you won't get any ice. If you push the "no ice" button, you'll get ice, but no cup. Do you develop on GitHub? You can keep using GitHub but automatically sync your GitHub releases to SourceForge quickly and easily with this tool so your projects have a backup location, and take advantage of SourceForge's massive reach. 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. This discussion has been archived. No new comments can be posted.
Full Abbreviated Hidden. More Login. Mirror, in case of slowness Score: 5 , Informative. Here [igtc. Share twitter facebook. Personal projects? 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. 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. Parent Share twitter facebook.
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? I think the idea is to get people to play with code on their own ideas, without corporate overhead. It's a personal project in the sense that it's self-directed. Score: 4 , Funny. Does that mean it's personal as in "beer" not "speech"? 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?
Score: 5 , Informative. Score: 4 , 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.
Score: 2. I don't connect to my work from home. If its not important enough for me to drive in, its not important enough for me to work on. 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. Does anyone know if the same is true in Texas? The first exception in CA Labor Code Section 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;.
Even if you do it on your own time, they still own it unless they give you a release or you declared it when you began your employment.. 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. Not so 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. Re:Not so Legally, yes. Practically speaking, if your code becomes even mildly popular, you're begging for it to be forked.
Nothing wrong with that; just the way it is. Score: 3 , Interesting. For real. Google's got the advantage here. It makes them happy, and makes people want to work for Google.
And by retaining ownership, Google will make all the profits off it. I'm not sure I would do it if I was at google. But the thing is 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.
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. Reminds me of King Solomon. It's a logistical nightmare. What's good for my employer is good for them. If it's good for me, that's a nice side effect that gives them a little internal P.
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. Google is not a 'relatively small corp'.
It is worth more than both Ford and GM. 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. I didn't mean it's worth less, I meant that it is smaller than my employer.
Trust me - Google is definitely smaller than my employer, and has fewer shareholders. I think you mean, It. 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. Score: 3 , Informative. Actually google gives a very large what that means I don't know bonus to a person that made a very successful project.
The problem is this generates a culture of people that get a project to beta, get the money and then drop development in order to get a new project into beta. Its one of the reasons why google has so many beta projects and finishes only a few of them. Score: 4 , Interesting. Where do you work?
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.
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.
How would you know? Do you have an example? Since you are programming something you need itching your own scratch , you get the benefits of your program immediately, you may get the help of other Googlers on your project, and you get paid.
Not to mention a supercomputer grid to do some compilation ; 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. I was a web developer back in the early days when our company was trying to figure out the whole "Intranet" thing.
I was lucky enough to have the time to crank out what I thought might be some useful general tools such as a survey builder and form builder.
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.
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, th. Score: 5 , Funny. Hang on Score: 2 , Funny. It's just a code word PeRs0Nal projects. Transparent to the max? Gnarly dude! Being a project manager working with developers who are working across multiple projects, the adoption of agile is difficult. I found that there needs to be flexibility in the rule book, especially in the beginning.
I also found, depending on the size and complexity of the project, the length of the sprint can make a statement to the quality of the product and the health of your team. Find a schedule that is realistic and push back to clients if needed. A happy team makes for a great product. Your email address will not be published.
Save my name, email, and website in this browser for the next time I comment. What is Scrum? February 4,
0コメント