I was recently reminded of something that I think we are all generally aware of:
No Rule Is Universal
Ironically, maybe ONE rule actually IS universal, and it’s that none are!! No rule is Universal because all rules need to be applied against a specific situation and the context of that situation may alter or invalidate how the rule applies. All rules need that context in order to be applied properly and we need to understand the context in which we will apply a rule before attempting to apply it.
It is important for us to remember this particularly if we’re in the position of giving advice, setting standards, or helping set up new ways of doing things; for instance consultants and/or managers helping an organization implement a new set of software development methodologies, like Agile. We can always use our experience to guide and inform our decisions, but there are no stock answers. There will always be an “it depends” and we need to understand the situation that we’re being asked to advise upon. You can’t just read a book or web-site and blindly apply what you read. You can’t just go in and universally apply a set of rules/patterns to provide a silver bullet solution. Well, you can, but you probably won’t get the best results.
To help an organization get better, we need to understand where they’re currently at AND where they want to get to AND what resources (people, time, etc.) they have to help get them from point A to point B. When we have an understanding of the context of the problem space THEN we can start thinking about ways to help solve it.
This really cuts to the core of why we should do an assessment of both the “as is” state of an organization as well as where an organization wants to end up (their desired “to be” state) if we want to try to implement changes to the way software development is done. I’ve long been a fan of Stephen Covey’s “7 Habits of Highly Effective People”, and this speaks to the habit of ‘Seek First to Understand, Then to be Understood’.
It’s great to have a toolkit full of patterns, rules, best practices, etc. But seek first to understand the context, then you’ll be in a far better position to apply the rules you know to get the best possible outcome for the situation you’re facing.
By Bob Bretall
Blog author Bob Bretall has over 30 years of industry experience as a developer, manager, instructor and implementation mentor/coach helping to improve all phases of the software development life-cycle.