A few weeks ago, I met up with some old work colleagues and got into talking about some of the changes I was trying to put into place a few years ago when I first joined. A lot of them were quite basic things like writing unit tests, running nightly smokes, object-oriented programming, modular development, some basic design patterns, refactoring, deprecating legacy code, and using off-the-shelf software instead of re-inventing the wheel in-house. It was nice to hear that that most of the ideas & suggestions I'd made then (years ago) were finally coming into play. One of my fellow developers even said I was years ahead of my time, which was quite flattering!
I can tell you though, it was not an easy ride!
In the months after I'd joined, I worked a lot of overtime to put together training slides, and create a development framework the rest of the company could use. I wrote documents containing analyses of what I saw as key issues, included several options for resolving them and made recommendations. I then circulated these documents around, and spent hours trying to convince people of the issues I saw, and ways we could fix or avoid them.
During this time I felt a lot of resistance from key people - it seemed many of my suggestions hit a brick wall, and it took me a while to fully understand why: after about 6 months at the company I realized I'd made some key mistakes which only served to undermine the changes I was pushing for. That in conjunction with some political resistance to the changes, sprinkled with (what I saw as) poor management stopped a lot of things short. In the following months, I went out of my way to change my behaviour, but even that seemed to have little impact - the damage was already done. It was a rather de-moralizing time.
Maybe a year after I joined, I happened across an article in the Harvard Business Review called
Leading Change: Why Transformation Efforts Fail which really drove some of the points home:
- I didn't establish enough of a sense of urgency.
While I did convince some key people (which is why I believe many of the efforts have succeeded now), I didn't convince enough people how big a deal the issues I saw were. - I didn't create a 'powerful guiding coalition'.
While a few people saw what I was trying to do and helped out, I made the fatal mistake of not getting buy-in right to the very top of the organization before I started making changes. And later on, how are you gonna convince them - I created a vision, but didn't communicate it anywhere near enough.
While a few people saw what I was trying to do and helped out, I made the fatal mistake of not getting buy-in right to the very top of the organization before I started making changes. I figured it was common sense, and not upper management's concern. How wrong I was... - I went ahead and started the change effort, effectively on my own.
Talk about stupid. I even remember a conversation with one of my peers who pointed out developers like to be convinced, not told what to do - while we disagreed on a number of points, I've gotta say he was right on the money there.
While I did my best to communicate the issues I saw and the vision I had, it simply didn't reach enough people. Of course, I could argue that I didn't get the support I needed to make this possible, and you might counter that I would have had the support had I convinced the right people. Then I could say if I'd had some time (that wasn't my spare time) to spend convincing people I would have. And it might go on like that for a bit. But that's all moot point, really.
I've come to a few conclusions:
- changing the way a company does things is hard (no really - it's damn hard!)
- making sure people are aligned is also really hard
- a good leader will find a way to get important points across, and will work with their team to solve issues instead of dictating solutions.
- a good leader must be willing to change themselves in the process of changing others.
- you can't over-communicate a vision
- patience actually is a virtue
Oh yeah, and: I was hired into completely the wrong position for what I was trying to do.
I'm glad that all that effort finally paid off, and that I was able to change people & a company in a positive way, even if it was hard to get there! I'm also glad I had the opportunity to learn something about leading change efforts, and what not to do ;-).