I can see the appeal of that idea, but I respectfully disagree. My reasoning is three-fold:
- The most reliable way to get better programmers in general is a program of mentoring and apprenticeship.
- The most effective way to build maintainable, useful software that meets the customer's actual needs requires frequent, small deliveries. The software is always being both maintained and enhanced.
- One of the biggest problems in software quality today is that people won't read code.
If you have repetitive work, automate it. If you want to know if software works, test it from the start. If you don't know exactly what the customer wants, ask him. If you want to train a new programmer, pair him up with experienced programmers.
| [reply] |
You're right.
In practice (which happens often to any area) nothing stops a mentor from giving "boring" work to his apprentices, so that he could be spared to do something more exciting.
It's not ideology, it's just psychology. And the issue isn't how right you're, but whether you get your executives' buy-in and support.
(An anecdote: some people think "small, frequent deliveries" means they don't need to write as accurate a spec and development magically becomes easier--hence, e.g., testing isn't as much needed.)
| [reply] |
I probably would just work on the code continuously until it's done
Doesn't work. I've tried it. You usually pass out and forget everything around 72 hours.
A flap side of the "maintenance" type is someone who prefers creating new things from the start.
These ""maintenance"" types are a myth. Nobody could be so twisted that they'd prefer to maintain existing code than create something new.
| [reply] |
They're not myths! They're new hires! Seriously, a lot of companies/groups use this philosophy. Cut your teeth on bug fixes and general maintenance, and then once you're familiar with things, you can create new code.
| [reply] |
| [reply] |