top | item 35723465

(no title)

ISO-morphism | 2 years ago

I believe that the engineers are competent at developing software, and think that a lot of the quality issues are due to engineers abdicating authority over the software to managers and never saying "No, adding in that feature at this point in the timeline is going to make this a steaming pile of shit and I refuse to do it and still call myself a software engineer."

I get that we have families to feed, but I've seen far too much of a mindset shift in fellow engineers into thinking that we're warcraft peons rather than professionals. "The business" has engineering feedback as a necessary input, and speaking individually with steakholders they expect this - they'll push until we push back.

discuss

order

Transfinity|2 years ago

There's no incentive for an engineer to do that. Saying yes and delivering crap gets you a bonus, hard truths get you shuffled around or made redundant. There's no real consequence for delivering crap, so that's what happens.

Contrast this with other engineering fields, where the engineer is truly responsible for the decisions they make. My civil engineer friends face losing their licenses, fines or jail time if they are found professionally negligent. The same is true of other high stakes professions - think doctors, lawyers, even accountants. It's probably not appropriate for most software engineering roles, but for safety critical systems it doesn't seem far-fetched to me.

spacemadness|2 years ago

The product team for the touchscreen control system scoffs at the engineering team’s concerns because “customers don’t care, they’re wowed by the touchscreen at the dealer lot.” It’s only after purchase that the regret sets in. Product teams know this and exploit it. The business side knows they’re selling a steaming pile to customers and don’t really care for engineering’s concerns. In most situations they’ll override these concerns forcefully. It’s a hard pill to swallow as an engineer in these companies.

hilbert42|2 years ago

"My civil engineer friends face losing their licenses, fines or jail time if they are found professionally negligent."

These standards ought to be applied more widely and done in conjunction with tightened consumer law. In many cases the quality of electronics equipment has gone to the dogs. I could give instances of appliances I use that can only be used in a hobbled mode—numbers of published functions simply don't work—because their firmware bugs are so bad.

These devices are so bad they wouldn't pass as early developmental mockups let alone early prototypes in a professional engineering establishment. I'm damned if I know why the hell consumers put up with the situation and haven't revolted, it remains a mystery.

Things won't improve until they do.

alkonaut|2 years ago

The incentive is having a rewarding job where you develop products you are proud of. Once I have food to eat, this is by far the most important incentive for me and it greatly outweighs e.g my desire for promotions, raises and bonuses. If I can have both, great. If I need to choose one, it’s the fulfilling job and product pride every day.

john_the_writer|2 years ago

Yep agreed. If you raise a flag, you'll be looking for work. Head down and build crap, and you have a job for life. I see it all the time. I've lived it.

Sometimes you have to decide, do I build a better system, or do I feed my family. The craft and world suffer, but...

pjmlp|2 years ago

It should be, at least on countries where Software Engineering actually means something, and not a title that one can easy peasy call themselves after a six weeks bootcamp.

speeder|2 years ago

I have a 2 month old baby, and got fired from my last job after 6 months of unpaid overtime...

I am currently trying (again) to get into embedded development. I would gladly take the job of the guy that refused to make shitty software, if that means I can keep feeding my baby. Unless it would be too unethical. (I refuse to do work that will kill people, for example I won't work for Palantir, companies that make sketchy software related to flight controls or medicine or other critical applications and so on... but the car media player? yeah, I am willing to make a crappy one if I get the job, I prefer to make a good one, but if my boss want a crappy one... then what I can do? overtime to get a promotion, clearly doesn't work ;) )

vocram|2 years ago

> I refuse to do work that will kill people

Isn’t a crappy UI on a car something that could kill people?

lifeisstillgood|2 years ago

We completely understand - and we would all make the same decision.

Which is why (in the UK) I view the rise of strikes and unions positively - workers need to hang together - set standards that they won't go below, and also ensure the spoils are fairly shared out.

Recently the deputy governor of the bank of england said "inflation has made everyone poorer - get used to it not ask for wage increases". Which tone deafness misses the point that this is not about wanting a 10% pay increase - it's about how is society structured and how do we share the vast wealth.

The question is not how do I get more, it's how do I build a fair system that inwill be part of.

we are playing the sociopaths game as if it's the only game in town. There should be no game we all play where the rules include not feeding babies. That's a bad game

the_overseer|2 years ago

The industry works as follows: the OEM (Daimler, Toyota etc.) says they want a software spec implemented. Other companies (Tier 1 suppliers) bid to win the contract. The cheapest usually wins.

If you have a company and refuse to take the crazy deadlines and low quality and low pay then don't worry, there is another Tier 1 supplier across the street who will do it for you. OEMs know that you need them more than they need you.

