Why Software Frameworks Must Be Used Flexibly
There is little question of the importance of software frameworks. Used appropriately, they provide great value to organizations who seek to perform better at scale. Unfortunately, all too often organizations fail to realize this value. The framework becomes an inflexible structure within which teams must work together following pre-defined roles that do not fit the organization. It is easy to see why this happens: it greatly simplifies the adoption effort. But as H L Mencken said, “For every complex problem, there is a solution that is clear, neat, and wrong.” Frameworks can be very powerful and many companies have benefited from their use; the danger comes when the intention of a software framework is conflated with that of a physical framework.
One definition of a framework is, “an essential supporting structure of a building, vehicle or object.” This is a physical framework. It is a solid, set structure within which things fit. Clearly, this is necessary in physical structures such as buildings and yet, even so each building has a framework that must be unique to its own context. Unless you are building the exact same building every time, there is no one-size-fits-all framework for buildings.
In the same way, each organization is different. In fact, each part of an organization is different. Why would we think that a single framework should apply as-is to every organization (or even to every sub-part of an organization)? There is no one-size-fits-all approach for software development.
The answer is not to abandon software frameworks but rather to rethink their intention. Software frameworks should not be seen as a set collection of invariable practices all pre-glued together; instead, they should be viewed as a set of relationships between structure, roles, and workflows. And the set of practices included in the framework should be seen as starting points and guides. When other practices are found that fit the organization better, they should be substituted.
Taking this approach avoids the “framework dogma” that is often seen in framework adoption. Instead of looking at the framework as a source for solutions, the framework becomes a source for ideas.
While every organization is unique, there are patterns of solutions that are fairly common between organizations and this is the power of frameworks: they represent good starting points that bring issues into focus. The patterns of challenge are seen when the framework is followed without adapting it to local contexts.
To enjoy success with a framework, honestly look at where you are and what you need, create a roadmap for adoption, and then use the framework as a guide and adapt as you go. This approach does require someone with experience to lead it. The cost of engaging someone with experience is easily offset by the benefits you will see in this effort.
Mission Enabler & Money Saver
8yYeah I'd highlight the "requires someone with experience to lead it" and I'd probably go a bit further to say that there needs to be a critical mass of folks delivering software (that is, software developers) that understand deeply the pitfalls that exist with software delivery and how to deal with them. That's why the whole methodology question rests right on the "right people on the bus" principle that Jim Collins lays out in Good to Great. You have zero chance of getting good delivery flow if you have a full population of engineers that don't understand the people-mechanics of delivery........attempting to short cut that with outside experts will only lead to suffering and gnashing of teeth.
Having facilitated impactful transformation journeys in technology and higher-ed, I'm seeking a Team Dynamics (Lean, Agile) Coach or Product Owner/Product Manager role in higher-ed, nonprofit, or social enterprise.
8yThank you, Al! "This approach does require someone with experience to lead it" is an important caveat. There is a threshold of framework implementation below which the framework fails to deliver on its essential purpose. In the case of an empirical process control/improvement framework, such as Scrum; if the implementation falls below a minimum threshold for Transparency (to the team, of the efficacy of its habits), Inspection becomes wasteful, and the Adaptations unreliable. Continuous improvement will not occur, and no one will know why. An experienced Scrum Master will encourage the team to experiment with customizations within the bounds of the needed Transparency, thus allowing the efficacy of each customization to be perceived by the team, and retained or rejected.
Sharepoint Customization Developer at Smals
8yGot me reading (almost ;) ) the complete article to come to the conclusion you're not talking about software frameworks.
Product Leader, my upcoming book, Meet Them Where They Are
8yFramework is like a canvass where you can paint. The real agility reflects itself in the beautiful painting, not in the beautiful canvass. So yes you should not be dogmatic about practices (framework), but at the same time changing the practices at will is equally dysfunctional. Finding the right balance is crucial. Creating a roadmap 'for adopting a framework' in my opinion is an anti pattern. Rather create a roadmap for adopting agility in your thought process, and let the framework help you achieve that without being dogmatic about it. (Sounds theoretical but actually it is very much doable, at least I have done that). What I have seen ...when people give up fighting organizational bureaucracy, they modify the framework to suit the organizational need. Framework should never be the focus, agility should be the focus and that is super difficult. You will get more of what you focus on.
Woke up one day to realize that I am actually retired... And I am good with it.... Currently create content for my nuclear war and currrent affairs YouTube Channel
8yI view frameworks as tools. I use a hammer for a nail and a screwdriver for a screw. I do not use a hammer to hammer in a screw