Company I work for issues a basic data structures test to be completed in 1 hour for all resumes worth their paper (about 10 to 15 out of 100 candidates). The test boils down to 'fill in these two functions'. About 20% finish both functions correctly in an hour (I still had an infinite recursion at the 1 hour mark and submitted a correct entry 10 minutes later).
In conjunction with a phone interview we typically only have an actual sitdown with 2 to 4 candidates out of the initial pool of 100. We recruit out of college so resumes get handed in like candy, but this process has effectively helped us find candidates that are at least capable of learning the monolithic code base and getting fully up and running in a few months.
Our company still has an absolute terrible code base. It is very feasible to nuke skilled programmers once you have them.
Isn't this what happened throughout the industry? (with a very few exceptions).
This is exactly what makes my belief about "great programmers" just went out of the window: no matter how great an individual is, the fact that plenty software houses have terrible code base show something else.
People can blame the businesses, the time-to-market, the deadline or whatnot and I believe you guys.
But at the same time, are you being fair toward your profession at the same time?
If great programmers do exist, I'm expecting them to change these ugly code bases everywhere to the point where 50% of any companies out there would have good code base (and that includes unit-tests)
Unless management has made the decision to invest in a solid-wall backstop of functional tests, then no amount of great programmers can clean up a codebase. I've known and learned from some of the best coders alive, and none of them would wade into a known-good codebase that they didn't have solid experience with or responsibility for and start refactoring. Code that they were on the hook for? Open season. Code that someone else was going to get the call on at 3 a.m.? Wouldn't touch it with a ten-foot pole.
Given that, I wouldn't expect '50% of any companies' to be good. "If it ain't broke..." is really good advice about 95% of the time. If you're 50-100% overbooked, you don't screw with other peoples' code just to try to make things better around the office.
In conjunction with a phone interview we typically only have an actual sitdown with 2 to 4 candidates out of the initial pool of 100. We recruit out of college so resumes get handed in like candy, but this process has effectively helped us find candidates that are at least capable of learning the monolithic code base and getting fully up and running in a few months.
Our company still has an absolute terrible code base. It is very feasible to nuke skilled programmers once you have them.