Before we talk about actual things that we can do to improve learning, we need to consider how learning happens. Examining the learning process produces useful insights and helps inform our actions.
There are many theories about how learning happens and we can't cover them all here – even if there were enough space, diminishing returns would quickly set in. Instead, we will look at a few theories that are visible in the software development field.
Hopefully you're now convinced that you need to learn and you're ready to create an environment in which learning is actively promoted. But what happens when some of your developers come back from a training course and suggest that your basic underlying way of working is wrong – and they question the very reason for developing your application?
This could be a surprise to you. After all, you sent them on a course to improve their UML and they've come back questioning many different aspects of the project. Education can be a dangerous thing.
This little example demonstrates the difference between single-loop learning and double-loop learning. In single-loop learning, we increase our stock of learnt things and act on what we already know. In double-loop learning, what we learn leads us to question our assumptions and our understanding of the world.
 The terms single-loop and double-loop learning are from Argyris (1994).
The usual example is that of a thermostat. A thermostat ...