GAM — Gaps, Ambiguities and Misunderstanding
Over the years I have started to notice patterns of problems and what they’re related to. This is a post exploring those thoughts and how I tend to approach software development projects. There are lots of techniques I use, however, one of those is something that I’m calling GAM. It stands for Gaps, Ambiguities and Misunderstanding. When I was discussing it with my partner he joked and said add an E at the end to extend the acronym to the word GAME. E standing for “everyone loves an acronym”. The joke has helped me reinforce the words into my brain. I’m normally useless with remembering acronyms, however, it’s staying as GAM.
Continuing my post, these are three things that I feel are worth considering. Missing information (gaps), information open to interpretation (ambiguities) and lack of a shared understanding of the information (misunderstandings).
I have come up with some questions that you can ask yourself or your teams when looking at for example, requirements, design documents or architecture diagrams.
To explain further — here are some examples.
Gaps — Missing information. Requirements are a place where gaps can start appearing, such as a lack of quality characteristics in the “non functional space”. e.g. accessibility, performance
Ambiguities — Open to Interpreation. One example could be a user story that is written “as a user”, however, there’s lots of types of users that use your product, so which user is it? One person interprets it as the admin user and another person interprets it as a general user. This resulting in starting to build the wrong thing.
Misunderstanding — Lack of a shared understanding between team members. One team member believes we’re only making changes to the database and another team member believes they’re making changes to both the database and front end. (I think what’s interesting here is the difference between ambiguities and misunderstanding. It feels like there could be some relation here — however, I feel there is some separation because you could have something that is clear, however, it is then interpreted differently due to, for example, someone’s previous experience that gave them a different understanding of the information infront of them).