I've worked with many developers over my fifteen years of professional software development. Sometimes I just can't help but classify them. But I bet you've noticed this too: there tends to be two main types.
If you've never heard of unit testing or avoid it because it slows you down, you're probably a cowboy. Cowboys can prototype concepts to prove viability before you've finished describing the idea. They can hit unrealistic deadlines and still have plenty of time to gold plate. A cowboy is guaranteed to get you to market before your competition. But God help you if you put their code in the hands of end users: you'll have more bugs than a bait shop.
If your goal is 100% code coverage, you only code TDD, or you spend more time refactoring than producing customer-centric code, you might be a perfectionist. Perfectionists write pristine, maintainable, refactorable, low-defect code. Applications built by perfectionists will last the test of time. The problem is it'll take them twice as long to get to production as it should and if their project doesn't run out of money first, their competition is liable to beat them to market, invalidating all that beautiful code.
Quick quiz: how do the most successful body builders maximize muscle mass while minimizing body fat? Steroids of course. Ok, how do they do it legally? Maximizing muscle mass takes lots of lifting, lots of protein, and lots of calories. Minimizing body fat requires cardio work and dieting. But dieting and consuming calories are mutually exclusive. So the answer is that body builders alternate between periods of cutting (dieting) and bulking (eating and lifting). Neither activity alone will allow them to reach their goals.
Cowboys
If you've never heard of unit testing or avoid it because it slows you down, you're probably a cowboy. Cowboys can prototype concepts to prove viability before you've finished describing the idea. They can hit unrealistic deadlines and still have plenty of time to gold plate. A cowboy is guaranteed to get you to market before your competition. But God help you if you put their code in the hands of end users: you'll have more bugs than a bait shop.
Perfectionists
If your goal is 100% code coverage, you only code TDD, or you spend more time refactoring than producing customer-centric code, you might be a perfectionist. Perfectionists write pristine, maintainable, refactorable, low-defect code. Applications built by perfectionists will last the test of time. The problem is it'll take them twice as long to get to production as it should and if their project doesn't run out of money first, their competition is liable to beat them to market, invalidating all that beautiful code.
Body Builders
Quick quiz: how do the most successful body builders maximize muscle mass while minimizing body fat? Steroids of course. Ok, how do they do it legally? Maximizing muscle mass takes lots of lifting, lots of protein, and lots of calories. Minimizing body fat requires cardio work and dieting. But dieting and consuming calories are mutually exclusive. So the answer is that body builders alternate between periods of cutting (dieting) and bulking (eating and lifting). Neither activity alone will allow them to reach their goals.
Comments