Hacker News new | past | comments | ask | show | jobs | submit login

Good... the industry for developers has been slowly moving in a direction that seems to be trying to turn us into glorified auto mechanics. This is unacceptable. Let's keep supply tight!



>Good... the industry for developers has been slowly moving in a direction that seems to be trying to turn us into glorified auto mechanics. This is unacceptable. Let's keep supply tight!

I'm not sure what this is supposed to mean. My brother is an auto mechanic and the type work he does constantly blows my mind. Diagnostics, transmission/engine rebuilds, you name it; especially with these newer models.

With the exception of a few, there's nothing special about what we do. I don't see how we're any different than "glorified auto mechanics".


I wouldn't be so fast to say there is nothing special about what we do. It may seem that way because we are in it day in and day out...but in the same way that I am fascinated by the work that others outside of my industry do(farmers, mechanics, small business operators)...they are fascinated and often dumbfounded by what I do(and I am no rocket scientist).


Unfortunately a lot of people in our industry have some kind of superiority complex.


Auto mechanics are in much greater supply than and make a much smaller salary than software engineers, and repair/diagnostic work is much different than the design work that seems to be less and less of my job. We're more and more in a place where we're just stringing together other people's rent-seeking SaaS services and putting up with all the resulting bullshit, rather than actively making our lives as developers easier by making stuff that results in less work.

That, and our employers are taking 99% of the value we create, when that figure should be closer to 90%


I agree about the highly-skilled work auto mechanics do, but the solutions are more scripted, and the stakes are usually lower.


Are the stakes really lower? A simple brake job gone wrong can literally kill people. I can't remember the last time I miscalculated profit/loss for a client where the result was a fiery death.


Maybe a better way to say it is, software development usually has a bigger financial consequence. And that consequence scales along with the skill and judgment of the developer.


>and the stakes are usually lower.

You don't really mean this, do you?


Auto mechanics at least have the common sense to repair things the same way, so that the next mechanic can work on the next fix in a few hours instead of first having to spend 10 weeks getting into the “mindset” of the previous mechanic.

Seriously, it’s not best practices when everyone apply them differently.


...but software engineers are not "repairing" things, we're building systems. Mechanics repair things in a similar way because there's literally repair manuals from the manufacturer that tell them how to repair your vehicle because _the manufacturer_ has thought of how to repair things.

You'd be surprised how much variation there is in the solution when it comes to autofabrication, and yes there's similar amounts of "figuring it out" that there is in the software world.

Quite frankly the automechanics <-> software engineer analogy is apples to oranges.


I mean, mechanics aren’t exactly happy that it’s become like that though.

Used to be that they could repair every car, but now they are tied to brands because they need certifications and special tools. Not because the manufacturer needed the tools to build the car, but because without them, anyone could repair it.

> we're building systems.

Someone has to maintain them.


My overall point was how the roll of a mechanic is not really the right comparison to a software engineer.

There's always been factory repair manuals, and while repairs used to be something that were more common across brands and something more accessible to the weekend wrench turner, that doesn't change that the manufacturer had explicit guidance that was there to follow.

The "specialization" aspect of things from a mechanical standpoint is a by product of additional complexity and advanced proprietary systems. Consumers (and regulators) ask far more of a modern car than what could be delivered with simpler, purely mechanical systems. Whether it's safety, emissions, reliability, or just features, as those evolve and progress, repairs and maintenance get more complicated and involved.

>> We're building systems

> Someone has to maintain them

Software maintenance and vehicle maintenance is fundamentally different. Vehicles have wear items that need replacing (brakes, hoses, tires, etc), consumables that need to be changed (oil, lubricants, belts, coolant), and parts that are subject to mechanical wear. Systems don't have any of those things.

The closest analogs I can think of would be upgrading a dependency or maybe bug fixes. While some bug fixes might be small changes to fix typos or incorrect logic, some bug fixes may be significant enough to necessitate redesign of subsections of the software. You wouldn't expect your mechanic to redesign your car's brake system because you found it wasn't stopping as quickly as you'd like it.


There are many, many ways to write even a small piece of code/functionality and small sub-optimal choices can lead to tons of entropy down the road. To compound this, almost every solution is going to be different, and there just isn't a '300 Page Manual on Servicing Your Jaguar' equivalent for every possible software solution.

While I get the gist of what you're saying, I think building and repairing physical things is different from building and repairing more abstract things.


I have never hired a contractor or mechanic who had good things to say about the work done by the previous guy.


It’s not even that though. We have open source projects with multiple private companies are supposed to work together.

Which they do, but it took years of setting up governance to get people to agree on what the best best practices were. I mean, at that point it’s not really best practices anymore, because that implies that they have a broad adoption.


"Glorified auto mechanic" is exactly how I'd describe how software development is viewed in Europe. There is a much bigger emphasis on "just" buying software from Microsoft and SAP to "solve" problems.


It reminds me of the ancient joke about how in Germany if you tell your neighbour you are an engineer he will introduce you to his daughter, in the UK he will ask you to fix his microwave.

Except these days it seems the whole of Europe undervalues software engineering.


It's not so much different in America other than that we get paid more. Most companies "hire some geeks" to solve what they see as just a different kind of plumbing without physical pipes. The average person doesn't respect software engineering so it's no surprise that management doesn't either. So that extra pay we get is mainly to compensate for the mental abuse we're guaranteed to endure.

Also, most developers in America don't make that much more than European developers. It's just that we happen to be willing to pay seasoned developers quite a lot more. Most junior and mid-level developers here don't make much more than $90k, and many of the companies that are willing to pay at least that or more are located in areas where the cost of living makes that salary abysmal.


Also, most developers in America don't make that much more than European developers. It's just that we happen to be willing to pay seasoned developers quite a lot more. Most junior and mid-level developers here don't make much more than $90k

