Does it still make sense to talk about projects and detailed planning? At Codemotion Rome 2019, Sander Hoogendoorn presented the “continuous culture”, how to survive in an increasingly complex world by quickly going through small teams on functions instead of projects.
In the IT world, there is a premium on change driven by innovation. Actually, innovation is a positive in any field of human activity, but looking back throughout history, the IT industry has shown an unprecedented and unique speed. Maybe this is due to Moore’s law: as the number of transistors in a densely integrated circuit doubles about every two years, so the possibilities double in two years.
While it is foreseeable that there will continue to be an unstoppable evolution of technologies and solutions, it is also undeniable that events and singularities have occurred and will continue to occur. Usually, we call those events “revolutions”.
The IT world is moving on faster and faster, changing in faster and faster cycles and that somewhere there is a team smaller than your one that is about to launch a disruptive solution that will make you obsolete.
One revolution was the introduction of EC2 by Amazon in 2006, which in fact, by renting its own computing capacity, allowed a cheap entry into the IT world to all those who did not have the opportunity or need to maintain a huge amount of hardware in their own basement. Or, at present, we are all watching and surveying the myriad of startups in financial services. If even one succeeds in creating a new disruptive banking system, it would have revolutionised the financial market, rendering obsolete all the other existing players who failed to adapt.
Sander Hoogendoorn started his talk “It’s a small world, after all” from this premise:, presented at Codemotion Rome 2019. Its intent was to clarify how, in the context of a reality that changes at an increasingly fast pace, it is necessary for a change in workflow and teamwork, even for those involved in software development. Within an increasingly complex industry, perhaps only the ones that can continuously develop small movable components can survive.
It’s a complex world, after all
To sum up: the bad news is that the IT world is moving on faster and faster, changing in faster and faster cycles and that somewhere out there is a team smaller than yours which is about to launch a disruptive solution that will make you obsolete.
The good news is that it is still possible to understand what is happening to your team.
In 1999 Dave Snowden, an IBM employee at the time, proposed the Cynefin framework. It is a conceptual framework used to aid decision-making. Cynefin is a Welsh word for habitat.
This framework offers four decision-making contexts: obvious, complicated, chaotic and complex. Actually, there is a fifth area: if you do not belong to the other ones…welcome to the home of disorder.
If you have a problem and you know where you want to go at a higher level, you start going in that direction, validating your actions step after step
The idea behind this framework is that different situations require different ways of navigating from A to B. Usually, many companies in software development are believed to be in the complicated zone, where if you can analyse the problem, you are able to solve and know how much work it will involve and eventually plan the path.
But in software development things change all the time: technology changes, people change, ideas change, requirements change. Software development is in the complex zone: in this zone, if you have a problem and you know where you want to go at a higher level, you start going in that direction, validating your actions step after step. This validation allows you to continue in the same path, or adjust your path. In the end, maybe you will be in a position different to the one initially “planned”, but with more positive results.
If you start thinking about your software development as a journey, as a continuous exploration, you’ll be able to enjoy the whole path. But first… please throw away project management and detailed planning.
Exit project, enter features
Every project is an evolving entity, growing feature by feature. Following an evolving roadmap is way more effective than following a plan. So stop doing projects and embrace the fast and small nature of features.
If you start thinking in term of features, you’ll find a way to build software within shorter cycles working in smaller teams. This is the way to enable a continuous flow of development and actual self-organisation and autonomy of teams.
During his talk, Sander asked a provocative question: if a whole life is needed to become a master of a martial art, how is it possible to become a scrum master with a two-week course? Although Sander remembers the importance of the principles of the agile manifesto, for example: to satisfy the customer through early and continuous delivery of valuable software, from his point of view, it is evident that “traditional” agile doesn’t solve modern issues.
There are several issues that modern software developers have to face: the need for autonomy and self-organisation, 9-to-5 working hours, the companies that consider the developers as “resources”, the mindset of the programmer “The programmer has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before,” from Edsger Dijkstra.
Moreover, the modern software industry seems to follow frameworks and tools such as Agile or Scrum in a dogmatic way. Strictly following rituals such as daily standup or backlog grooming are not helpful for effective communication. The estimates made during a planning poker are almost always incorrect. Anxiety to complete planned sprints without leaving work unfinished, the red sprint anti-pattern, leads to team burnout.
All these problems could be easily remedied taking into consideration that not all companies and teams are born the same.
The best that people involved in software development can do is to find their own way, don’t just copy someone else’s model.