So are we saying that software engineering can be at odds with your ability to write code? I'm not sure most people would say they are quite the dichotomy you present here.
While I agree it's often a team-sport, being able to create amazing things yourself (i.e. Git, Redis, RollerCoaster Tycoon, Rust and other single-person projects) that others struggle to replicate or contribute too shouldn't mean you're a bad software engineer.
Not quite. I am saying that there is a meaningful difference between the process of working with other people over time and with resource constraints and writing software alone without time or resource constraints. Being skilled at writing programs doesn't harm one's ability to make decisions according to engineering principles.
I actually don't know for certain that writing Rollercoaster Tycoon in assembly was the not only possible way of doing it. But in popular consciousness it is usually discussed as a wildly difficult thing rather than the most efficient solution to a problem. That's anti-engineering.
There isn't really a good set of words to break down categorization. But I do think that the skills involved in the large majority of software engineering roles are pretty much entirely separate from the skills involved in writing some exceptionally difficult program.
If we use a house building/construction analogy, in this comment chain we're saying software engineering is inclusive of house design/architecture down to wall construction, plumbing, electrical, etc. Following that analogy then I think when Xeoncross is asking about "hardcore engineering" that really would equate to new engineering products for the house building industry - like some new tech like solar roofing shingles (instead of raised solar panels).
There aren't a lot of companies that are doing that in software. For example, there are a lot of SaaS businesses doing things that might have interesting engineering problems to solve but those engineering problems usually don't result in creating new products for software engineers to use. Rails is a good example of a byproduct from a SaaS business, React is a byproduct of whatever Meta does.
I used to be an engineer in a traditional engineering field in heavy industry, now my job title is "Software Engineer". I still consider myself an engineer, and what I do with my team to be engineering.
Creating amazing things yourself that others struggle to replicate or contribute to is more in the realm of craftsmanship, in my opinion, and not engineering.
I can appreciate both good engineering and good craftsmanship. And I also often find myself doing (and enjoying) what I would consider crafting and not engineering - the lines can be blurry and as programmers we often end up doing both (sometimes at the same time!). Nothing wrong with it. But it is something that is distinct from engineering, in my opinion.
> So are we saying that software engineering can be at odds with your ability to write code?
This is absolutely the case and my main struggle as a SE. In my opinion this is all arbitrary and companies could easily structure themselves to allow engineers to focus on what they do best, instead of adding a ton of overhead with tasks that someone else that is not trained as an engineer could do. The response seems to always be the same and boils down to "you need to add business value and that includes all these other easy but time consuming tasks".
I seriously doubt that is the only way, but I haven't build a large software company so ultimately it is hard for me to say, however I suspect that if an engineer's time is maximized to practice engineering, it would bring a lot more business value in the long run.
Not many devs create the core of what is arguably the best programming language available today as a personal project. However, it's true that what it has become today is now the work of many.
While I agree it's often a team-sport, being able to create amazing things yourself (i.e. Git, Redis, RollerCoaster Tycoon, Rust and other single-person projects) that others struggle to replicate or contribute too shouldn't mean you're a bad software engineer.