Peter Drucker, the management guru, is often credited with the all-too-true saying that "culture eats strategy for breakfast." In a later era, tech guru and investor Marc Andreessen famously said that "software is eating the world." Now, as organizations of all types push harder than ever to employ software to disrupt or fend off disruptors, there's a growing realization that culture is eating software for breakfast, and perhaps lunch and dinner as well.
That's what can be concluded from a recent interview with Zhamak Dehghani, an engineer at ThoughtWorks, posted at the Software Engineering Daily site. The challenge for IT executives and developers alike is addressing corporate culture and organizational issues that complicate even the best intentions.
If you want technology initiatives to succeed within any corporate culture, any digital or software-driven transformation needs to start with the customer's perspective first and foremost, Dehghani explains. "Think about the customer value, the mission of the enterprise," she urges. "When we think about organizational-wide platform change, everything from your delivery infrastructure, your compute engine, your data structure,infrastructure, your services APIs, starts with recognizing what capabilities you need to change going through your customer journey."
Many analysts and pundits will say the technology is secondary to the organizational issues, but Dehghani takes a different tact to this thinking as well. Culture rules, but technology is an equal partner in the transformation, she states. "The engineering, organization, the culture, how the team gets set up, it's all very intertwined with technology," she explains. "It's hard to do one without the other. Everything is very closely tightly coupled. The million-dollar question is that when you're dealing with a large organization, how do you scale that type of change?"
Dehghani is a proponent of a strategy she calls "continuous adjustment" which incorporates the best agile practices. Many enterprises "go through these costly slow and time-consuming process of approving features,because building every feature is so costly. You have to bring a team together. You have to justify a business case that this is going to work. You spend a whole bunch of money and put the feature out there. Sometimes never even measure that it worked or didn't,." By the time results -- or lack thereof -- becomes apparent, it's too late to change course.
Continuously adjusting a software strategy is essentially a form of ongoing experimentation, adding or removing pieces of software and services and measuring the impact as things progress. Continuous adjustment may sound very simple, "but structure and the infrastructure that you have to put in place to support that is a fundamental change that needs to happen across the board," Dehghani says. "It's really sad, because sometimes we go through a lot of hurdles and do experimentations and we actually find out that very, very small change could make such a big difference in the bottom line, but we don't have the capability to make that a production ready code that can scale and can consume all traffic."
Some essential ingredients of continuous adjustment -- based on ongoing experimentation -- may include the following components, Dehghani says:
- APIs: APIs are important tools for fast, inexpensive experimentation, and must be easily discoverable, well documented and accessible via self-service.
- Self-service delivery infrastructure: This should help developers push applications without having to go through a long release cycle.
- Self-service networking and routing: Developers should be able to configure networks and routing in self-service mode.
- Metrics: Developers "need to have a way of then be able to capture the metrics, be able to visualize the metrics and make decisions," she states.
Organizations need to embrace digital capabilities as quickly as possible -- time has already run out in many markets and verticals. However, before software starts eating the world, culture is eating software. Fast, flexible deployment models -- such as the continuous adjustment mode suggested above -- may help keep organizations in the race.