Simplifying Complexity - Predictable Delivery in Software Organizations

This is the first draft of an introduction to my book on achieving predictable delivery in software organizations.

Introduction (first draft)

I call myself engineer and psychologist by education, coach by passion, and curious by nature. I have been working as a coach in IT organizations for more than a decade. Organizations that range from 20 people to over 100.000 people in industries everything from television and telecommunications to music streaming, pet supplies and corporate banking.

Companies that are in different stages of their evolution have different goals and employ different strategies. Broadly speaking we can narrow it down to three categories.

Start-up organization - where the goal is to find your product/market-fit, to confirm whether you have a solution to a problem worth solving for your potential customers. The time-horizon of interest can normally be described in days, or maybe weeks.

Emerging organization - you have established your first product(s) and are in pursuit of increased profitability while growing the organization along with your business. Time-horizons of interest are usually discussed in months.

Enterprise organization - a well-established product portfolio exists, and you have clear hierarchies with accountability along with rigorous processes to manage everything from day-to-day business to strategic planning. Strategic developments are often viewed in time-horizons of multiple years.

Across these categories, many things are very different, but many of the challenges are the same.

One thing all organizations have in common is that they are made up by individuals that work together in some capacity to achieve a shared vision. Roughly speaking, the business outcome is the sum of the collective results produced by groups of people within the organization, the collective results from those groups come from the joint efforts of the same groups, those joint efforts are made up of individual behaviours enacted by people, and finally, people’s behaviours are the result of their decision making within their environment.

This is another way of saying that an organization is a complex adaptive system, the agents within the system are people, and the outcome produced by the system depends on the concurrent actions of many individuals. To maximize the impact of the outcome we need to make the best possible decisions with limited information. To add even more difficulty, specifically in software development, the applications, and services we develop together with the intended end-users, are themselves complex adaptive systems where we cannot know beforehand what the outcome will be.

How can we enable individuals, on all levels of the organization, to make the best decisions possible?

One of the recurring challenges is the question from the executive management team – “when can this thing be done?”

The answer to the question is meant to help the executive management team make strategic decisions. Therefore, it is useful to know what a good answer looks like.

The best answer you can hope to get to this question is something like – “If we are allowed to focus on this thing exclusively, it will likely be done in x number of weeks/months/quarters, given our track record of delivering in the past.”

I will approach this question throughout the book from the perspective of an enterprise organization. The concepts, principles and ideas can, however, be used by all size organizations knowing that the time-horizon for the desired effects will be different.

This book will outline a concept to achieve predictable delivery in software organizations based on a metaphor of a road together with the common phenomenon of traffic congestion.

Previous
Previous

Shortening Lead Times?

Next
Next

Does the organization scale?