Demand Technical Excellence

Understanding Complexity

In his book Solving Tough Problems, Adam Kahane describes 3 types of complexity: dynamic, generative, and social.  Dynamic complexity describes the time and distance between when a cause is in introduced within a system and when the effect is stumbled across.  The closer the time and space of cause and effect the lower the dynamic complexity.  Generative complexity is the subject of how well known a problem is and how many time that problem has been solved.  In other words how predictable and familiar a problem is.  The final complexity type, social complexity, is about how aligned people and groups are in terms of assumptions, beliefs, values and objectives.  A well-functioning would ordinarily have low social complexity because people understand the values and objectives of the groups and take the time to share assumptions.

In emergn our jobs allow us to work with teams, projects, programmes and business units who are all looking to solve complex organisational issues that contribute to delivering products and services.  The techniques we deploy from the agile and lean philosophies are geared towards lowering these three areas of complexity.

IT is Business

My main interaction within enterprises are with IT Directors, CIOs, leaders of business change and other Product/Service Directors who have responsibility of delivering new or improved products and services to their customers.  One of the similarities of all our clients is that their businesses are highly reliant on IT deliveries and the quality of the software that forms the fabric of their operations.  In fact, most modern organisations are now so reliant on IT that any IT transformations are really business transformations.  This is quite a problem for a lot of businesses because a lot of people still see them as separate.  The old thinking of ‘we need to outsource software engineering/IT as it’s not a core part of our business’ needs to be re-looked at or, at the least, needs to be understood better so it can be managed better.

10 Years of Agile

I have been visiting a number of our clients over the year who are undergoing major transformations in their IT systems to better support their business need for increasing speed-to-market, lowering the total cost of ownership and creating better customer experiences.  This is a very common set of objectives and most companies are turning to agile and lean for solutions.  Over the last weekend, 33 people from the world of agile got together to celebrate the last 10 years since the agile manifesto was introduced and to discuss the next phase of evolution.   The first area that has been mentioned in every write up of the event is ‘Demand Technical Excellence’.  In my role prior to emergn I was responsible for tens of millions of pounds of software and I recognise this point to be so important.  I am often astounded (and dismayed) by the lack of interest by my peers in the need for excellent software craftsmanship and standards.  Even more discouraging is the belief that this problem can be outsourced to a company whose fulltime occupation is to deliver software yet fail to show the levels of quality you would expect.  This belief is often a bout of wishful thinking and sometimes comes with the belief that the harder someone stamps their foot and demands quality the more likely they are to get it.  My view is that if you want quicker speed-to-market, lower cost-of-ownership and better customer experiences then you’d better invest in quality.  Focusing on lowering the cost and speed of change of your software platforms will have a huge economic benefit for a business and will allow your customers to participate alongside you to develop excellent features that they really, really want.  For me, this renewed focus from the industry is an excellent outcome of the event.

So what?

My advice for enterprises is that they’d better hire people who really care about and understand software and their business, and know how to really manage and monitor the software being delivered and how it is delivered by outsourcing partners. Relying on wishful thinking and contracts that ‘protect’ them will not be enough to remain at the top of increasingly competitive environments.  This is a case of high dynamic complexity.  Poor software engineering has massive implications to a company yet the effects of the cause are noticed years later and for years to come and across many areas of an organisation.  This means the problem is not a simple one to solve, but one that will have a material benefit for a long time to come.

Companies that have moved forward with agile and lean transformations including rolling out Scrum, Kanban and other people/process oriented changes are making good strides forward which shouldn’t be ignored.  However, without the investment in the quality of software and improving the technical excellence competency, the transformation can only go so far and any investments in whizzy new strategic architectures will probably end up in the same place.



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s