“It is not necessary to change. Survival is not mandatory.”
Agile methodologies and frameworks are quite popular nowadays. As coaches in this field we are aware that it is often used as a buzz word. Companies proudly announce that they work "agile" and offer employees according benefits. The ugly truth is that more and more companies focus on terms and forget about values. Agile project management needs to follow a set of rules, which lead to agile behaviour of systems. When we want a system to evolve, it's not enough to define roles and do meetings. Remember the lessons of the "Lean Production System" and the "Theory of Complex Systems and Self-Organisation" - in short, keep the following "10 Laws of Agile" in mind to become and stay a real agile team:
1) Work with Short Feedback Loops / in Iterations: One learns by trial and error. Knowledge comes from experimentation. Only if we test our assumptions in real situations, we can know, whether they are correct. So don't be afraid of doing experiments, honor your errors and always remember to measure results.
2) Do the Work "just in time" (decide as late as possible): As project workers or project managers we are used to making huge plans for the future. But we have two keep 2 things in mind. First, a plan is nothing more than that - a plan. It is nothing that has to be applied and it's for sure no prediction of the future. We have to be aware that no planning can ever fully meet actual situations. Especially in complex projects with complex environments adaption is much more useful than detailed planning (and your project is probably more complex than you think). Second, a plan is a useful tool to get an imagination of possible futures, so it helps us to react on different scenarios. But since circumstances change, we also need to adapt our plans. Anyway - a plan can never tell us, what we have to do. We should instead do, what we have to do, when we have to do it.
3) Be Cross-Skilled - Transfer your Knowledge: Complex systems shouldn't be fully specialised. Depending on a specific challenge you as a team will have to focus on different skills and knowledge. To increase productivity of a team a good approach is to remove bottle necks. That's actually quite easy: Find the bottle necks, figure out, what skills are needed to work on the specific tasks and distribute the required knowledge over the team. That's a sustainable option to improve your performance and avoid the risk of losing your stars. This goal can be reached mainly through lively communication. Most of the knowledge within a team is "tacit knowledge" (in the people's minds and therefore not accessible). Through communication it becomes explicit, so it can be transferred.
4) Work Self Organised and Evolve Continuously through Experience: Using feedback loops also means to adapt and improve steadily. If you manage to increase your performance by only 1% each day, you are almost 40 times (!) as productive after just one year. Evolution needs time for inspection and adaption. Take this time and you'll see success sooner than you would expect.
5) Work with "pull" instead of "push": Motivation comes from autonomy. People want the power to decide, how much they will do, when exactly they will do it how they will do it and with whom they will do it. So give them priorities, but no detailed commands.
6) Collaborate with the customer: The customer has the power to fire everyone in the company. When you cannot satisfy the needs of your customer, you will sooner or later run out of business. Everyone knows that. What people are often not aware of, is the fact, that there is only one person who knows the customer needs - that's the customer himself. Don't try to predict the customer needs. Instead just ask him about them. Ask him about problems and ask him about solutions. Show your results again and again until you have a true product/market-fitness.
7) Be a distributed being: To solve complex problems, a network is more appropriate than a hierarchy. Several entities have always more experiences and perspectives to offer than one entity of the same group. That is why you should respect your colleague's opinion, even if it doesn't match with yours. Don't try to know everything, but instead use the "wisdom of the crowd". Through different experiences you can raise the internal complexity of your team - so it's able to handle more external complexity. That means diversity is your friend!
8) Humans can fail - Use Automation wherever possible: A main source of steadily rising productivity is automation. Of the decades we've experienced that many things which were originally done by humans are nowadays done automatically. This saves not only resources, but also decreases the number of mistakes. So whenever you need to do a work step often try to automate it.
9) Keep things lean and simple: Neither team structures nor processes need to be set up in a sophisticated way. Complexity arises by it's own over time and in the same way it vanishes over time. Start simple and through evolution things will get more complex to meet your requirements. After a while they might get less complex and more efficient again. It's always a question of trial and error. It's evolution. But don't try to "be evolution". Start simple and let it happen (you can see this process in the game "Mine Craft" - simple forms become complex forms).
10) Have Multiple Goals: Quantum mechanics taught us that the measurement determines the state. That means that for project teams the method of measurement and the object of measurement defines our goals and our output. When you measure mainly your velocity, you might increase velocity, but in the same time reduce quality (and vice versa). Focus on multiple goals to react on different challenges and to stay agile.