Soon after graduating, I went to work as a software developer for a big public company in Brazil. This company is responsible for a huge part of the country's IT infrastructure, and they keep trying to build a reputation of being innovative and pro open source, the kind of thing that excited me a lot. I thought: "They promote Linux and free software... Heck, their website is built with Plone. I'll get to do cool stuff in Python all day!" I know it's naive, but that was my thinking back then.
So, initially I thought I had won the lottery. But that feeling didn't take long to dissipate. What I ended up finding was NOT a place where engineers are working together on great projects, embracing free software and releasing good stuff to the world.
That company is weird. And the biggest problem for me was: I was young and inexperienced, a child basically, surrounded mostly by other children. You see, most developers there are pretty smart people. But they don't have much say in the decisions about the software development, arguably the thing they know best.
The software development department is run mostly by traditional managers who don't seem to understand how software development actually works. It seems that it has been on deficit for quite some time, though nobody cares too much -- hey, the taxpayers are still funding it.
So, those managers wanted the Big Ole' Software Factory. You know, those imaginary places with human machinery resembling an assembly line that if you set up just right and feed it with the right input, you'll get good software on the other end.
Well, what they've got is a bunch of talented people managed in a very paternalistic style. And that leads to painful frustration for the developers who, being treated like children, end up behaving a lot like children (myself included, I am ashamed to say).
I don't need to tell you that they don't produce great software. Well, when they get to ship something, that is. But I'm not talking about the quality of their software right now.
Right now, my point is: this kind of place is not a good place for someone trying to grow into a good, mature engineer.
You need a healthy environment to build up maturity and excellence. And an environment is not healthy if you are encouraged to simply follow orders and maintain the status quo. Because you won't learn to make better decisions if you are not supposed to be trusted to decide very basic things, like what software to install in your development machine.
People at that company end up having serious trust issues with their bosses and colleagues because of the unhealthy environment. The funny thing is, I think most people are there because they like the job security, but they don't get to feel really safe much. At least, not the majority of the people I knew there. They are often afraid that "someone is out to get them".
I wish I had read the wonderful Team Geek book back then, and I wish everybody there would read that book now and give it some serious thought. That would bring some light to several of the issues they have there, and maybe the place would be better than it is.
I remember getting there full of energy, eager to learn and do stuff. Somewhere along the way, I kind of lost the will. I remember thinking: "Okay, I give up, I don't know how to deal with this. I'll remain a mediocre performer, as that seems what they want around here. I will focus on honing my guitar skills, so that I won't want to kill myself."
Well, I moved on to greener pastures some time ago, though not before another experience at another not-so-great government institution. And although I'm not young anymore, I think I've managed to stay curious and I'm still eager to learn and do stuff. That's the important thing, right?
But sometimes, looking back at how much I have improved after leaving that place, I can't help but wonder what if I had never gone there in the first place? Would I be able to enjoy working, learning and growing as I do now? Or would I be like so many others out there, whining and thinking I would be happier enjoying the job security of a public employee?
I guess I'll never know. It's probably better thinking it would be the latter, though. That way I'll have no regrets. Thanks to my friends who reviewed this.