When I was looking for a new job recently, I had a strong resolution, that I’m going to work for a company that is doing software. Not telecommunication equipment that requires software. Not financial products that require software. Not trucks that require software. I wanted a company, that does the damn software for a living. And I will tell you why.
Case one: Technology Corporation
It’s not bad, could be worse. Companies that focus on technology usually have some kind of understanding for engineers. Usually. There is the corporate aspect though with all the bureaucratic nonsense. The bigger the company is the more problematic the aspect of scale becomes. Some people are allergic to presence of nonsense, and probability dictates, that with scale, at some point you will encounter the nonsense and might get frustrated.
The urban legend says, there is a quarter million Euro device rusting on the shelf in a lab. It’s needed, but no one knows how to turn it on. The one competent guy who knew left the company because he was unable to get a hundred Euro rise. We can’t rehire him for a year because of policy. Meanwhile new people straight from university are paid more than that competent guy who left, because we need more people and there is no people, so we have to attract people somehow.
Case two: Single Product
A small company with single software product seems to be good place to be in. It’s likely that you can avoid a lot of problems connected with working with random people from random countries you will never see in person. You can storm into CTO office and ask for few hundred bucks for an innovative idea you want to introduce, and there is a good chance that you will get it without bullshit paperwork. You happened to drink beer with most people in the company and that’s always helpful.
The problem might be the product itself though. If the product is old enough to get its own driver license or buy alcohol, and it hasn’t been taken care of really carefully, it might be difficult to work with and the development can slow down to a crawl. And if you are defeated by the difficulties at some point, there is nowhere to run. It’s the single product company.
Case three: Investment Bank
Oh boy. I’m not a good person to be objective about banks. They pay a lot I can’t deny. But aside from that it was difficult for me. First of all, I’m not the dress code guy. I prefer to wear geeky t-shirts, shorts and sandals to work, period. Second: freedom and autonomy. You can’t do anything in there. Your computer is a virtual machine somewhere far away, you can’t install stuff you need, you can’t access stuff you need. I remember wasting half a day to get FireBug plugin for my browser. It was not in official repository, I couldn’t get them do place it there, I couldn’t send it via email, download site was blocked. Finally, I found out they didn’t block site with older version, like a week or so.
The biggest problem is that people who understand you can’t do anything and people who are able to do something will likely not understand you. I had a lengthy email conversation with a guy in a suit, who apparently understood only Excel, somewhere three levels of hierarchy above me. I was trying to convince him that serious developers need second display otherwise they are unproductive and basically unhappy. It was explained to me, that we work in “smart” office which meant everyone has thin client with single display and virtual machine no matter if you are developer or secretary. Single display. Everyone. Nothing can be done. Equality.
Case four: Trucks Factory
Truck factory has an IT department and software development because it has to. Everyone does at some point. They might be building marvelous trucks, but software is not their focus and it will kick you in the ass at some point if you are software developer. People with real power and vision were thinking about trucks, not software, so they didn’t care about software very much.
Of course, it depends on the setting, but in my case I was literally the part of a factory. There was a huge complex where they build trucks, buses, excavators. And software. When I asked why there is no damn tea in the kitchen, I was told that labor union from the factory said that either there is tea in the factory too or no one gets to have tea. Guess what happened. Also, I had to routinely show inside of my backpack when I was leaving premises. Because I could have been walking with some expensive part of a truck, apparently a common practice among factory workers. Life is difficult outside of IT.
Case five: Software House
Finally, the company that does software as its main business. People with real power and vision think about software. And there is a good chance that they were software developers at some point, so they will understand your problems.
Ideally, software house has a lot of projects for different clients. They get in, do the software and get out. And learn along the way. Of course you may still end up in some shitty legacy system, but at least there is a chance to escape to another project. And there is a common understanding on how things should be done in software development, so if you want to make the situation better at your client office, you will likely get support from your software house.
That’s my story. These cases are generalizations to some extent of course. You might end up in non-corporate corporation. Or single product company with a great product to work with. Or unusually opened and relaxed bank. Or factory that doesn’t treat software developers as factory workers. Or a crappy software house. But be where you are consciously. I often see people who work in their first job for ten years and just assume that’s how things should be done. I’m not saying you can’t be happy like that. But maybe, out there, outside of your comfort zone you cling to so much, there is a better, fascinating place waiting to be found. Don’t be afraid. The world belongs to the brave.
Besides, what can happen? The tiger suddenly jumps from behind the bush and eats you?