It’s been a while since I posted publicly due to <insert many excuses here>
That said, let’s get to it!
What’s happening in your world? Anything new?
Obviously, EVERYONE is impacted by the spread of the virus,
COVID-19, and daily life is a disrupted mess at varying levels of
insanity. I though now might be a great
time to revisit some of our core agile thinking and principles as we march into
the very unpredictable future.
The latest survey for agile adoption shows that consistently,
companies leverage agile adoption to deal with uncertainty (or at least that is
how they say the use it).
I wanted to insert
this information here as a baseline for a couple of thoughts revolving around
conversations I have been having with clients and peers recently.
Before getting into those conversations, I want to refresh
our thinking on Core Agile Values and Principles:
Ø Individuals and interactions over processes and tools
Ø Working software over comprehensive documentation
Ø Customer collaboration over contract negotiation
Ø Responding to change over following a plan
That is, while there is value in the items on the right, we
value the items on the left more.
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
I know you have probably read these before maybe even many times,
but please read them again.
The agile philosophy began as a better way to provide
customers with value while embracing the iterative and incremental way of
building solutions. The principles specifically
embrace the outcomes of mitigating risks early and often but embracing learning
and empiricism. This concept is critical
in understand our why. Mitigate risk,
deliver value, learn.
Wikipedia describes it as: The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during development of earlier parts or versions of the system. Learning comes from both the development and use of the system, where possible key steps in the process start with a simple implementation of a subset of the software requirements and iteratively enhance the evolving versions until the full system is implemented. At each iteration, design modifications are made and new functional capabilities are added.
Again, the value here is in reduction of risk, with addition
of value, while learning. The proposition
is incredibly valuable if we can learn to leverage it within our workforce!
As this way of working became increasingly popular, new
methods were applied within it, such as Lean & Six Sigma type thinking. Certainly, waste reduction is good, and if we
can reduce waste, and mitigate risk, deliver value and learn, the world may in
fact become a happy place! Viola!
In this new, easy to understand set of principles and values
came new business focused less on the underlying reasons and more on how they
could contribute, or in some case redefine the underpinnings of this simple set
of rules. As we learn with most systems,
they can become greedy and protective of themselves, and eventually even learn
or be designed to protect themselves.
Oddly (or not so oddly), those traits reflect the larger
human condition.
I was listening to the news, as I believe everyone is/has
been. I was taken by some things I
observed how the federal government and state governments were working or
attempting to work. It was interesting
to notice how the federal government was ceding decision making to local
authorities on everything from restrictions on travel/gatherings to acquisition
of services and supplies they needed.
Decentralizing authority for speed and accuracy of execution while also
providing guidance on execution and planning as well as reducing the larger
scale risks by providing country wide guidelines on access, restrictions and
best practices. It was an Agilist’s
dream to be able to easily identify how the government was effectively stepping
in and out of solutions to guide but not dictate, except where they were
required. You could almost envision the
perfect architect/product management balance.
Sadly, it was also easy to recognize that is not how the government
functions regularly. Unfortunately,
an international crisis was required to get the team on the same page (mostly).
This article is not meant to be political in any way, you
can find that everywhere any day.
It is simply meant to allow us to look at the function of a
system, as designed, when it is working towards a common goal, when teams are
gathered and motivated to overcome a challenge and deliver value to the
customers.
This time of constant change is bringing many new
challenges, in the next post I will begin to address specific challenges for
teams and leadership in the new work we live.
Until then, remain safe, practice smart activities, follow
good guidance!