There was a Red Dwarf episode (spoofish British low brow scifi) where Rimmer, the officious, slimey roommate managed to get another hologram/clone of himself going. For a while, they annoyed the hell out of Lister, the other roommate. But then the two Rimmers became each other's worst nightmare.
Everyone thinks, gee, wouldn't it be great if I had another programmer just like myself? You kick out tons of code each day. You don't really get stuck on stupid things. Everything is logical and orderly usually all the right technologies.
Everyone wants this mysterious ninja coder. I'm sick of hearing about him. He writes lots of code and gets things done fast. He doesn't get stuck on things or need a lot of help. He agrees with style and module fashion and agrees you know software architecture.
Today, I kept hearing "we need really good programmers". I also kept hearing "I'm concerned those guys have been doing things their own way too long and aren't adaptable enough to our way".
You think you know how to architect but you don't. If you had someone just like you, they'd still think your code sucks.
The people that wrote the code can quickly add features to it and work on it. That's always how it is. That means nothing. Look at awstats. It's a fucking nightmare. Yet, for ages, it grew rapidly, adding features left and right, doing more and more things, and was one of the de facto stats packages. It's a mess of global code, global data structures, and undocumented transforms.
But really I'm making excuses for myself. I suck. I've taken stabs at it already but I need to compile a list of things I've done to blow this gig. That's another post. Subconsciously not willing to put code in unless I can convince myself that it's correct coupled with this mass of undocumented side-effect riddled code is perhaps the wost offender. Two gigs ago didn't work out so well, last time I worked for a medium sized company, so I swore to do things differently. I think I preferred that approach -- I instrumented when I needed to instrument and when people didn't like it, I told them to piss off. Trying to do things other people's way was educational. I know a lot more about several technologies now. Trying to swap out my development philosophy was just destructive and pointless. I will never, ever get the hang of this.
-scott
I think you might be forgetting that "really good programmers" don't just know how to architect. They can handle the crufty shit that's there already from other people, good and bad alike.
"I suck."
Bullshit!
One Helluva Guy.