|
|
|
|
|
by elihu
2792 days ago
|
|
I suspect that when most organizations hire software developers, they're not really looking for great programmers. What they're really looking for is people who are capable of dealing with enormous complexity without getting confused. Those things might sound related, but I don't think they're the same thing. I expect that most software developers don't spend most of their time designing beautiful, elegant solutions to interesting problems; they spend their time blundering around in an over-complicated and poorly designed code-base using tools that barely work and trying not to trip over myriad corner cases or buried in technical debt. (Even in well-designed systems, you're often still dealing with mountains of technical debt inherited from the industry at large.) Maintaining bad code is in a lot of ways harder than creating good code. Or at least, a person good at one of those things might not be good at the other. I have a related theory that software development as a profession is starting to increasingly resemble being an air-traffic controller; as the actual programming parts get easier (languages, tools, and libraries get better, awful code-bases notwithstanding), the non-programming tasks tend to take up more and more time. So, you end up spending a lot more time talking to people and figuring out what to build. |
|
When we go into the world of unsolved problems that someone solved and we have to maintain them, and we can't understand them immediately, we call them bad. It's my gut reaction almost every time I'm confronted with something that doesn't immediately enlighten me, even thought I know it's the wrong reaction.
We are always comparing everything to the simplest and most solved problems that were easy for us to understand. When it isn't so easy we call them "bad".