Why Every Programmer Has to Be Dumb?
At least, dumb for the companies hiring them. The old dream is still for sale out there: Build a “I do everything framework” and hire a bunch of dumb programmers - monkeys? - and you shall make money easily!
Just put some button pressers and a full featured enterprise system will be waiting on the other side of this “machine”!
C’mon, I thought this dream was over! We’ve had enough proofs that this doesn’t work!
Why? Because a framework, system builder, code generator or what you may want to call this thing just can’t do everything. And if you try to build this “monster” you will get yourself a hell of a problem:
- Your product will never be ready.
Or you think that “everything” has limits? Someone will always say: Hey, let’s put this new feature right there… it’s so small….
- Your product will not work well.
Bugs! Bugs! Bugs! I’ve never knew a team that has written enough tests building such a monster. Be prepared! If it’s never ready, you will always be in a rush!
But ok, even if you manage to develop this “framework” and hire a bunch of monkeys to press its buttons, that’s when the worst problem arise. (At least worst in my opinion)
With this “philosophy”, you assume that you want to hire low level programmers that don’t need to learn anything new besides how to use your full-fledged systems generator. And who the hell likes to work in a place like that?
You take from your employees all the joy of development, which is about creativity. All about putting your brain to work. And sooner or later, they will notice that and just quit. You will never be able to stablish a trustworthy relationship within your team as well as to motivate them.
How will you motivate a team by telling them they will learn a new framework that isn’t used anywhere else in the world and that they will not improve their thinking?
They will become bored. And if not, man, I wouldn’t like to have someone like that in my team.
The problem is that managers usually love the idea to build huge enterprise systems at low costs. And some consultants sell this idea quite well.
I prefer to have trustworthy people in my team. Provide an environment that promotes learning. Let their creativity flow. Only with this approach you will have a first class team of developers producing, happily, high quality enterprise systems.
That’s the message for the companies out there: Software development IS a creative process. Promote learning. Let them create.