Are other software engineering jobs more fun?
While I don't regret the move, I've been a little disappointed.
Things get done so slowly at my job. I feel like my natural talent and passion get wasted. I also get to do very limited interesting work. I'm not a fresh college grad - I'm used to the corporate world and expected some frustrations and I didn't expect to always be doing something cool. But I was hoping for a little more excitement.
To make matters worse, the tools we use are excessively complex and clunky and in the short time I've been here, we've had several outages of our version control and issue tracking systems.
And a lesser, but still important point is that my talent will never mean much. Being new means I'm not as fast as I'd like to be. But half of my work is process so the best I can do is really a 2x improvement.
I wonder, is it just the company I work for? Is it because we use Java or because we manage our processes so poorly?
Are other companies better?
Is consulting any better?
Edit: What about startups? I have family obligations but I have substantial savings and can stomach some risk.
18 comments
[ 4.8 ms ] story [ 50.3 ms ] threada) Yes. Much of the software development you will do in the plain vanilla business world is not very analytical, interesting, or exciting. Many companies are very slow moving and your ability to influence that is going to be nil if you're just writing their software.
b) I have much less talent and passion than I thought I did when I started. :)
Don't let that deter you. Software development as a job is still better (compensation, hours, opportunity to solve problems on a daily basis, ability to find jobs) than virtually anything else out there.
At the moment, I usually give up on adequate sleep to work on my apps and other projects. I hope that doesn't fade.
From what I've seen this is mostly because these companies are run by non-technical people or technical people who lost their technical skills. They're slow moving because they're conservative and scared.
>your ability to influence that is going to be nil if you're just writing their software.
This. Very much this. If you aren't into building larger systems and systems thinking you're going to get commoditized and shoved into a pure developer role with little influence.
The other comment I have, unrelated to the above, is that your repeated reference to "talent" is somewhat of a red flag to me. There is nothing wrong with being confident in your skills, but often the idea of "talent" can be conflated with ideas of "if only I didn't have all these procedures, I could write code SO FAST", the consequences of which are generally the reason those procedures exist today. Personally, there is a very small percentage of developers that I have met over my career that I would call "talented" (< 5%) and they would certainly never say it about themselves (and I don't consider myself among them). Talent was in how they thought about solving problems (that maximized quality and minimized work) rather than their ability to "bang out" a solution really fast. The ones that openly refer to themselves as "talented" are often personalities that need to be managed.
Sadly, I think the bureaucracy here will be tough to beat. I've already seen a few people try to tackle bureaucratic issues and fail.
And I definitely see the value in testing, issue tracking, etc. and even some of the tools I hate. The things that get me are the excessive meetings, keeping in house (and regularly breaking) issue tracking and version control rather than paying a few thousand to outsource, mediocre choice of frameworks and tools, not firing completely unproductive (often senior) devs, etc.
Edit: Right now is a good example of my complaints: I've been told not to start something without permission from the product manager or guidance from the team lead because I'm new and might waste time on low priorities (which sounds reasonable). But both of those people are in an unnecessary 90 minute meeting (which they complained about but couldn't prevent). I would have asked for backup work during planning this morning just in case this happened, but our issue tracking system was down so the planning meeting was canceled (we keep this on our servers to save a few dollars but end up costing ourselves huge amounts of time with frequent downtime). I've gotten unhappy looks before for admitting that have nothing to do or for trying to learn stuff not immediately useful. So I'm staring at my computer screen trying to look busy because that's my only idea that will keep everyone happy with me.
Bureaucracies have a weak point, self preservation. They will do almost anything to protect their own existence, even change. So the trick to "defeating" one is to put it into an existential crisis and use the uncertainty to drive it into a better place. If you set it up as a game and take notes, you may find it just as much fun as programming (but with people rather than computers)
There probably are better jobs. But unless you live in a major city, it will probably be hard to find one. And even still, it's not exactly easy to get a job at a good place to work. Everyone wants that job!
Of course there are jobs at the intersection of those sets, but also there is much competition for them. It's harder to find them and you might have to accept lower pay for them.
You also mention "corporate world": larger teams impose their tax on participants. "The Mythical Man-Month" book (by Frederick Brooks) says that for a team of size n you have n(n−1)/2 possible communication paths between participants, which means that the communication and coordination overhead rises much faster than the team size. This accounts for half of your time being taken by "process".
So small companies migth be more interesting, but also riskier (because small companies are tipically start-ups which haven't yet confirmed the validity of their business model). Of course there are exceptions, but on average this also means you get paid less.
One case study for fun job is id Software at the beginning - the guys who developed Doom, the first significant 1st person shooter game. In early 1990ties it was the most installed software on computers by one Microsoft study (googling for details left as an exercise for the reader). The game was technological breaktrough, something new, it had massive impact and was financially successful. And you bet they had a lot of fun doing it.
Edit: corrected the group intercommunication formula
I don't like just browsing the web though. I'd honestly rather be working hard and caring about my work.
https://sivers.org/options
* Not necessarily a startup, just a small company.