pySSK|2 years ago

And on top off that, some product manager at Mercedes might say they absolutely need let's say Atmos in the next release and ask the Tier 1 to implement it. The Tier 1 usually uses multiple Tier 2s. The Tier 2s say they need more memory, but that's not practical at all because that hardware was fully validated years ago and you just don't make incremental changes to automotive hardware, and there won't be a hardware refresh for another 4 years. It is in none of the tiers' interests to say they can't do it and lose out on a multi-year contract so they do the best possible job within the constraints.

alkonaut|2 years ago

That’s fine. But the worst case response time across the entire UI must be the first item on that spec! That spec is of course the responsibility of the OEM to create. Where this goes wrong I don’t know but competition, price sensitivity etc doesn’t explain it. Having soft and hard limits for response time seems obvious and someone either forgot, or they had a meeting where they (the OEM, after deciding on a solution and having it implemented) said “ok we can save $20 on the BOM by going for a cheaper SoC if we accept 200ms response times instead of 50ms” and that should basically be criminal due to the safety aspect.

Lio|2 years ago

Something missing here is that the Tier 1 supplier will take one look at the spec and know that latency hasn't been mentioned or considered.

They will not tell the customer this because either the customer doesn't care, so why waste time and resources

...or when the customer realises they will open a Change Request to fix the issue. Change Requests are how you make an actual profit on unprofitable, low-balled contract and probably gain an extension on the unachievable timeline agreed to win the bid in the first place.

The "customer" is the person that signs the contract not the user of the product. They probably don't care that it's a pig to use. It just has to look OK in a presentation to their boss (...who isn't going to ever use it either).

If Tier 1 suppliers didn't behave this way they wouldn't be able to pitch bid responses cheap enough to win bids. The responsibility for crappy products lies entirely with the product owners. Only they know what's good enough.

cbertoldi|2 years ago

That was true and it might be true for most of the production process, but as you may read in this article https://arstechnica.com/cars/2023/02/mercedes-ceo-tells-ars-... they are actively working to change and speed up the software development process:

Källenius explained the current system to Ars Technica like this:

    "So some engineer in Sindelfingen comes up with a concept. You have to write that down. You have to send it to the supplier that needs to be quoted. Then procurement people need to negotiate with each other. Then that supplier goes to some sub-supplier in Eastern Europe and wherever they do. It goes back up the chain again. It gets tested and nine months later, you have actually changed something in your infotainment system. Now you go into the ESH [Mercedes' electric Software Hub]. To say, let's change this and you just do it."

usrusr|2 years ago

Working on a product vs working on a project. The latter means that the usefulness of the thing produced is a non-goal because the customer is not a user.

JenrHywy|2 years ago

It's very rarely a developer's role to say outright "no". It's our role to make trade-offs understandable by decision-makers, and to clearly articulate why we think something is a bad idea. Sometimes (usually...) the broader business has different goals that just delivering quality software, and I think part of being a professional is understanding that.

There is, of course, a time and a place for a hard "no". I've genuinely threatened to quit rather than implement a particularly user-hostile feature in the past.

ISO-morphism|2 years ago

I completely agree with you, and I think you've worded this better than I have.

I was trying to advocate for the middle path, where there's healthy communication from both sides, to the point that developers trust when "the business" makes a decision - not to the point of engineering completely blocking the, unquoted, business.

kaetemi|2 years ago

Yep. It's part of your job to tell managers "yes, it's possible, but it'll negatively affect performance in a significant way because of such and such hardware limitations, so it's not the most valuable feature to implement at this time".

the_overseer|2 years ago

And it's part of the manager's job to tell you "I agree but don't care. Do it anyway or I will find somebody else to do it. For cheaper." Always remember that you are replaceable.

When the newborn is crying and wants food you do what you've got to do. And there are many people like that.

thomasz|2 years ago

It’s your job to tell them if the requirements cannot be met and that something’s gotta give. It’s his job to decide what, and it looks like he’s choosing latency When push comes to shove.

iSnow|2 years ago

I don't own the company. I will push back a bit, but if management insists on using the foot-gun, why would I get on their bad side? They are adults as well and if they don't agree with me, I do as they tell me.

emodendroket|2 years ago

I often see sentiment like this here but I think there's a disconnect between the sacrifice you're expecting people to make and harm caused by the work. It's admirable for someone to put their own job security second to obeying really harmful directives, but something that's going to make the music system laggier?

szundi|2 years ago

Those managers might be right from a sales point of view. Until we buy all this, they are right.

Let’s see that Tesla can change this or not.

eviks|2 years ago

Nope, it's too crude a metric for such features