Software is built by people
It is never the process that makes a project successful, nor the methodology, nor the tools. Software is made by people, it is you who does the work.
Every organisation or team will create and evolve the approach that fits them best
There is not one agile methodology that fits your organization or team. It depends on where you are, and where you are going. Create a methodology that fits with your needs and challenges and keep adjusting it to fit. Experiment with different approaches. It is okay to look at other methodologies to find inspiration. When you do that, try to develop an understanding of the context and the underlying values and principles that led to the success of that approach, and think how that relates to your context.
And not one methodology will continue to fit through the changes of your organization, also not a tailored approach. Keep on evolving your approach as culture, goals and teams change.
Personal communication is still key
In this increasingly digital world personal communication is still key. Don’t use slack, jira, or any other tool for things that should be a conversation. There is no better way of communication than a face to face conversation. It will help avoid many misalignments and misunderstandings, help you grow a stronger relationship and simply have more fun. Nothing like a pandemic to make clear how much this is missed.
Trust and personal safety rule
The people in the team are from different personalities, backgrounds, cultures, and experiences. Only in a team that builds trust and personal safety can you make every opinion be heard and start benefitting from these different perspectives. People need to feel secure and included to ask for help and deal with the discomfort of learning and innovating. But mainly: because we are all people and we care.
If you want to build a truly inclusive culture, this means there is space for differences. Don’t avoid talking about differences: in our differences lies the value of inclusiveness. Approach it with a mindset of learning, enrichment of perspectives and using each others strengths and check in on each other regularly.
Creating software requires focus and flow
Programming is probably the hardest thing we have ever done. Most of the work happens in your head, not on the keyboard. That requires focus and space to get into flow. We should create an environment where this is possible.
Continuous learning is essential
We are uncovering better ways to develop software. The profession is in rapid development. Many software solutions are complex by nature, which following the Cynefin model requires doing experiments. This implies that learning is of the essence. Learning is hard, costs energy and get’s you out of your comfort zone. It is frustrating and comes with many setbacks. People suffer from insecurities and fear during learning. Be there for each other to coach and support every member of your team and make learning safe and natural.
Teams need to be(come) truly self-organizing
Software development is an industry of rapid change. The speed of change has increased tremendously through cloud computing, moving to a fully virtual world with only our imagination as limitation. As architectures, tools and solutions are adapting to the new possibilities, the way of working of the team is affected. Who would have imagined ‘back in the days’ that the setup and call to the database would be only a few lines of code, written by a developer. Embracing such a change implies a shift in roles and knowledge. The rapid change and innovational character of it requires that teams adapt quickly. Only through self-organization can teams meet the demand for speed of adaption and fully reap the benefits of innovation.
Looking for some inspiration on self-organization? Kim wrote an article about it.
Organizations need to be flat with as little hierarchy as possible
Hierarchy is valuable. An organization needs a clear vision and alignment. Democracy is slow and expensive, as everybody needs to have the context and knowledge to make an informed decision. Letting a group of people lead strategy allows for speed.
However, hierarchy is about vision, not about instruction. It is about coaching, not about directing. It is about support, not about control. Hierarchy shouldn’t take away the autonomy of the team to organize themselves to best deliver software. A flat organization will help teams to be autonomous, with alignment on the direction provided by the leaders.
In the end, every organization will have some form of formal or informal hierarchy. When you run up against limits, it is your choice how you respond to that. When you don’t hide behand hierarchy and drive change, you will see that you can succeed.
Experience is more important than certification
Theoretical knowledge can help, but only in practice can you master agility. It requires a deep understanding of software development to lead and guide an organization to uncover better ways to develop software. Build up experience in programming, testing, ops, security, and analysis. That doesn’t mean you are able to do everything yourself, but understanding all parts of the system matters.
Combine experience with listening and learning from others. We don’t have time to find everything out ourselves. Talk to other teams in your organization, attend conferences, and read books. And yes, attending a course is valuable and it may come with a certificate. Just keep in mind that it is the combination of theory and practice that will make you strong.