In the projects I'm involved in we put a lot of energy into becoming agile. This is often a tough fight because I work in an environment that is as anti agile as you can get. Just to give you a glimps at the mindset: They are proud of having the largest websphere installation in Europe. Anyway, we typically make some progress: Tearing down walls between developers and testers. Replacing multi year project plans with a living back log, people talking with each other instead of about each other. This kind of thing.
But for me as a developer there seems to be a wall around our team. Behind this wall the management dragons roam. Sometimes balls of flame fly over the wall in our direction, setting our little project on fire, by dictating rules that just don't make sense, and we can do nothing but putting out the flames, or can we? I think we might.
One thing to realize is: Most of these dragons aren't dragons at all. They don't want to damage the project. Instead they actually want the project to succeed. But the wall is real. It's not made of stone though, although the physical walls between your desk and the desk of some manager might add to it. There real stuff this wall is made of, is lack of understanding and lack of communication.
Of course, as usual it is easy to blame it on the other guys. The managers have all the power they need to talk to you, right? They are calling the shots so if they really want to they can drop by your place any time. But managers are pretty busy people. What will they get from talking to you?
Let's do a thought experiment: Imagine the boss of the boss of the highest level manager you normally talk to walks into your office and asks you to tell him whatever you think he needs to know. What would you reply? My expectation is that most of us (including myself) would tell him about why the last brain dead management decision was a brain dead management decision.
Now put yourself in his shoes: You go to somebody with a completely different skill set than you and ask for input and you get a "You are stupid and don't understand your job" How high would you estimate the chances of this changing your decision or the way you make decisions?
Probably not very high. Maybe at about 0%, maybe a little lower.
If you want a manager to listen to you, you have understand what he wants and needs. And you also have to demonstrate, that you understand. If you understand the reasons for the last "brain dead" management decisions you can start asking questions about these reasons and thus learn that they might be legit or surface that they weren't. In both cases you made tremendous progress.
And the key is to ask questions. Which is basically applying the agile manifesto:
Individuals and interactions over processes and tools
Don't bitch about the processes and tools, try to understand the individuals and their challenges behind them. If you manage to get into a discussion, than you can start to change things, and maybe earn enough trust, that your input will be heard before the next decision.
Of course the same applies not only to managers up the chain of command, but also teams in different silos. Don't tell them how to do their job. Learn to understand why they are doing it the way they do.
And in case you are wondering: Yes I wrote this post in part in order to train myself to take my own advice.
Wan't to meet me in person to tell me how stupid I am? You can find me at the following events:
- Spring Data JDBC - New Kid on the block.
- Softwaredevelopment in the 21st century.
- Domain Driven Design mit Relationalen Datenbanken und Spring Data JDBC.
- Kerbal Space Program, Glücksspiel und Psychologie und was das mit dem (Berufs)leben zu tun hat.
- Javaland Freeletics
- Domain Driven Design mit relationalen Datenbanken und Spring Data JDBC
- The New Kid on the Block: Spring Data JDBC