4 ms·
How companies should hire developers
- MHollender 18y ago"They are looking for XP/Agile people and this simple requirement will excite many talented developers," Well it wouldn't excite me. Perhaps they work when you are building a product, but in billable consultancy they don't. It's just not somethign customers would accept. Neither would they accept Waterfall or anything like that, of course. They simply want to tell you their problems, get quoted a number of days, and then do it. The don't want to get billed neither for up-front big design planning nor for writing tests or story cards, nor double the time (pair programming), nor for anything else. Just 1) explain the problem (for free) 2) program it (for charge). This is how they think. And you won't ever convince them to do otherwise.
- marcoberi 18y agoGreat post!
- biohacker42 18y ago2) Be “true believers” in Agile methods, including story carding, pair-programming and test-driven development. I am a true believer in TTD, continuous integration and weekly team based code reviews, but pair-programming is crap. Plus, A LOT of very good developers who also love TDD and a lot of Agile/XP practices feel the same way about forced pair programming. Demanding it is a good way to lose a lot of great talent. But how could, lets say, demanding TDD ever cost you talented programmers? It won't, ever. There's a lot of great stuff in Agile/XP (that's also in the Mythical Man Month), but don't drown in the cool-aid.
- menloparkbum 18y agoBut how could, lets say, demanding TDD ever cost you talented programmers? It won't, ever. This is wrong. TDD may or may not be useful. I'll give it the benefit of the doubt, but in my experience it has been used in a "cargo cult" approach to programming. The last startup I spent significant time at was eventually destroyed because they hired an "Agile/VP" of engineering. He then hired a bunch of guys who could do "TDD" but didn't actually know how to write software.
- biohacker42 18y agoBut that's not because of TDD, it because of people who couldn't write software. Imagine if those people were also bad at math, would you say math is only occasionally useful? Obviously I agree about "cargo cult" programming, the worst of it is when someone has a religious affinity for pair programming, but thinks testing is a waste of time.
- ardit33 18y agoI think I am a good programmer, and I think TDD is aweful. Using unit testing, has its place, especially when working with parts that have clear input/output ranges, or in large systems, where your piece of code has to be integrated somewhere else, so you want to make sure it works before committing it. BUT, programming according to Tests, is not a good idea. Tests are not the END RESULT, not the ultimate user of your code!!! Instead of tests being for what they are: testing your input/output, they are being used to design systems. So, you are designing your programs according to tests, and not their ultimate functionality. Here is another thing that I think: Weaker programmers prefer TDD. It is like they want validation b/c they are unsure of what they are writing.
- biohacker42 18y agoWorking on large and complex application becomes near impossible without extensive unit test coverage. If you're using unit test of all things to guide the design of your application, you are off the deep end. That makes you a bad programmer, it doesn't make TDD bad.
- silentbicycle 18y agoPart of the problem in discussions like these is that people aren't really clear whether they're complaining about testing or TDD in particular, whether they're arguing about the benefits of TDD specifically, unit testing, or testing in general, and everybody involved may read the wrong thing into any ambiguity. I, for one, would not argue with unit testing (particularly for libraries) or regression testing, but I think that an insistence on TDD can be excessive.
- mickt 18y agoWhat is TTD? Or do you mean TDD (Test Driven Development http://en.wikipedia.org/wiki/Test_Driven_Development http://en.wikipedia.org/wiki/Test_Driven_Development)?
- biohacker42 18y agoNow if there was only test driven spelling, I wouldn't keep embarrassing myself on the inter tubes.
- mickt 18y agoI was almost embarrassed to ask as I thought it's something I should know! 8)
- danw 18y agoWhy do you believe pair-programming is crap? I have found it very useful for spreading knowledge amongst a team and for ensuring a tricky or fundamental piece of code.
- silentbicycle 18y agoDo you mean occasional, organically-happening-as-necessary pair programming or mandatory-all-the-time pair programming?
- raganwald 18y agoYour remarks about pair programming may be true. However, I have trouble believing this makes it a poor advertisement. Consider a hypothetical expert programmer who like pair programming but hates Ruby. Such a person could easily say what you just said. And I know one fellow--who lives in Canada--who might not care to relocate his family to Jacksonville. He could easily write what you just wrote, this time about the fact that the offices are in Jacksonville. All of these things--pair programming, Ruby, Jacksonville--are going to cut down the number of talented programmers who want to work for Hashrocket. Given some set of working conditions, I believe the OP does a good job of explaining why the advertisement does an excellent job of attracting the kind of people who would be interested in working for Hashrocket. The people who don't like pair programming, ruby, or Jacksonville are not the "market" for the ad.
- known 18y agoOne word. Passion. Hire developers who are passionate about programming.