It sounds like most of your stress is being caused by not having a Product Manager. You should find out what the deal is there from your manager, and if you don't like the answer, then consider leaving. Beyond that I would say, don't leave a job just because it isn't a dev utopia when you walk through the door. A better measure of when to leave a job is when you know that your goals and theirs don't align and never will.
At the end of day, the customer does not care if, for example, you implemented their project as giant if-then conditional; as long as it works. It is the craftsman in us that makes us write quality code; it is something we ultimately do for ourselves.
Let's take it out of the realm of software for a moment. Let's use the motorcycle metaphor, since this is a ZATAOMM thread.
At the end of the day, the customer does not care if, for example, you fixed their bike sloppyily, quickly, or haphazardly; as long as it works. It is the craftsman in us that makes us care about the nature of our work. It is something we ultimately do for ourselves.
Bullshit!
It is true that no customer is going to care how we organize our tools in the mechanics garage. We should not be having long arguments about whether 2 storage cabinets or one make more sense for holding our screwdrivers. If at the end of the day, the radiator is replaced in the same way, and the coolant is cycling correctly, then both the slow and steady and the quick and haphazard mechanics did a good job, however they accomplished this fact.
But the ENTIRE POINT of the book, is that these two mechanics WILL NOT accomplish the same job. Sure, they may both deliver the same result in 7 out of every 10 jobs they are given, but those last 3 matter! And are almost certainly going to be the hardest of the 10.
More direct to your point, however, customers ABSOLUTELY DO care whether we replace the radiator with a cheap chinese knockoff that's likely to break in 1k miles, or the 5x more expensive overseas german version. And they ABSOLUTELY do care if the haphazard mechanic or the slow thoughtful tedious one does the job.
They just don't all care equally. Some customers want the cheap chinese knockoff (the giant if-then conditional). If it doesn't work, they'll just throw away the bike and buy a new one. Other customers want the german and thoughtful mechanic, and will pay accordingly.
As the customer (or rather, as the maintenance programmer at the end so one of the customers) of your software, I very much care. As a requirements provider for the actual users, I also care and they do as well.
Your giant if-then conditional "works", but is not sustainable or maintainable. It is fragile and poor quality. Quality matters.
I once got to speak with a materials engineer who had the task of trying to discover why a drone aircraft (ostensibly made the same way as always) was suddenly failing very frequently. This was, essentially, a one-off product. They had one customer, and built the drone from off-the-shelf components. The system was driven by a basic two-stroke engine, it accomplished what was needed. This worked for years, until it didn't. It turned out that the maker of the engine (which included the drive shaft) had changed their source (from the US to another country, but that change itself is unimportant). What was important was that while it was the same (weight, power, fuel consumption, etc.) engine, the manufacturing of the steel components was different. They had different qualities and the new one had a tendency to fracture due to the low quality steel (this took quite a bit of analysis to identify since the aircraft were, well, crashing and breaking apart).
This quality (the quality of the steel) was not in the customer specs. They didn't think about it, it "just worked". Until it did matter, the aircraft were failing at higher rates than anticipated (driving up costs and losing out on the utility of the aircraft). The drone manufacturer was also risking losing this contract, which was quite lucrative to them, since the MTBF for their product was now below their promised thresholds.
If you don't pay attention to these qualities, you'll end up like them. You'll have a "working" product that suddenly fails and drives you out of business, or otherwise diminishes you. Or, if you're the engineer or programmer, you'll give your customers a poor quality product that doesn't actually work for them, it only seems to. Until it doesn't, because you gave them a fragile piece of shit.
At then end of the day, a great many people, firms, and governments are finding that they care about the increasingly fragile set of design, engineering, and control kludges Boeing have had to strap on to the 737 airframe in order to 1) accommodate the initial low-clearance landing-gear design (intended to facilitate cargo handling), conflicting with 2) greater demands for efficiency through 3) ever larger ducted-fan engines 4) mounted ever further forward, and higher, on the wing resulting in 5) AoA control issues under high-throttle conditions answered by 6) a pilot control defeat countermeasure which has resulted in multiple crashes and the loss of over 300 souls.
The customer doesn't care about the implications of design decisions, until they do. Clean, simple, stable, predictable, maintainable, modifiable designs deliver quality performance over a longer period of time. Complex, kludgy, unstable, unpredictable, tightly-coupled, unmaintainable designs will eventually bite you in the ass, or scatter your body parts over the landscape.
The fact that the implications aren't clearly discernable in advance does not mean that they do not matter.
At the end of the day, it's a lot less likely to work if you write a giant if condition. So yes, the customer won't care why it works or doesn't - but quality code has impacts they can feel.
My experience has also been it's a not-entirely-Zen experience extending giant if conditions even if they technically work fine for the current use case.
I would recommend watching GroundHog day with Bill Murray. The key takeaway from this film I think, was be the brightest light in the room, be your most attractive self, and everything/everyone else will sort itself out.
This turned out to be an article about tech workers unionizing ... which I just don't see that as a solution in the tech industry in general, especially when companies have the choice to offshore their staffs. At the end of the day, we developers are well compensated, and have great mobility. If you find yourself getting a raw deal, just pickup your keyboard and go somewhere else.
This article basically describes the end-game of gentrification: a gated, affluent, homogeneous community devoid of uniqueness. On the bright side, those who have been displaced have now migrated across the tri-state area, and are reviving cities and neighborhoods long forgotten.
There is nothing wrong with Amazon getting an incentive. The question is are these cities doing their math and offering incentives that are both competitive and reasonable, that won't leave their citizens out to hang.
On one hand, I have to agree that China's closed/censored society is directly at odds with the product offering of a company like Google ... on the other hand, does one simply disengage from such a massive market as China? Perhaps Google is betting on a future when there is greater freedom for the Chinese people.
I personally think Google's best approach would be to pay hand-over-fist for the best Chinese AI/ML experts to emigrate to the US and do their work here. However, Google seems to be taking the shotgun approach of employing more experts in the short-term while guaranteeing them less job stability in the long-term.
I think you're right in that it really does depend on when China becomes a free society. Personally, from what/who I know from China, I don't see this happening within the next decade. I expect political instability within China to reach a tipping point, after which we'll either see a very slow global liberalization or a definitive move towards a more totalitarian Chinese government with a modern twist.
Honestly I don't know why Google has any faith in the good will of the future Chinese government. As has been established for a very long time, China needs foreign expertise more than any foreign company needs a labor or consumer market within China.
I think Google just wants to recruit AI talents from China and uses research from the AI center in China in markets it is not banned.
If so, they don't need to interact with the government that much like when they offered a search service to Chinese netizens.
I can think some companies that just do this. Hulu has an office in Beijing, although it doesn't offer video streaming service in China. And Grab has an office in Beijing too, although it only targets Southeast Asia market.
The plan calls for homegrown AI to match that developed in the West within three years, for China’s researchers to be making “major breakthroughs” by 2025, and for Chinese AI to be the envy of the world by 2030.
Really? Major breakthroughs can be mandated by a centralized government? Back in the 80s-90s, Americans were convinced that Japan was going to eat its lunch. It gives me some hope in knowing that we still suffer from this complex.
US government basically mandated the Moon landings, and they happened within 12 years from Sputnik. So I'd say yes, sometimes a government can just mandate progress.
True, but a lot of those were more specific in their end goals. What exactly is China going for here? Sounds like just general AI research and advancement. That's not a bad thing, but I think it'll probably end up more like the Human Genome Project. We'll get some great fundamental science and advancement out of it, but it's probably going to lead to more open-ended questions instead of the world-changing end results that get hyped at the beginning.
> Dont DARPA and other US gov research groups have a pretty long track record of successful projects?
And many failures too. You can't just buy whatever innovation you want with money; if that were true we wouldn't still have energy problems and powerlines for distributing it.
If you don't allow for failures, you won't get successes either. That's the problem of today - research is increasingly being done in market-driven style, which strongly favors short-term work that the sales department can turn into perceived miracle over long-term, uncertain but possibly high-impact projects.
Which had one of the best ROIs of the things US spent money on. Space access and space-related tech is responsible for so many advances we enjoy today that's hard to even try and list them (some of them you can read about here, though: http://wtfnasa.com). So you kind of prove my point - that a government can literally mandate progress if they back it up with funding :).
I wasn’t trying to refute you, just pointing out that it was a huge cost.
I’m skeptical that’s our current political climate in the US would be willing to do something like that again unless there becomes an “AI race" (which isn't far fetched, but not guaranteed either).
Japan has a significantly smaller population than China (and the US). I’m not sure how this eluded commentators in the 80s, but it seems a major difference this time around.
It's not a difference in terms of using AI for automation, however. All the recent advances in AI are strictly on highly specialized tasks, have had (and probably will have) little impact on subsuming general task execution. Thus it's unlikely to replace an entire human worker foreseeably soon.
Based on their keen interest in AI, the Chinese gov't presumably doesn't yet appreciate that success in task-specific AI does not assure the advent of AGI any time soon. I suspect like the Japanese's 5th gen AI initiative, China's quest to give life to terra cotta warriors also will end in disappointment, before the passage of several 5-year plans, anyway.