What Agile Software Development Has To Do With Child’s Play?
Introducing Unstructured Learning as a new way of expanding knowledge in organisations and workplaces.
Can you remember the last time you attended a training at work? How much did you learn from it? And how easy or difficult was it to implement the takeaways in your work routine?
Most of the organisational learning across major corporations still comes in the form of training. It is relatively easy to organise them – but they are not the most efficient approach to employee education.
In fact, many experts believe that corporate training should be skipped altogether.
In agile software development learning looks a bit differently. Rather than corporate training, we embrace unstructured learning as a much more effective means to expand our knowledge. It does a brilliant job in our industry – and chances are it might benefit yours, too. That’s why today we are sharing a handful of trusted learning practices that we implement in Ideamotive’s everyday work.
Embraced as a part of your work culture, they can help you scale your business in the long run.
The approach to learning matters (in agile software development and beyond)
The way people approach learning in a corporate environment is undergoing a major shift. We see more and more reasons to not just “get things done” – but to get them done in a more efficient/innovative/collaborative way. In order to do that, caring about educating your employees is crucial.
Software development is one of those industries that are changing literally every day. Without constant learning, developers would be out of the game in a blink of an eye. The need to learn is not a question.
The question we do ask (and answer) is this: which approach to learning is the most efficient one?
The number of new technologies, programming languages, libraries, etc. that appear every day, make it impossible to create a complete curriculum for people working in the software industry. What programmers and designers need to learn evolves continuously.
This is also true for many other business sectors and people working there. Areas such as digital marketing, mobility technologies, virtual reality or healthcare are developing at a rate that forces organisations to put an increasingly big impact on learning and education.
The distinction between two approaches to organisational learning is very clear. The first one involves sticking to the traditional, structured model of corporate training. This usually means hiring an outside expert to come into the company and bring a curriculum of knowledge. Further on, employees are expected to absorb this knowledge and use it to enhance their day-to-day work performance.
Those companies with a very structured approach to learning are usually the ones that are stuck. They create an illusion of progress – but in fact, all they do is maintain their status quo.
The organisations that really make a difference in the business world embrace learning at a much deeper level. They create conditions within their company culture that allow their employees to learn from pretty much anything they do at work. This approach is what we call the unstructured learning.
Unstructured learning means that the scope of what you learn is not precisely defined. In turn, the structure of work is so designed that it allows time and space for the most valuable type of learning.
But before we dive deeper into the advantages of unstructured learning – let’s try to understand what makes the traditional corporate training fail 75% of the times.
Why corporate trainings fail?
“Three-quarters of the nearly 1,500 senior managers at 50 organizations interviewed in 2011 by CEB were dissatisfied with their companies’ learning and development function.” – M. Beer, M. Finnström & D. Schrader, Harvard Business Review
According to the Harvard Business Review authors, employee training does not translate into better organisational performance simply because “people soon revert to their old way of doing things”. Even if they do things differently for a while, most of the times it is too easy to come back to the well-rooted habits.
A training, even if very inspiring at the time of happening, is almost never integrated with the current state of an organisation. In other words – employees receive a chunk of knowledge that they cannot implement due to certain default conditions of their company.
Or, in the language of software development: a new feature is coded in a way that doesn’t comply with the production environment – and so it cannot be deployed. 😉
The article from Harvard Business Review quotes an example of how this worked out in real life for an SMA company. Managers from that company underwent a training dedicated to enhancing leadership skills and organizational effectiveness. After a very inspirational week, many were determined to take the learning back into the organization.
However, even the biggest enthusiasts found it impossible to apply what they learned in the company’s day-to-day functioning. They failed “because of a number of managerial and organizational barriers: a lack of strategic clarity, the previous General Manager’s top-down style, a politically charged environment, and cross-functional conflict.”
A training, no matter how awesome in terms of content, will be useless if not compliant with the current culture of an organization. So how about… taking a closer look at the culture first?
Unstructured learning – what is it about?
Unstructured learning happens when people are provided with a context that allows them to learn on the spot. At the same time, the learning happens without a pre-planned curriculum and in a way that is most convenient to the student.
In organisational learning, this usually means that the organisation’s culture is designed so that it encourages continuous and spontaneous learning. This can be brought down to the working and collaboration habits cultivated by your employees.
Unstructured learning is often mentioned in the context of pre-school education. It is an approach that allows children to learn primarily through free play. It provides them with a context to play in, but doesn’t impose what exactly they should learn from a particular activity – or how long it should take.
A study conducted by the Massachusetts Institute of Technology is a great example of the results unstructured learning can bring for preschoolers:
“Researchers had preschoolers try out an interactive toy that could squeak, light up, play music, and more. They showed one group how to make the toy squeak but gave no instructions to the other group. In the end, the undirected kids figured out everything the toy could do simply by experimenting with it, while the directed ones never got it to do anything other than a squeak. This suggests that young children are better off experimenting and discovering on their own rather than being shown and told.” – Leslie Garisto Pfaff, Parents Magazine
Ok, that study was about preschool kids. But how does it translate to learning in agile software development – or any other industry which is anything but a child’s play?
Even though building software is a way more complex process than learning to use a toy – there are surprisingly many commonalities between the two. Read on and see if they can apply to your business, too!
What software development has to do with child’s play?
One of the software industry’s most important players, Atlassian, refers to their agile software development strategies as “Plays”. We have a similar feeling about our workflow. Even though building innovative software can be hard work, there are also many aspects to it that resemble children’s play.
What are these aspects?
- You never know what to expect next. Child’s play doesn’t go beyond the present moment, because the child doesn’t plan the game very much ahead. Similarly, in agile software development, you can only plan as much. Product requirements change, user feedback surprises us and our clients’ investors run late on delivering the next round of funding. It is hard to anticipate everything about how the development process will unfold.
What does it mean in terms of learning? There can be no universal curriculum for what developers need to learn in order to be successful at work. Pre-planned training hardly ever makes sense for them. They need to approach problems as they appear an learn from them immediately.
- Curiosity is the driving force. Just as a child plays out of pure curiosity and pleasure, great software development is driven by passion. No agile development agency can be successful if the developers and designers are not passionate about what they do.
What does it mean in terms of learning? Learning is much more efficient if it comes from a place of genuine curiosity and desire to know the answers. Neuroscience shows that a curious attitude enhances memory and the brain’s overall cognitive functions. It helps to remember not only the information one is actively trying to memorize – but also the overall context in which it happens. This can be very useful in agile software development.
- The focus is on the real world, rather than theory. Have you ever seen a child laying out the purpose of a game, before she or he starts playing? Neither have we. Agile software development is the same – the focus is on action and implementation, rather than on theory and preparations. You can read the Agile Manifesto to understand this better.
What does it mean in terms of learning? All the education that happens in an agile software house must be applicable in real life. That’s why we like to draw on the knowledge we acquired through the projects we completed in the past.
- It requires collaboration and taking collective decisions. Children are eager to play with others. They connect and engage in an activity together easily – even if they don’t know each other from before. That’s because they see value in interacting with another human and exchanging ideas.
Agile software development is founded on collaboration. From numerous in-house meetings to open-source communities – this is possibly the most important aspect of our growth. We make sure to invest in it continuously.
What does it mean in terms of learning? Agile developers are eager to learn from each other and exchange knowledge. This happens on daily stand-ups, weekly sprint meetings and through active participation in open-source communities. With Ruby on Rails, one of our flagship technologies, we can always rely on the community support – as well as contribute to the online knowledge base.
How agile software development approaches learning?
So how do the above learning principles translate into real, hands-on practices? In Ideamotive we have developed a work culture which allows our team to learn efficiently and in an engaging manner. We want to share those practices with you because we believe they can inspire new approaches to learning far beyond agile software development.
“Context sets the stage for success or failure, so it’s important to attend to organizational design and managerial processes first and then support them with individual development tools such as coaching and classroom or online education.” – M. Beer, M. Finnström & D. Schrader, Harvard Business Review
We are all about creating the right context for learning. That’s why we do our best to provide a working framework that facilitates unstructured learning on a day-to-day basis. It means putting in place good practices, efficient processes and beneficial work habits.
We think that this works much better than serving some arbitrary chunks of knowledge on a silver platter – only to be consumed and forgotten.
Here are 5 best learning practices from Ideamotive:
The culture of code reviews among our developers. This means that each piece of code we produce is verified by at least two people. The benefits of this practice are numerous. For one thing, it allows the knowledge about the project to spread across the team, which improves our “bus factor”. At the same time, it increases the sense of collective responsibility for the project and improves communication skills of everyone involved.
Keeping an in-house knowledge library. We keep and constantly update a database of our best practices, checklists, and insights. Everyone contributes to it with what they learned from their projects. This collection of knowledge – unlike any training curriculum – is fluid, constantly growing and upgrading. At the same time, it is a shortcut for everyone on the team to access insights from our previous projects.
Holding retrospective evaluation meetings after each project. We like to offer our project teams a possibility to reflect on their work together. Evaluation meetings are a great chance to gather and give each other feedback on what worked well, what didn’t, and what could be improved in the future. This is a very simple, yet extremely productive way to learn as much as possible from our work. At the same time, it strengthens our bonds as a team and enhances collaboration skills.
Being an active part of open-source developer communities. This is an invaluable part of our learning process. Thanks to the fact that we work in technologies that have amazing online communities (especially Ruby on Rails!), we are able to share knowledge with developers from all around the world. This allows us to not just find ready solutions to the problems we encounter – but also learn from other people’s approaches and lines of thinking. We happily share the solutions we worked out, too.
Running internal workshops within our team. This is something we do to either share the most valuable knowledge across the team or solve a difficult problem together. In the first case, the workshop would be run by a developer who came across an interesting case, managed to find a solution and wants to share the insights with others. In the second case, the workshop is dedicated to a particularly difficult problem someone is struggling to solve. The rest of the team would gather to brainstorm possible solutions together.
Interested in other work practices at Ideamotive? Contact us to request the whitepaper we have published recently. It contains a complete guide to our agile software development workflow.