The past two days, I've been part of my IT department's annual strategic conference–as a conclusion of the same we were promised a surprise guest speaker who turned out to be (huge surprise)–Kent Beck.
Practices versus Principles
Kent presently works for Facebook, and when it came to question time, this is something that clearly many people were quite interested in because the questions that got asked focussed on "how things work" at Facebook. The readers of TLL are probably now familiar with impressive deployment rates quoted at companies like Facebook and Netflix – so if there are multiple deployments of new functions on a daily basis to thousands of servers, how, from a practical point of view, is this made possible? As Kent pointed out, it isn't so much about any particular technology or process, but rather about the attitude of the workforce. Without values such as trust, accountability, responsibility, consideration held dear to every employee in the business, there's no point in embarking on a discussion about how to get to this level of effectiveness.
Security versus Agility
Our resident security guy (who now bears the moniker "Mr NoFun") got to ask how, from a practical point of view, these types of deployment rates can be achieved whilst ensuring that security isn't compromised. Once again, the answer wasn't so much about any particular technique or tool but rather about how the only way it's possible to adequately trade these quality factors off is by making sure that everybody maintains a certain level of paranoia in everything they do. From a practical point of view, of course, an organisation that large still needs a dedicated white hat team to keep things "tight". When a weakness is exploited, there's a retrospective, and the responsible person:
- Admits responsibility;
- Goes through the exploit in detail and
- Talks about how this problem will never occur again.
I'm hard-pressed to find an example of anybody openly admitting responsibility for anything in our environment–quite the contrary in fact; the behaviour is typically one of:
- Hide any wrong-doing or incompetence;
- Blame another functional area, if possible;
- Don't ever admit that it might be yourself that's at fault;
- Never consider a change in personal behaviour.
In my organisation, we're presently going through a perennial collective tearing-out-of-hair about not doing things "right" and "how do we improve?". Yet, it always seems to be the simple things that need correcting ... note that I've used the word simple here deliberately–although the solution is simple, at least conceptually, the corrective behaviour almost always involves great amounts of discomfort, that is, it may be simple, but one thing it is definitely not is easy.
Silo versus Team
Kent made a good effort in using locally relevant metaphors (Rugby) and the issue I'm about to talk about now leaves me exasperated every time I broach the topic, mostly because it's one of those things that I've tried to get through to my superiors and colleagues over and over again without much yield. A rugby team works together to achieve a certain end, even though its constituents have different roles and skills. Cross-functional teams working together to deliver value as cohesive units seems like a concept that is just "par for the course" from the point of view of Kent (and myself), and using the analogy of Rugby brings the point home, so why is it so difficult for my colleagues to "get". Unfortunately, the horribly misdirected objective of maximum "resource utilisation" has proven itself to be a far too powerful siren of intoxication in this case. I often find myself thinking of the words I read in a "make your first million" book:
The reason why most people aren't millonaires is that they haven't found a good enough reason to be.
That pretty much nails it when it comes to making millions and it's equally applicable when it comes to improving any "situation" we may find ourselves in (and correspondingly blame external factors for). How badly do any of us want to be in a situation other than the one that we're in? That's the bottom line.
Which brings me to my final topic...
Critical Success Factor #1 for Agile Adoption
When posed with the question around success factors, Kent wisely deferred to his many years of experience in presenting the answer (who can argue against emperical evidence)? Success in agile adoption without fail relies on an executive champion. Period. In contrast, as our annual strategic conference closed out, I asked my boss where The Boss was (the relationship between my boss and The Boss is the same as that between Will Riker and Captain Jean Luc Picard). The captain of our ship was present in the first hour of the first day of our two-day annual strategic conference, but nowhere to be seen otherwise. There are many things that can, and should, be delegated but leadership isn't one of them.