Software Agile Principles That Can Help in Real Life

A short list of agile principles that can help in real life

Itchimonji
CP Massive Programming

--

Photo by Ian Schneider on Unsplash

Culture of Continual Learning and Experimentation

Continual learning describes principles that enable constant creation of individual knowledge, which is then turned into the team.

In software development, the goal is to create a high-trust culture, reinforcing that we are all lifelong learners. We learn from our successes and failures in both, process improvement and software development, identifying which ideas do not work and reinforcing those that do.

Moreover, any local learnings are rapidly turned into global improvements, so that new techniques and practices can be used by the entire organization. We reserve time for the improvement of daily work and to further accelerate and ensure learning. [The DevOps Handbook]

In real life, you share positive as well as negative impressions with your partner, how you dealt with different situations and what you learned from them, so that the other person can also apply or even improve on these insights (this then leads to further experiments as well as new impressions which can be shared).

We can generate new improvements with daily experiments. We can take what works and improve it. And what does not work, we can discard or change to create new experiments.

Improving daily life routines is even more important than doing daily life routines.

Avoid Culture of Fear, Blaming, and Error-Prone Processes

Often, there are cultures of fear and low trust, where people making mistakes are punished (e.g. in most schools).

In software development, it is often possible that production deployments are going to fail. Examples for this could be a load balancer that, for some reason, is not available, because of which the website cannot be used by the customer; or a database that ran out of storage. Then, the enterprise chooses to find those responsible for the production outage and hold them personally responsible.

In real life, children are often condemned for having made mistakes. Relationship partners are often blamed for things that were not recognised, forgotten, or done wrong. But when we look back at our own life story, we realise that we have only improved ourself through mistakes we have made and learned from them to do things differently or better now. This is called Try-And-Error or Fail-Fast-Principle.

Only by making mistakes we can improve ourself. Only through trustworthy feedback we can learn from the mistakes we have made. And for that, we need a culture that supports us. But we should also be open to criticism, comments, changes, and experiments, and not immediately reject them.

“By removing blame, you remove fear; by removing fear, you enable honesty; and honesty enables prevention.” — Bethany Macri

By creating a solution-oriented culture you could make suggestions or wishes about how the other person could have behaved in a specific situation, so that nobody needs to be blamed. This creates new insights, an environment of communication, and a trustful and respectful discussion about the problem can accrue.

Having and Sharing Responsibilities

Oftentimes, two or more people sharing the same responsibility regarding a context can lead to chaos.
These people might be looking for a solution at the same time and then end up in disputes about them without being able to compromise.
Or everyone might assume that the issue will be solved by someone else, though in the end no-one deals with the problem so it will never be solved.

In software development there can be different teams that are responsible for a specific product. Or there are different departments that are responsible for a specific environment like testing, operating, or developing. Also, there are different stakeholders for a product that should be implemented.

In many situations it can be helpful for a particular person to take full responsibility for a context. This way, one can assume that a problem will definitely be solved, that this person can confidently ask for help when needed, and also that they can share what they learned afterwards.

And if something should go wrong, you should not blame this person for it and instead offer your help to do it better next time.

We should remove blame and put learning in its place.

Fostering a Growth Mind-Set

“The fixed mind-set holds that our capacities, skills, and ability to achieve are fixed- that we are born with these characteristics as innate and that we either have them or we do not.” [Unlocking Agility — Jorgen Hesselberg]

The growth mind-set, in contrast, is more focused on effort and holds that abilities can be developed over time and that great things can be achieved if we work hard enough.” [Unlocking Agility — Jorgen Hesselberg]

The result is that people with a fixed mind-set tend to be less adaptable, more risk averse, and feel easily overwhelmed, if not stupid, in unfamiliar situations.

People with a growth mind-set trying different approaches to find a solution constantly, they fail and learn from their failures over time. They reinforce their ability to adapt, i.e. apply solutions to similar problems. They learn from their experiences and efforts and take more controlled risks.

Jorgen also draws on many studies by Dweck.

Reflection: Retrospectives On Giving Feedback

There should always be the possibility to talk about a past period — you evaluate which things went well and which did not and where you see potential for improvement. You talk about what further experiments you want to try, what to avoid, and how to improve.

In software development this is called “Agile Retrospectives” that help your teams examine what went right — and what went wrong — during a project. Retrospectives are iterative and incremental. They can vary greatly from team to team as they are based on the technologies, methodologies, and the people’s characteristics.

In real life, retrospectives are very helpful to get to the bottom of problems and their causes and to implement effective solutions that satisfy all parties involved.

Conclusion

Conducting experiments, learning, failing, and having an open mindset are key ingredients to success among people and living together.

Follow me on Medium, or Twitter, or subscribe here on Medium to read more about DevOps, Agile & Development Principles, Angular and other useful stuff. Be Happy! :)

--

--

Itchimonji
CP Massive Programming

Freelancer | Site Reliability Engineer (DevOps) / Kubernetes (CKAD) | Full Stack Software Engineer | https://patrick-eichler.com/links