Next year I will be celebrating 20 years as a software professional. It seems like yesterday when I delivered my first “business product” written in Pascal and I can assure you that I have the same passion and the same flame for software development, just like I had when I was 18 and I was a BSc freshman.
I can tell you that in all these years I have worked mostly as a software developer – or a software gardener as I prefer calling my self the last 2-3 years. I’ve written code in tens of programming languages across all layers, I designed tons of diagrams, hundreds of DB schemes and I implemented thousands of tests of all kinds (unit, integration, UI, stress). I had also the chance to manage for several years teams of all types – small VS big , co-located VS distributed , cross-functional VS experts on a field etc. Actually my current employment title, as you can see, is “Software Development Manager”. For this reason I consider myself as blessed and in the next few paragraphs I want to explain why.
I’m aware that the majority of developers hate managers ( technical and non-technical ) so if you are one of them and you are still reading this post you are doing a great job :) . I was telling you that most of the developers would never consider themselves as blessed because they have worked also as managers. They don’t even think about that scenario and I can hear them. Management, like every professional role, is not for everyone.
The fact that I’ve been in both sides of this “war” – not at the same time makes me feel so special. From a developer point of view I know exactly what kind of things a manager expects ( to see and hear ). I know how upper management creates unrealistic and extremely aggressive goals for the development teams and that all that matters is business value, new features and customer contracts. This is absolutely normal in the fast-changing and extremely competitive world we live but “this kind of shit” doesn’t touch code monkeys . I can speak “their language” and explain them in “simple” words about code quality, technical debt and make them feel that there’s someone in the development team who understands their needs and they are not talking to a wall of bricks. This clearly builds trust and it’s more likely that the manager will be more relaxed when we are working on “useless quality stuff”.
Now, if I wear the development manager hat, I am in the position to believe a developer when she is stuck on a null pointer exception for many days and she doesn’t make any progress. It happened to me so many times. I would be a psycho-maniac if I wouldn’t believe that this can happen to other developers. I can understand why she asks me to refactor this package because the design slows down the implementation of new features. I have the “wisdom” to correctly assess the estimations that I’m given – not that I’m counting on them but there are still managers who do. I know how to clearly explain the business goals and how the development team can actively contribute to those goals and keep the motivated. Last but most important, I have the technical skills to discuss with the development team all kind of topics and gain their respect.
I don’t know what is going to be the next step in my career but I have to admit that I enjoy the fact that I speak both languages and I can understand both sides of the same coin.
That’s why I consider myself blessed! :)