I define elegance as enhancing while simplifying.
These two have to go together. The result of enhancement without simplification is complicated. The result of simplification without enhancement is simplistic. In tour complex world both of these extremes are high risk approaches.
In the “enhance alone” approach we have people trying to follow something that tends to grow over time. But this inherently creates confusion. People also don’t usually have the time to learn all of the necessary intricacies. What happens is they proceed with a limited understanding and make up things as they go forward. This causes confusion and going back to old habits.
In the “let’s keep it simple” approach, people are forced to figure things out to fill in the gaps. This may work for early adopters, but is not so good for others. The result is again going back to old habits.
We often hear proponents of frameworks following one of these approaches exclaim that things would work if people would only use the framework. But that ignores the reality of how people adopt new ideas. Without clarity, old habits return.
While it is difficult to create an elegant approach, it can be done, and you should not accept less.
There is no question that Agile at scale has crossed the chasm. I would say that even the late majority is now involved. But where are the innovators and early adopters now? I would say they are:
- Using operating models instead of frameworks
- Focusing on business agility
- Driving from Lean principles
- The use of scaled leraning
However, as I go to conferences & write posts on social media I see that these endeavors are not limited to innovators anymore but are being pursued by many early adopters – the so-called “pragmatists.” The “chasm” between early adopters and the early majority is already being crossed.
I am seeing more and more companies who are looking for what works, even if they have to fill in the blanks a little themselves. While frameworks provide set solutions with some leeway for filling in the blanks, they rarely fit organizations perfectly. Also, current frameworks are based more on Agile than on Lean (even SAFe which incorporates many Lean principles supports a bottom up implementation approach). I think (and hope) that 2019 will see a crossing the chasm of the above topics. To facilitate this is the purpose of my new book and some new social media collaborations. Let me know if you’re interested.
FLEX is based on a different mindset than current frameworks. Most frameworks have a set structure within which you can add practices. People want to know what to do and frameworks provide this. But the pervading idea is that at the beginning people must just adopt the framework. This has two bad side-effects which I believe are the causes of much of the bad Agile we see out there. The first is that the framework rarely fits the organization perfectly. A slight variance is not bad, but the disparity between the framework’s starting point and what would fit them better creates a dissonance. This not only hurts effectiveness but often creates resistance because the dissonance will create extra work for people who are already overloaded. The second side effect is that you are subtly teaching people to follow.
The way to solve these two challenges is not difficult but takes experience. The first is that some method of tailoring the framework or starting point must be used. The second is that you always emphasize the why of any practice and provide a method for improving or substituting it when challenges occur. Both of these can draw from the deep experience 20 years of Agile now provides – giving us patterns of challenge and success.
Experience has shown that virtually all workflow problems can be distilled down to delays in:
- feedback after a decision or activity
- value realization
- knowledge transfer
These all not only delay value delivered but they literally increase the amount of work to be done. Lowering them is critical and can be done by:
- Managing queues
- Having small batches
- Creating visibility
- Automating testing
- Having a test-first attitude at acceptance and unit level
It is important to note that most frameworks’ practices work on these items indirectly. Consider the impact of time-boxing & retrospectives.
There is no reason not to work on these directly. One, of course, can add this to most any frameworks, but be forewarned, doing so will likely lead to activities inconsistent with the framework.
My belief is that frameworks should be designed by working on these issues directly & giving practices that support them as a starting point. Then as people learn more they can refine their practices. That way we can use the framework but not be limited to its practices while still being clear whether what we’re doing is good or not.
I try to take a scientific approach to things. I view frameworks & methods as hypotheses for how to best be effective. If I disagree with the hypothesis, I’ll speak about it. Some ppl don’t like that. But in the information age, methods are public knowledge & we should learn from them, not make them dogma. Learning from them also means improving them
When I started Net Objectives (20 yrs ago 1/1) I did it on the basis of adding value to the industry. I’ve always liked Earl Nightingale’s perspective that money received is a measure of value delivered. That’s served me well.
My drive has always been how do I help others learn and become effective. Over the last 20 years I have learned a lot by being a consultant, including:
1) people know a lot more than they give themselves credit for
2) people will listen to a consultant’s dogma as if it were ok that they have dogma
3) people won’t figure out things on their own if they haven’t already, but they are smart & can learn quickly if you give them a little guidance (not tell them what to do)
4) there’s no one-size fits all but there are many best practices that work almost everywhere, yet aren’t popular
If you have a sense that Agile can be better than it is, please drop me a line. I think I can show you why you’re right.
Here are two serious questions:
1) As a provider of a framework whose intent to increase the ability of an organization to deliver value more quickly, why would you put limits on what could be in your framework? This means limits on both what could be added to the framework or what could be substituted for any of the frameworks rules, roles, practices and events? If you do, you are limiting the effectiveness of the framework.
2) As an adopter of a framework with the intent to increase your organization’s ability to deliver value more quickly, why would you accept limits by the framework you wanted to use? In other words, if something was more effective than what was in the framework, you’d have to stop using the framework to adopt the practice, … Why wouldn’t you find a framework that didn’t require this?
As far as I can tell, the only real acceptable answers are:
1) I don’t know how to do otherwise
2) I don’t know of a framework that doesn’t do that
Let me know if you have other answers.
One must address the culture of the organization when attempting to improve it. Culture affects Lean-Agile adoptions in several ways. These include:
- How attached people are to their roles. Scrum and SAFe require new roles for people.
- The rate that people want to move forward. If slow, Scrum and SAFe may pose a problem.
- The amount of discipline needed. If high, Kanban may pose a problem.
- How much people will resist a specified approach. If high, Scrum and SAFe may pose a problem
- How much do people already know. If high, standard training may pose a problem.
- How much more do people think they know than they do. Must engage in a discourse with people more than a training mode.
These factors should be included in deciding how one will proceed with any adoption.
I have long believed that frameworks should meet the following requirements:
- provide an explicit method to start that can be tailored to the organization adopting it
- provide a method to improve the practices being used based on the situation of the people using it
- be able to incorporate new ideas as they become available
These are difficult to achieve and are not met by any of the popular frameworks. This difficulty is not because such a framework needs to be massive, but rather because it needs to be based on a clear, workable model of how software development works. Not having this model has led to both incomplete and/or complex frameworks.
FLEX is a framework that does meet these requirements. It considers other frameworks as tools to use and uses them to provide recognizable starting points to virtually any company. But by including a method to adopt new practices, etc., as needed, it adjusts to what’s needed without having to re-invent the wheel.
FLEX accomplishes this by having a set of intentions to achieve collectively that will increase an organization’s business agility – the quick realization of value predictably, sustainably and with high quality.
First, let’s get clear. All organizations are complex. So if you’re doing software dev you are in a complex system. Aspects of it also have the possibility for chaotic events (for example, Martian Lander disaster).
But let’s consider something necessary to consider in even simple situations. Take 2 min to watch “Lucy in the Chocolate Factory” https://lnkd.in/gYSN-eZ
This is a simple situation. Too much work causes problems. Managing work levels is something _necessary_ to do the job.
Is it sufficient to get quality? Maybe in this situation. But if you take the idea of managing WIP into a complex situation, it’s still necessary but no longer sufficient. The point is, while complexity tells us we can’t see everything, it doesn’t mean that there aren’t necessary things to see.