Tales from the WTF company, part II
szeryf.wordpress.com
szeryf.wordpress.com
1. Easy way out - go with the flow and add your own WTFery to the mix, and try not to let it destroy your soul.
2. Fight for what's right at every turn, and stand up to the status quo.
3. Pay lip service to the status quo, but subtly and sneakily introduce best practices one at a time. It would be an uphill battle, and hard to fight backsliding without blowing the undercover nature of your cleanup operation. In order to do this, you'd have to find the coworkers who still have a bit of a soul that hasn't been crushed, and get them on your side to help you.
Leave.
Sometimes you have to take stands on major architectural decisions. But if you're creating battles on day three as an incoming programmer you deserve to be fired.
All you can do at lower levels is drop strong hints. This can be done whether or not you quit (e.g. at an exit interview, assuming there even is one).
4. Try not to touch any old projects. Instead try to "own" a new one where you can do things the right way.
There are, however, a few problems with this approach: your will probably be implementing the whole thing alone and will quickly become unpopular with the others.
In my case I ended up implementing a compiler frontend alone from scratch while everybody else were thinking it was a waste of time and we should have based our work on the old code (which, agreed by everybody, was hell of a mess). When time came to implement the backend, I had to bring one of the "old-timers" on board which caused a lot of tension (he preferred to do things the "old way", for example, to indent the generated C++ code manually instead of using the automatic indenter that I wrote).
One other thing that I tried with mixed results was to "recruit" new hires with some sense of design to work with me on the project before they got exposed to the "dark side".
In the end I left that place not the least because of the "us vs you" attitude which was, on the most part, the result of my own actions. I couldn't stand the attitude most people working there had towards software design (most of them were grad students so they weren't there for the long haul). I am now running my own development tools company and find it a much better way to spend my time.
In the end I suggest that anyone stuck in a situation like this get out of it as soon as possible. The extra effort required to make it work is just a waste of your life.
He should've quit on a third day. Since he was not comfortable working there either, I don't really understand what he was hoping to achieve by staying. Improve the code and demonstrate that everyone else there is an imbecile ? That would've never worked, and that's exactly where he was doing.
I suspect that he just didn't have any experience with this sort of a situation, which is not that uncommon. The good thing is that now he does have this experience :)
"fck you, fck you, f*ck you, your cool! i'm out!"
can someone explain how to do a normal dictionary lookup?
what is that? and is there something similar in PHP?
A PHP array() is also a hashtable structure. The PHP equivalent of the described code would be to do a foreach() over the array rather than doing an array[key] lookup.