Architecture Design is the base for your system and how much you expect it to serve you is directly reflected in how much you are ready to invest in it. Read our article to know more about TCO (Total Cost of Ownership) in Architecture Design, the cost of overlooking pitfalls and the rewards for the balanced decisions.
Quality Attributes of Architecture Design
What hides behind the lines and boxes of an architect’s diagram? It is actually, the Whats of a to-be system, which are namely its quality attributes. They schematically reproduce what will make your system responsive, user-friendly, scalable, secure, etc. Only later, when the what-part is done the how-part opens up for the developers. ISO 25010 provides the full list of the mentioned above attributes, which you can study here.
Quality attributes vary subject to the technical demands of each specific software system. However, the core framework will incorporate the following:
Performance. This quality attribute is all about time. In other words, events, requests, user messages should all be processed and responded to quickly regardless of their quantity or number of users. If it takes over 3 seconds for the website page to load, a lead leaves.
Ensuring high Interoperability/Compatibility is now of strategic importance. Health systems mention interoperability among top areas to be addressed in 2019. The term refers to proper communication of the systems or components within one system. This can be impaired due to a number of factors: varying data formats, different APIs versions in external systems, backwards compatibility, lack of standardization, etc.
Usability shows how much you care about your users. For a user, a system should be easy-to-navigate and take minimum efforts to accomplish a task. However, usability requires engineering skills of a designer, not merely creating an eye-appealing piece of software. Poor usability may lead to the total recall of the product, rather than lower conversion rates.
To repel malicious attacks or exclude the possibility of data theft or loss, your system must be able to protect itself and its users. Security measures imply authentication, encryption along with ensuring data integrity and user privacy, and audit among others. The cost of poor system security goes far beyond downtime or viruses. It’s compromising the integrity of your intellectual property and, if put numerically, 6 billion dollars that will be lost to hackers by 2021, according to Datacononomy.
Add up Maintainability, Scalability, Testability, Supportability, Modifiability (along with the exhaustive list of secondary –ilities) and you’ll get a powerful, shock-resilient and responsive system.
“Got it, – you say, – How much should I pay for this?”
TCO: strategy that will revive your budget
TCO links directly to the quality attributes of your system. Say, you need software for 100 users, however, in the future you plan a 25% personnel growth. You did not plan to invest much into a relatively small-scale project, so Interoperability and Scalability were left somewhat unattended. As a result, you may face troublesome communication between the existing and new modules. Along with that, the system fails to handle pick loads without compromising overall performance. Your company ends up in additional costs to adjust the system for your growing technical demands.
In an opposite scenario, you may have overrated your planned growth and have to pay extra for the maintenance of a too-complex system.
Nevertheless, for almost any case, there is a risk mitigation strategy. Based on our experience in architecture design, we prepared a few recommendations that will help you reduce TCO regardless if you just started or you’re midflight the transition to a new product.
Questions to ask in advance: Are you comfortable with the existing technology stack but forced to cut your expenditures? Or are you urged to boost your performance, availability or scalability in the view of forthcoming expansion?
Tips from an expert: Analysis lies in the basis of every balanced decision. Prior to rushing to optimize your existing system, consider all its pros and cons. As Donald Knuth pointed out, “Premature optimization is the root of all evil”. Focusing on minor efficiencies and non-critical parts will put at risk achieving larger ambitious goals. In financial terms, pumping money in the system before getting the invested money back is self-defeating tactics.
Questions to ask in advance: Are you planning to grow? If so, how fast?
Tips from an expert: If you’re planning to grow by leaps and bounds, keep in mind that the simpler the system, the easier it is to integrate it and ensure its high-level interoperability (and optimize, by the way). A sophisticated customized solution automatically triggers skyrocketing of the workload and, consequently, expenditures.
Say, you need a door. A common size/shape door will take a day or two to deliver and won’t cost you a fortune. However, if you’re a fan of The Hobbit and dream of a round door to your house, it will be a headache for the producer and exponentially raise your expenditures. Moreover, to fit the round door into a square doorway is impossible, so an irksome and pricey process of adjusting your doorway follows. In the end, it is not the door itself that drains your budget, it is how to fit it in and make it serve its purpose.
As a rule, we deal with highly complex software and much effort (if not its largest portion) is dedicated to ensure flawless interoperability. Stick to clear and well-verified systems that will take only reasonable efforts of your team to integrate and require modest budget. Think ahead.
Questions to ask in advance: How thorough you were when implementing your current system? Are there numerous pitfalls left unattended that you’ll need to fix now as you’re adopting a new product?
Tips from an expert: The rule of good modifiability is that One change affects One element. Real-life cases aggressively contradict this principle. Before you decide in favor of alterations, think of the domino effect they will produce. Beware of massive discrepancies brought about by the well-forgotten faults in the code strings. A minor change in the end may affect the whole system and result in high bills. View the picture below for better comprehension.
Questions to ask in advance: Why did you pick your current solution? What advantages did it provide to your company and what were its weaknesses you could foresee?
Tips from an expert: It is often a pathbreaking solution that entails additional expenditures. Say, a well-accepted rule for a designer is that a user should be able to accomplish a given task taking the least number of actions possible. Designers are constantly looking for the innovative solutions to this problem, however it is the user who suffers most, as a result.
It reminds me of our old office anecdote. A brilliant marketing campaign made us buy a coffee-machine with a single button. One button only, no confusion which one to press, no ‘learning curve’. Our engineers usually have to deal with things much more complex by nature, so we never worried it could be hard to get used to it. It wasn’t hard. It was impossible. One single bottom to press to get espresso. Want a cappuccino? Press and hold it. Americano for the lady/gentleman? Press the button’s left edge, or the right one for mocaccino. We didn’t make it. Can you believe it? Dozens of adults – Business Analysts, software developers, testing engineers – couldn’t handle one push button. Rings a bell? Do not shorten your user’s path. Let him/her make coffee by pushing the dedicated button, don’t try to re-teach them to follow your artificially shortened path.
Every user should walk his/her own path, the designer’s task is to keep it only reasonably short. In the opposite case, more often than not the system must be rolled back to a more conservative state thus inducing additional costs to the company.
Beware of great marketing
Questions to ask in advance: Are you familiar with the risks and inconveniences that the implementation of a new solution may bring?
Tips from an expert: Marketing is a great thing as long as it does not make you arrive at spontaneous and ill-balanced decisions. Most widely used key words in the market are all too often buzz words misleading CEOs in addressing real technical issues. First goes articulating the problem, then follows defining an appropriate solution or a tool, not vice versa. A trendy tool that worked out brilliantly with the competitor’s product won’t necessarily be an option for you. Put the problem first, not the tool.