First talk of the 3-day conference and Sander Hoogendoorn came out with guns blazing ready to wake up anyone that needed it. His very energetic talk focused on how the world is not moving fast enough to align with the advancements on technology. He mentions how even though the development world is an entirely different thing from what it was in 2001, the industry still sticks to the principles of the Agile Manifesto as if they were law. He drives special attention to how the Agile process does not allow us to deliver value at the same speed as modern tooling enables.
Most companies are following Scrum or Kanban processes to a fault because they assume they are correct, not because they fit best their particular circumstances. As a result, their processes such as standups, retrospectives, etc. have become ceremonies that don’t necessarily uphold any value.
Technology advances in an exponential rate but our processes don’t necessarily do so with the same speed. With how much technology has evolved in recent years and how much more accessible it has become, any market is vulnerable to being disrupted by anyone, at any point; just like the hotel market was disrupted by airbnb, taxis were by Uber, banking by N26 and the like. They might be doing the same thing we’re doing but faster, more efficiently and cheaper. As a result we need to move even quicker, not to be left behind. We need to be more agile than “Agile”.
According to Sander, to accomplish this, we must:
Deliver small features
As Developers, if we’re doing any meaningful work at all, our work is “chaotic”. Meaning we cannot attempt to linearly predict the solution and how to get there. Things change and we need to rethink and react to our environment. There’s not a predetermined set of solutions from which we can choose. The only thing we can do is take a small step, see what happens, and then decide on what the next step should be.
To quote Dave Snowden:
“In a chaotic context, searching for right answers would be pointless: the relationships between cause and effect are impossible to determine because they shift constantly and no manageable patterns exist, only turbulence. This is the realm of unknowables.The chaotic domain is almost always the best place for leaders to impel innovation.”
Because of the uncertainty, we’re better off thinking about delivering small increments continuously, over big projects seldomly.
“After doing them wrong for 50 years, we should finally stop doing projects”.
Have even shorter cycles
Instead of doing two or three weeks sprints, we should aim to provide a continuous flow. We can do this by removing ceremonies from our processes, making use of smaller teams with smaller goals, and automating wherever we can. The more you automate, the faster you can push to production.
According to Sanders, Agile nowadays means taking the ceremonies from SCRUM, instead of taking its ideal of adding value continuously and improving on each iteration. If we followed this principle, we should theoretically be equipped with how to deal with this ever-changing world. The goal was never for an iteration to be every few weeks, but to be as fast as possible.
We should aim to find the optimal processes for us, which might not necessarily consist of having retros, kick-off’s, or other “ceremonies”. The process could be as simple as finding the most important tasks and just moving them from left to right on a Kanban board. The fastest you’re able to do this movement, the more agile you are.
Have small teams
We should strive to have teams that are smaller, self-organising and autonomous. Communication is hard and we end up creating too many meetings and rituals to combat this. With things like full day refinements you end up employing a big group that doesn’t necessarily need to be there. With smaller teams though, you get less communication channels.
- Instead of aiming for more communication, you should strive for better collaboration.
- And instead of discussing every item with the whole team, we should discuss one item with a small team.
- Smaller teams usually end up causing each member to think for themselves and to develop a sense of ownership and autonomy.
- By removing bureaucratic team compositions and processes we can focus our attention on the customer instead.
Make even smaller components with Microservices & Serverless
Sander doesn’t go into detail about this one but the title is very clear.
Instead, he summarizes the rest of the talk with this:
- Think for yourself instead of just copying a different model, as their effectiveness is case by case.
- Keep things small and simple.
- Stop doing projects.
- Never stop learning, don’t settle on the “correct way to do things”.
But, you’re not Facebook
A lot of developers that speak at conferences try a little bit too hard to include comedy into their presentations in an attempt to keep the attention of the audience. Kitze manages to pull off the feat of being as entertaining as he was insightful while accusing us of a sin most of us are guilty of: over-engineering.
In this talk, Kitze explores the tendency of developers to reinvent the wheel each time they face a common problem in web-development.
“How many of you have written your own Button components?” -he asks, while I (and most of the audience) sheepishly raise our hands.
No matter how many times we repeat “premature optimisation is the root of all evil”, most of us still partake on it on our day to day.
Instead of focusing on delivering value to our customers, we spend our time and energy creating workarounds for problems that may not even exist.
While we are focusing on covering absolutely every base before our first release (as if we couldn’t simply iterate over it later, if need be!) others might take the leap and be first to market by focusing on what the customers actually cared about.
While we were working overtime rewriting Vuex to fit our company’s imaginary needs, others had already developed a userbase and were actively iterating and improving based on user feedback.
“But Kitze! Facebook had to develop their own state management system as they had to make sure the bundle sizes were small enough for people with a Nokia 3310 on a 2G connection!”
And to that we all respond: “BUT YOU’RE NOT FACEBOOK!”