Clawing back bonuses for something out of the control of the engineers seems like a dystopian nightmare, and any company that tried it would, hopefully, die a fiery death after an exodus of talent to more reasonable employers.
Clawing back bonuses for something out of the control of the engineers seems like a dystopian nightmare, and any company that tried it would, hopefully, die a fiery death after an exodus of talent to more reasonable employers.
Man, for all the lore and blogging that operates around working at Google, the skills of people who get hired, plus the first-hand accounts of what it takes to move up the ladder there, I'd think they'd be able to release things by people who make their products less killable. Ah, but reality rarely meets the legend.
This is my point: what if what gets released by Google is just bad software engineering? Maybe SOLID-deficient. If products are killed because they don't have the features contained in subsequent iterations of the concepts, how come the products were not extensible, or capable of being grafted onto something else? I seem to remember reading about this kind of thing being a big part of software engineering.
Instead everyone there has to use the latest framework or best practices, then re-engineer things to prove they deserve their top-performer salary.
I think the first Google Hangouts was written in Angular 1? Code rot from frameworks like that will ensure the product will die in 5 years at a company like Google. Everyone at Google is a "top-performer" so they want to use the latest development tools and shiny things and no one wants to upgrade/maintain 5 year old code written in an old framework.
I think a lot of other companies get around this by hiring less than top performers. Those types of coders will maintain legacy systems because they don't have as much pride. So I think it's mainly a problem that Google has a culture of tech elitism, instead of a culture that focuses on user satisfaction.
I think Google's culture is to blame, but this culture is ptobably created much due to only hiring top performers, rather than other companies who have to do with a mix of skill levels.
If you're Google, you already have APIs that serve client applications (there's no such thing as a monolithic Google app, because Google can't launch anything at small enough scale to do a monolith). If your engineers really fucked up the first one so bad you can't fix it and improve it (which I don't believe to be the case, nothing that bad would survive production at Google scale, particularly for a popular product like Hangouts), you just rewrite the damned clients, call it the new (version 2, whatever) Hangouts, and don't confuse your customers (yet again) with a maelstrom of wacky new chat-like products and force them to choose to install and learn something new (again).
But, it seems like a real stretch to say that Google secretly has a bunch of unskilled hacks working there, despite all the evidence to the contrary. And, it's even weirder to suggest that if Google is secretly a den of incompetence that starting over from scratch would be a good idea.
My point is two-pronged: Starting over with a new confusingly named/positioned product is bad business. Throwing away the old, functional, product, to launch a new one that is very similar (how different can a chat really be and still be useful and recognizable?) is bad engineering.
I'm pretty sure this is only true to undergrads in the dorms (and people who still think like them). Computer Science has its own form of Medical Students Disease[1]. NIH Syndrome[2] is also more prevalent than it might appear.
it seems like a real stretch to say that Google secretly has a bunch of unskilled hacks working there
it's even weirder to suggest that if Google is secretly a den of incompetence
Nobody said these things, but to address the hypotheticals, a) there is a difference between unskilled and ignorant ("prone to ignore the existence of useful concepts," let's say); b) are there any other forms of competence that might address the ability to launch something impressive that does not fly? Couldn't they be partly incompetent? After all, pobody's nerfect.
We talk about Louis Bleriot much more than Percy Pilcher, and to continue the analogy I'd say Google has gotten very very good at making Gee Bees[3].
1. https://en.wikipedia.org/wiki/Medical_students%27_disease
I do. Software isn't my progeny or legacy. It is the tools in my workshop. If I can use one tool to do the work of five, I'll gladly downsize to declutter and simply my life.
Finding self-worth in the longevity of tools is an emotional anti-pattern.
I gather maybe the Google advancement structure discourages doing nothing and generally being stable when it makes sense, in which case there could be plenty of improvement to be had all around.
Granted, I have no inside information. That just fits the externally observable information and the tiny amount of corporate politics that occasionally makes its way public.
Google has had something like...seven(?) chat and chat-like projects, and each new iteration of "let's kill the most popular chat product we have" seems to result in several new chat-like things, most of which fail and many of which are weirdly complicated and/or confusingly branded/messaged.
I don't mean to be short, but...based on what evidence?