My last engagement has left me a little scarred and bruised. It has really tested my core agile values and as I reflect on it, I came to a surprising conclusion.
The engagement involved introducing/advocating cloud/virtualisation to improve the testing capabilities within a global tier 1 bank. The bank has all the elements in place and therefore the challenge was not remotely technical but 100% cultural.
The project was driven/under-pinned by a vision rather than a backlog, this was to prevent the project being de-railed by cultural dead-ends or technical side-shows. It wasn’t so much we’ll know it when we see it, rather than we knew what was acceptable and everything that prevented this could and would be challenged. It was firmly based on devops principles of completely automated, repeatable environments.
Going back to the values, I personally place high value on simplicity, feedback and working software so rather than powerpoint the project to death we developed and released a working solution. This was not a theoretically working solution, but a working solution on real infrastructure provided by the men in black. Sadly, the real infrastructure we were using was in the wrong continent and was only half-heartedly supported by the men in black preventing the transfer of data required for testing and at this point the rails came off.
We had performed live demonstrations and key people were heavily engaged and excited about making use of what we had developed and what should have been a simple lift and shift to the correct continent proved instead to be the slow and excruciatingly painful death of the vision. Everyone agreed with the vision, but culture, policies, processes and bureaucracy all transpired against us.
The first wheel to come off was our use of an unsupported operating system. It was the correct operating system, but it hadn’t been built by the men in black so wasn’t sufficiently opaque. It took a few months of unpicking and reverse engineering just to get back to some of the basic capabilities that are mandatory for deploying software a’la devops in a highly restrictive financial organisation. Those months did however allow us to get back to where we were and at this stage the feeling was that not only had we built it again, but had also this time built it better as it was more in-line with wider strategies. So finally, we want to get people in there, but wait… We have no disk space 🙁
Popping into your local PC world for a few TBs of disk is easy and will set you back a couple of hundred bucks at most. In a corporate data-centre however disk-space is like gold dust and is charged by the ounce. This was the first stage in the project where we needed real funds and investment. We were at the point where we had a working solution, an eager customer base and genuine excitement. This was the game-changer and we were very, very excited…
What followed sums up the cultural challenges, instead of capitalising on the solution, looking for opportunities to deploy to other groups, we spent months creating detailed business cases, investment plans, roadmaps, etc, to get modest sums to fund the final rollout of the solution. During these months, I had to put my personal values aside in favour of documentation, process and all those other things that are less valuable in agile, but I was playing the long game. Our strategy was realising our vision and that meant enduring these little tactical battles where necessary. What I wasn’t prepared for was how demoralising this would be and just how much of my passion would be destroyed in the process. This wasn’t a case of everyone required clubbing together to devise a brighter future, it was a horse-trading exercise of compromise and trade-offs.
As I look back now, detached from the project, it would be very easy to view this as a failure; we certainly failed to get the funding or deliver our vision. What we did achieve though was the planting of a seed. It will take several years for the seed to grow, just as agile typically takes a few years to embed itself in a large multi-national organisation (and even there the use of the word agile probably means nothing more than the team do a stand-up each day). I’m hoping that when the time is right, people may be able to dust off a few of my blog articles I wrote explaining how devops can strengthen governance and auditing, or why creating an environment automatically in minutes is better than building one manually over weeks (even if the steps are all self-service).
The bank in question is a bank I personally love. The people are great, the technology (when you can use it) is cutting edge and the challenges are anything but trivial. I had the opportunity to stay at the bank in question and opted not to, for what was a surprise to myself. It wasn’t because of the lack of feedback, the skepticism of simplicity, the illusion of control or lack of trust. It was because I lost my passion. It turns out that my most important value is passion and this is the one fire they failed to ignite and instead extinguished.
I have also realised (again) that every single assumption you make at the outset of a project needs to be made explicit and validated. I’m heartened that our project was not a big costly disaster, it was a (relatively) small, well contained experiment in the art of the (im)possible. We delivered working software, but failed to get it into the hands of the users. We found simplicity hiding in a web of complexity. We were open and honest with all our information and everything we did was made available to everyone.
My passion is always to get high quality, working software into the hands of the customer as quickly as possible and delight them. To drive my passion I rely on a my own core values of simplicity, feedback, transparency and trust. I have no doubt the bank in question will deliver yet another highly compromised version of what we have already built and demonstrated twice; I can only hope our original vision remains as the yard-stick.