Complexity in Software Development

Complexity in Software Development is the subject of many articles, so I won’t rewrite it all again, but I

In our Scrum Foundations course, we explain that complexity depend on the context and 3 main factors:

  • Requirements,
  • Technology and
  • People.

Based on those factors, 4 complexity levels can be derived:

  • Simple,
  • Complicated,
  • Complex and
  • Chaos.

While the Stacey chart (below) shows that the level of complexity increase as get more and more unknown into our factors and that Agile method (and Scrum) have a better fit for the Complex level. It might infer that with more analysis and time we could go over the unknown and decrease the complexity! 😦

 

Ralph_Stacey_Chart
Stacey

 

Adding the Cynefin framework (below), we retrieve our 4 levels of complexity but with a different view. We still implicit assume that disorder is subject to similar factors (people, requirements, technology – “unknown” in general), but this time the Cynefin framework describes how we work in the various levels and respond to complexity!

Cynefin_framework,_February_2011
Cynefin

This really struck me the first time it was shown and explain to me, as it clearly articulate that analysis and time do not help in a more complex environment, and as such we need to act differently!

It can be explain using the analogy of games:

  • Simple: Tic Tac Toe (aka Cross and Circle)
  • Complicated: Chess
  • Complex: Poker
  • Chaos: Kid games

While we can come with best practices for the simple case that will guarantee the best response.

We can only have good practices in the complex level as there are too many factors. However, with analysis we can respond accordingly.

When it comes to a complex environment, we don’t know what is going to happen so we need to experiment and learn. This is where continuous improvement and learning applies fully and where Agile methods and Scrum have the best fit with emergent design.

Now, when we play with our young kids, the rule of the games can change at any time, so it is better to act first and then sense and respond. This is the place for novel solutions (“startups”).

I find it great to show both during classes as people interpret complexity differently and they complete each other…


 

Advertisements
Categories AgileTags , ,

1 thought on “Complexity in Software Development

  1. Relevant Information for me that i was actually looking for.

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 )

Google+ photo

You are commenting using your Google+ 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 )

w

Connecting to %s

%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close