| It's a bit sad that although coding tends to attract introverts, most SW development (especially in a work environment) fundamentally needs to be more social than other engineering disciplines. If you can find a job where you, and only you, are writing code, and not integrating it into a larger piece of SW, then everything is fine and you can work alone. This is incredibly rare. There is very little in SW that is clearly objective. How to architect the code well, rules about when to reuse code, when to abstract, whether to use a global variable, how to name things, even whether to use GOTO are all opinions - not facts. As such, the SW world has to put in a lot more effort in campaigning for what they consider good design and good coding practices. Look at code reviews. This is, at its very core, a social practice. In my experience, most of the discussions in code reviews do not involve bugs (which are very objective), but are dominated by style and design discussions, which are subjective. In most other engineering disciplines, things are a lot more clear cut. There usually are not 20 different ways to achieve something, and the criteria for quality is much clearer. I too am an introvert. But I also realize that complex SW development is at odds with introversion. I can lament the situation, but I cannot blame extroverts for this. They didn't come in and crowd things. It is inherent to the beast. As a SW developer, I do need to influence my fellow developers (as well as my customers). I have to learn those skills. One can do that while still being an introvert. (Not meaning to invalidate your point about RMS and organizations and social movements. I agree with you on that. But for SW development, some level of social skills legitimately gives you an advantage) |
I'm not sure what caused it. You'd think the opposite would have happened, in fact, since our tools are supposed to be so much better now. But I wouldn't dismiss the possibility that part of it's something along the lines of changing interests and work styles for developers entering the field.