As my last post alluded to, I am leaving my current development firm. The reason is primarily a boost in earning potential at another employer, but also a culture change. To explain the culture at a development firm I created this analogy:
Imagine you rent a Mustang, or a Corvette. (Of course you are gonna get the insurance!) What are you going to do with that car? Everything that you fucking can! You are gonna imprint the gas petal into the floorboard, and drive fast and wreckless. After all, you have to get every dime you can out of your rental before your time expires right?
Now imagine you own a Mustang, or a Corvette. Yeah, you would probably hot dog it, but it also your purchase, so if you wreck it, you are gonna be upset with yourself. In other words, you are going to maximize your purchase by caring for your vehicle, and obeying the speed limit (most of the time anyway).
I have just described the difference in my view of an internal development team, and an outsourced development team. Clients want to maximize that dollar when they outsource, which is done by getting the most work in the least amount of billable hours. They want the sports car rental. They aren’t going to set a moderate pace; they are going to speed! I’m not saying that all development firms, or all clients are like this (I’ve worked with great clients in the past). But I am saying there is a struggle between maximizing value and being realistic about what you promise.
How does a client pick your development firm? By your firm being the lowest bid. They understate the hours needed for the work. They over-promise features on an unrealistic deadline. When Company A quotes $100k under Company B – Company A gets the work. And the client isn’t going to be cool with missing deadlines, or cutting functionality. So now management is in a battle with the client who is pissed off because the original bid was unrealistic, and wants to rectify the problem. That shit rolls down hill to you – the developer.
And I can tell you, its not possible to write good code faster. Someone micro-managing me, asking me what I’m doing every five minutes isn’t making me any more productive.
There are lots of companies that push hard. You can make a good living working for these places as long as the compensation, or bonuses are commensurate with the work that you put in. But busting your ass all day, every day – every day feeling 10 hours long – every day being full of epic code pushes, and near impossible deadlines met in the 11th hour – that is a young man’s game. That is pretty appealing when you are 22, fresh out of college, and eager to prove yourself to the world. Stressing out at 4:50 on a Friday, trying to get something delivered while your wife and daughter patiently wait for you to get off work just isn’t worth it. I’d rather enjoy my time with them. I’m not mad about it – its just how the game is played.
Which is why this Sports Car is up for ownership. He is done with the rental game, being driven too hard, too long. He wants a nice garage somewhere, and a driver that just takes him out on Sundays for a trip around town. I want to spend time with my daughter while she is still young, instead of delivering some milestone that I wont remember in a month. If I wanted a stressful culture, I would have worked for a startup. Then at least I have some small chance of hitting it big when we get bought by Google.