There is an “interesting” perception of software development in that quite a few people think it is an activity suitable for graduates but not highly qualified professionals. I am in violent disagreement with this. But since it is a widespread belief, just dismissing it as dumb does not help very much. So how does it come that so many people, who have a somewhat limited knowledge about the subject, make such a judgement and act according to it?
From a psychological point of view there seems to be a mechanism in place that either makes those people believe that they actually understand the subject enough to make an informed decision. Or they do not see it as important enough to invest more time in the whole process and just go for the easy way. Or something in the middle? I will look at some thoughts I have had on the topic over the last couple of years and hope they make sense to you.
If you look at how most companies handle careers, you will soon realize that many talk about career paths for managers and professionals. And they are usually eager to say that both are valued equally in their organization. Well, I have yet to see a place where this statements, typically coming from HR, survives the reality check. If the entire organization is run such that managers from day one experience that the “techies” (sometimes lovingly referred to as code monkeys) are just there to serve management without questioning its wisdom, guess what happens.
Most professionals will simply do as they are told and not start a discussion why something is possibly not as easy or brilliant as it looks from the business side. Managers, and that is absolutely the techies’ fault, will then start to believe that they know enough about technology to decide on details. And the next time, when they do so and the techie just nods and goes away to deliver, they expect a good result. If the result is not so good though, because many details were not taken into account, it is indeed the techie’s fault to not have brought them up. And, voila, there you have the vicious circle.
I must say that I have been fortunate enough so far and not run into that situation. But that not only requires experience and the “standing” in the organization, it also depends on your financial independence. I live in Germany and we have laws against my employer just firing me, because I am not obedient enough but quite a nuisance instead. So in that respect I am just lucky. But your standing with management is something you can and should control. If you are too quiet and never give them a chance to learn how thoughtful and interested in the company’s progress you are, how should they know?
What has worked nicely for me is not trying to be someone else but find opportunities where I was on my home turf and still talk about something they were interested in. And in a nutshell the message I got across was: I understand and want to support what you need to achieve; and for the technical details you can rely on my experience and let me decide on the nitty-gritty stuff, which you are not interested in anyway.
And with this you are not talking about coding any more but supporting the business. Yes, actually performing this support means coding. But once people see that they are much better off with you doing this, rather than someone less experienced, they will happily accept it.
So how can you proof that your experience is relevant to the business? By keeping your promises and deliver on time, quality and budget. Because you have gone through the learning curve and know all the potential pitfalls that can happen for a given task. Having them taken care of upfront and not let surprise anyone, you keep things under control. Just a few weeks ago one of my projects went live and my counterpart from the business side was thrilled that there was only one bug discovered, and fixed immediately, so far.
Fixing things quickly and effectively is, by the way, one of the most powerful tools in your arsenal. Nobody expects a bug-free software, especially if it is custom development. But what people want, and rightly so, is that you can fix things fast. So invest time and have a system in place that allows you to ship fixes in no time and without interrupting normal operations. If you need to tell the business that a two-hour downtime is required for you to bring a fix into production, you are really not worth your salary.
That’s it for now. I know that I barley scratched the surface of a very diverse topic. But everything needs to start somewhere …