Context is King

We humans have this remarkable ability of using context to understand and act upon situations. We are able to understand the different meaning of the exact same thing said based on the context. We take appropriately different actions for situations that are apparently very similar. And yet we find in many areas of life and work that the acknowledgement and use of context takes a back seat. For example in the world of software development.

The software world has an abundance of contributions from practitioners, experts and researchers in the forms of best practices, industry standards, frameworks, methodologies, patterns and libraries. These provide a lot of benefit to the extended community. For example to avoid reinventing the wheel, to save time, to avoid common pitfalls, to achieve certain levels of quality assurance levels, to achieve better efficiency, security, reusability, maintainability, and other software quality metrics. Just like any other human creation, each of these can be put to best use and benefit if they are chosen (or not) wisely. 

For example, if you choose a sharp pencil to hammer a hole in the wall, you’d get disappointing results despite the ingenuity of the creation of sharp pencil. If you try to write on a piece of paper with a nail, you’d be disappointed too, despite the usefulness of a nail. If you try to force and use a nail or a sharp pencil in its original form to do something that cannot be satisfactorily achieved with either of them, you are being naive at best. It is the context that can always correctly guide you whether any of the existing tools is a good choice for what you are trying to do, or whether you need to modify one of them or a combination of them, or create one yourself to serve the purpose of your context.

In the software world if we don’t have our eyes on our goals, and if we don’t give context its due importance, it is very easy to slide in the lure of using any of the amazing contributions by other people, whether it serves the purpose in the best way or not. I’ve alluded to the importance of context in software design in my article here: https://www.dhirubhai.net/pulse/impact-software-design-considerations-ali-rizvi/. If you hear someone insisting on using a best practice or framework or pattern just because it is the recommended or popular or best practice, then that is a red flag. There should be adequate contextual reasons to justify the use of a framework or pattern. The absence of any such contextual reasons is an indicator that the goal of what you are trying to create is not being best served.

Next time when you find yourself making choice of a technology or framework or pattern or methodology, do audit your reasons. Are your reasons relevant to your context? It will help you make better choices, make your project journey easier, and your goal will have a better chance of being achieved comprehensively. 


Mohsin S.

Digital Innovation & Transformation Executive / Business Development / Customer Success

5 年

Short term benefit thinking vs long-term gains also contributes to this problem. Due diligence often gets affected by 'externalities'.

要查看或添加评论,请登录

Ali Rizvi的更多文章

  • The Things That Go a Long Way in a Product’s Success

    The Things That Go a Long Way in a Product’s Success

    Just recently a friend commented to me that it is interesting to note how sometimes a product that may be limited in…

    1 条评论
  • From Adobe LiveCycle to UiPath

    From Adobe LiveCycle to UiPath

    — A Perspective on the Use of Process Automation Platforms Being an automation evangelist, I’ve always been delighted…

  • Always Keep Your Eyes on the End Goal

    Always Keep Your Eyes on the End Goal

    What difference does it make to always set your eyes on the desired end result, the target, the goal? From my…

  • A Perspective on Creating Simple Systems/Products/Services

    A Perspective on Creating Simple Systems/Products/Services

    It is a thing with us humans that if two alternatives both give us the same value then we would always choose the one…

  • Impact of Software Design Considerations

    Impact of Software Design Considerations

    — A Case Study How well a software system serves its purpose depends predominantly on what factors were taken into…

社区洞察

其他会员也浏览了