I have been working on a project for the last 2 years. It’s been 2 long years. Those of you that know me personally will know the client. The project has been technically challenging in the rather abstract domain of data and metadata. Fascinating stuff, incredibly fun, bordering on pure research in a commercial environment. We also committed to being agile in this project … with the client being agile, development being agile, project management being agile, everything agile. It could not have been a better beginning.
It has been a spectacular mess! It is a textbook on agile gone wrong. It is a textbook on architecture gone wrong. It is a textbook on how not to write good code. There are many lessons to be learnt and that has been the most valuable outcome of this project. I will be speaking on some of these agile lessons at Oredev in November this year. For now, I just want to reflect on one single thing that popped into my head during dinner with Chris Naidoo from Psybergate last night.
Here goes! The project has failed because of power brokering. Too many people are fighting for power. Power gives control and control gives more power. The fundamental value system of the entire team (client included) has been compromised because of the desire for power and control.
The net result is personal conflict. Personal conflict is not healthy. Conflict in driving at solving a problem is healthy. If there is battle for power, there is always personal conflict because politicking will happen. Teams get fractured in power alliances and off-line caucusing occurs. Egos are reinforced and confidences are destroyed. One person posturing superior than the other, forever trying to be top dog for the sake of being top dog. There is never a winner in a power battle and everyone loses.
At an architecture level, as designs emerged, they were shot down like moving tin ducks at a carnival game. The power player won and the architecture and design that went into production was that of the person that had power at the time. It was not the team’s architecture. So there was not sense of responsibility in the team that resulted in no pride in work delivered. Sensible and rational thinking is lost when a leader is blinded by power and the team exists without purpose.
So we had a power oriented architecture. We also had a power oriented methodology. And a power oriented value system. And power oriented development. I am not innocent. I did my own bit of power grabbing as well. I destroyed myself and violated my value system … a bit. I did realise that if I stopped fighting against power, there will be no fight for power.
I have only 3 people from the original team, me included. One of the power brokers has moved on to a position of greater power but has less direct influence on the team. There is a new power player in the wings. The team is fresh, new, no power battle scars. So we won’t fight the battle. Too many lives have been lost. This is not Ghandi’s passive resistance. To resist, even passively, is to take a position in the battle. Instead, we will resort to a value system that treats people equally, responsibly and give each person the dignity they deserve. I wish could give that dignity back to those that have left, fallen in battle. You know who you are. I wish I could have done more.
Architecturally, we have resurrected one of the tin ducks that was shot down about 18 months ago. Not by me, but by someone else who came to the same solution independently. But it’s not a “I told you so” situation … that will start the power battles again. So BDUF has returned, TDD has returned. The agile practices that we cherish and shout out will be implemented again, through natural and progressive adoption, each person adopting agile practices at their own pace, guided by a value system shared by all.
Power oriented architectures and power based management does not work. Agile embraces a simple philosophy: think about the next person before you think about yourself. Agile is not about loss or gain of control, it is about collective ownership. Once you grok that and live that, then it does not matter how bad your architecture is, how unreadable your code is, or how late your are on the project. It is simple: because the team is still equally responsible for everything, moving forward out of the mess, in small steps is do-able. There is no blame because there is no power battle.
This project has changed me to be a worse person and it has changed me to be a better person. I hope the others on the project have the same carthatic realisation that I had with Chris Naidoo. Chris just didn’t know that happened during our conversation. Now he knows.
By the way, I now realised that there are many power oriented architects in many teams that I have worked with in the past. I just did not know that it was always a power issue. Drop me note if you have come across any power oriented architects that create power oriented architectures.