A flavor of CowboyCoder that mixes with aggressive PeckingOrder politics. Typically found at those game programming shops which never hired anyone with enough serious education or experience to avoid BigBallOfMud coding. ControlFreak-style power politics keep said code safe from any ConstructiveCriticism.
This hits too close to home.
HighSchool coder gets into game development when it's very-small-team (e.g., two programmers). Some hacking later, a game comes out. Hey, that process worked so let's do it again. This time, we need three programmers though. LatherRinseRepeat.
Now we're at nine programmers, and we have another 15 people working directly on the product in non-programming fashion. The lead is the the person above; never had a lick of engineering theory and doesn't think it matters since the development process (somewhere short of CodeAndFix) has always worked out before.
I read ThePragmaticProgrammer once. Thought it was great. Suggested it to the team. They thought I was a freak for reading about programming. Surely, as good as they are at programming, they have nothing more to learn! :( I've read the Wiki, I've read a lot of programming theory in the last year, some XP books, and now RapidDevelopment, and it's just amazing. Things that are listed in PP or RD as "bad" are universally practiced! Yes, I am a programmer! Give me a task and tell me when it will be done because I can't control the schedule. Don't communicate with the team! Please, do not have anyone on the team say anything to anyone else! We certainly wouldn't want to, like, communicate, or anything. That would most certainly undermine the tentative control that management holds now. At least, the way it is now nobody really knows how bad it is (but most seem to think that we're in pretty bad shape).
Ok I'm meandering between rant and sarcasm and deep coursing emotion. My bad; too much time spent on the XP newsgroup today I guess. ;)
I love the company I work for. They let us do whatever we want, we come up with the product we want to do, and then we go ahead and do it. The problem is that nobody in the chain of responsibility seems to think that huge defect lists, cost overruns, and schedule overruns are anything but "typical development." It's amazing.
oh- so what's a RamboCoder? Each developer here is given a task and a timeframe and told to do whatever it takes to get there. It doesn't matter what it takes, as long as you don't go looking for assistance and you should be committed to the team and work 24 hour days as necessary. (My personal best, before learning ThatsHowItAint is 30 hours straight.) Do whatever hacks are necessary, and come use your own personal coding convention if that makes you happy. Naming conventions are unnecessary, and you may find inconsistent capitalization, so be aware that your first attempt probably won't compile. When you get it to compile, it probably won't run because there are data dependencies that need to be manually checked, and if anything is out of date you'll need to manually copy files. If it runs at this point, look at the debug console. You're lucky, but you probably missed the dozen or so "critical" asserts that flew by. That's probably why nothing is actually showing up. Too bad CRITICAL_ASSERT( i != 43, "" ) doesn't have a useful message. Too bad it doesn't stop at the point of occurrence. Ahh well, with the complete lack of design and complete dependence on coupling, with little thought given to cohesion (such as the hideous DoXAndY() method that I stumbled across yesterday), the monolithic classes that do all sorts of things, but require you to jump between N classes to do anything useful, it just makes me want to cry.
I feel guilty now, too. I invited a friend of mine to work with us. He was hired after being interviewed, but I fear that he is miserable. He comes from places with more process. Sorry dude. I keep hoping that we can turn things around, but the management likes their position and they aren't going anywhere too soon. I'm going to have to convince their superiors that I need funding for my own gig, and do so without losing my job. :(
hmm... -- am I still anonymous?