But the ceiling for top developers in most of the world is below that. Even here in the UK, where salaries are starting to get pushed up a bit, there are still only a few employers who would beat that today, and mostly in places like London where cost of living is also relatively high. Hardly anyone is making the kind of money that you see devs with as little as 5 YOE routinely making with half the companies in SV, even people with multiples of that experience who would be staff/principal level in a big US tech firm.


Yeah, software is quite low status here and the salaries are often a joke.


What on earth are you all talking about? Explain it to me like I’m 5.


The average salary is like 50k (with many positions going lower) and you are basically viewed as a manual worker.


US devs get >$100k a year, EU devs get <70k€ a year.


$100k is 83k€, and you should probably include cost of living in these comparisons. Nobody has college debt in Germany for example.


I wouldn't actually call real estate ownership cheap in Germany. Yet, many engineers from the US own their home.


Ouch!


This *really* depends on the company.


I don't think supply is the problem.

It's simply that demand is skyrocketing, but we didn't make software substantially easier in the last decades.


We also didn't improve our standards in any meaningful way.

Most software is complete shit, and we're lucky when the end user doesn't notice too much. As a software engineer, I'm appalled by the average "web app" both in terms of how the product functions and the code making it happen. Accessibility is still a complete afterthought and the documentation on accessibility standards is too confusing.

The only reason many of us are still around is that no one has truly figured out a good replacement for the average software developer yet. The closest we have is things like Wix and Squarespace. The junior and mid level developers of today are ripe for obsolescence and it's a matter of time before someone finally figures out how to give small companies the power of software development without all of the overhead they currently endure.

The world also doesn't need that much software, hence we don't necessarily need more software developers all the time. Software scales with problems to be solved, not with population. Those paying our bills need to figure out just how much of their money they are wasting on what is essentially the same kind of software development that took place 30 years ago.


The scary part is that researchers have been working on making software more reliable for the past ~50 years, with really good results. Industry? Nah, except for a few niche cases, we've been adopting a worse is better approach, thank you very much.

It's only been a few years since developers (outside of these niches) stopped laughing when hearing about sound static type checking, static analysis, model checking, object capabilities, abstract interpretation, message passing APIs, getting rid of NULL, reactive programming, stream programming, let it fail, transactional memory, linear types, etc.

Of course, at the same time, we moved everything to web programming, where everything is broken for different reasons. Research has been studying that for a couple of decades, too, so I figure we should start using more robust paradigms within 10-20 years.


I'm with you in that we need better accessibility, but I don't think that we reached peak software.

I think, we didn't scratch the surface of the true demand yet. But, yes, we should get dramatically better in so many ways.


The systems we can build today with a small team are much more complicated than what we could do ten years ago. It's just that we also somehow managed to solve essentially the same problems we solved ten years ago with much more complex software.


Yeah you’re still gonna write CRUD apps, just with two different databases, 5 queues, 12 microservices and tons of terraform to glue it together


...or worse, docker and kubernetes.


Scale and uptime - systems today are designed to scale and handle faults in ways that were impossible in the past. That brings complexity.

Larger teams also ship faster, there's a lot of complexity to enable that collaboration.


Larger teams ship faster?

My experience is that in most situations larger teams ship slower, precisely because of the collaboration costs you mention. There are ways to reduce the dependencies, but most organizations can't get there.


> handle faults in ways that were impossible in the past

Like what? Earlier systems worked if your computer worked. Adding a server is a DRM move and doesn't help the user with reliability - usually the opposite.


Adding a server helps with the reliability of my backups :)


If anything we've made it harder. You want a senior engineer who also can run k8s and is well versed in a multitude of languages. Don't get me started on tooling, especially in the JS landscape. I'm amazed engineers pick it up without having grown up with it.


Clearly have not been abused by a company wanting you to do 5x as much work as one developer should. We need many more software engineers and many more innovations in the industry so software engineers don't suffer from chronic burnout and being underpaid.


I don't understand your post - is it bad to be a "glorified auto mechanic"?


Is it bad to not be seen as a professional and instead as an interchangeable cog? Yes.


An auto mechanic is not a professional?


The skill required to be an auto mechanics is hugely underrated by people that doesn't know how to work with cars. They are one of the few craftsmen jobs still left.


The issue isn't whether auto mechanic satisfies some platonic ideal of a professional, the issue is how one is treated by society or by their employers. I know little of the experience of auto mechanics, but I don't think its a stretch to say that society treats them as interchangeable cogs moreso than, say, doctors or lawyers.


ironically your very view as stated here is simply contributing to how "society treats" them, no?


Sure, you can see it that way. Or you can see it as attempting to make a different point casually without having to avoid everyone's personal landmines and bugaboos.


what is exactly your point? your original post said: "Is it bad to not be seen as a professional and instead as an interchangeable cog? Yes."

now you're talking about "society," but you were the one who compared them to cogs to begin with, lol.


My comment was in response to you apparently not understanding the distinction being drawn by the OP between software development as a relatively high status profession and the relatively low status auto mechanic career. The OP was alluding to the waning status of being a software dev since the 2000-2010 heyday. Injecting your opinion regarding my take on the status of the auto mechanic profession was entirely unwarranted.


I understand the comment - my point was that I don't consider being an auto mechanic to be a low status, or shameful profession to begin with - hence my original reply to begin with. I believe it is you who did not understand the point of my original comment. Oh well.


Oh, so you were in fact feigning ignorance as some kind of bad Socratic method? I figured as much, but I like to give people the benefit of the doubt. It's also a mistake to assume a casual example to make an entirely unrelated point is representative of someones views.


You don't have to step on other professions to lift yourself up mate.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: