How to save your software project from the costs of abstraction

All software tools mainly do one form of abstraction or the other to save you time or money, this abstraction comes at a cost. I have been working in software for years now and every time I am tasked with creating a new project from scratch, the question of which programming language, framework, libraries, platform, or tools to use always comes up. My answer is always “Use the best tools for the situation”. This is the engineer’s approach to software development, maybe it’s my strong engineering background rearing its head.

Unfortunately, nowadays the choice of the software we use is based on trends. The trends are set by corporations pouring millions of dollars into marketing their tools as the next solution to all software engineering problems. Examples of these marketing campaigns are AI replacing developers, companies touting the slogan “End of Software” or claims that the Cloud will replace all infrastructure needs. These ideas are not bad, if anything I agree that they are innovative ideas, but at the end of the day as a software professional, you must see them as another tool in your toolbox.

The cost you incur from using the wrong tools can cost you millions and a huge chunk of your revenue. This is a short checklist of questions I ask to ensure I am using the right tool:

  1. Usefulness:
    Is this tool going to add any value to my project? Is using these tools cost-effective will it save time & money? Beware of using a tool because everyone is using it, do not fall for the marketing gimmick.
  2. Maintainability:
    What will it cost to maintain this tool? Can it be maintained internally or is there support – free or paid?
  3. Extensibility
    If user requirements grow – which they will, is this tool flexible enough to be updated or upgraded at a reasonable cost?
  4. Maturity
    The more mature a software project is, the more stable and secure it is. Are there any benefits to bearing the risk of using an up-and-coming tool over a tested and mature tool?

At the end of the day, it is in your best interest and that of stakeholders to pick the right tools.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.