Good things demand a good deal of time and money. It often seems only natural that you’d better invest massively in the project’s architecture. However, what may start as a costly project, can become a cost-efficient one in the long run. Implementing a TCO-based strategy will ensure expenditures won’t grow increasingly over time. Read the article below for more details on how to start saving for the future from the start.
Quality Attributes of Architecture Design
What hides behind the lines and boxes of an architect’s diagram? Actually, it is 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 after completing a what-part, the how-part opens up for the developers. ISO 25010 provides the full list of the mentioned above attributes, which you can study here.
Certainly, quality attributes vary subject to the technical demands of each specific software system. At the same time, the core framework will incorporate the following attributes.
Performance. This quality attribute is all about time. That is to say, processing of and responding to events, requests, and user messages should be quick. What’s more, requests quantity/number of users shouldn’t affect the response speed. For example, if it takes over 3 seconds for the website page to load, a lead leaves.
Ensuring high Interoperability/Compatibility is now of strategic importance. For example, 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. In reality, there are numerous factors that can downgrade the system’s interoperability. For example, these can be varying data formats, different APIs versions in external systems, backward compatibility, lack of standardization, etc.
Usability shows how much you care about your users. For instance, a system should be easy-to-navigate and take minimum effort of a user to accomplish a task. Alongside this, in a designer’s viewpoint, usability requires engineering skills. It is not merely creating an eye-appealing piece of software. In fact, poor usability may lead to the total recall of the product, rather than lower conversion rates.
To repel malicious attacks or prevent data loss or tampering, your system must be able to protect itself. Security measures imply strong authentication mechanisms, data encryption, firewall protection along with audit and many more other things. Truth be told, the cost of poor system security goes far beyond downtime or viruses. Above all, it’s compromising the integrity of your intellectual property. Moreover, if put numerically, it is 6 billion dollars that will be lost to hackers by 2021, according to Datacononomy.
In conclusion, 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: a strategy that will revive your budget
TCO links directly to the quality attributes of your system. For example, 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. Saving a bit on Interoperability and Scalability efforts seemed like a great idea. As a result, this decision adversely impacted the communication between the existing and new modules. Furthermore, the system fails to manage pick loads without affecting overall performance. Your company ends up in additional costs to adjust the system for your growing technical demands.
In the opposite scenario, you may have overrated your planned growth. Now you’ll have to pay extra for the maintenance of a too-complex system.
Worry not, there is a risk mitigation strategy for almost any case. Based on our experience in architecture design, we prepared a few recommendations that will help you reduce your system’s TCO.
Questions you could ask in advance. Are you comfortable with the existing system? Do you need to cut your costs and retain the current functionality? Do you need to boost your performance, availability or scalability in the view of forthcoming expansion?
Tips from an expert: First of all, study the problem properly to make a balanced decision. Don’t rush to optimize your existing system without considering 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. Start core optimization only if the system suffers crucially. To sum up, always do some research work beforehand.
Questions you could ask in advance. Are you planning to grow? How fast?
Tips from an expert. If you’re planning to grow by leaps and bounds, keep one thing in mind. The simpler the system, the easier it is to integrate/optimize it and ensure its high-level interoperability. In short, customizing your solution will skyrocket the required workload and 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. What if you’re a fan of The Hobbit and dream of a round door to your house? Your dream door will be a headache for the producer and exponentially raise your expenditures. How to fit the round door into a square doorway? It is impossible. Adjusting your doorway follows which is an irksome and pricey process. 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. We dedicate much effort, if not its largest portion, to ensure flawless interoperability. Stick to clear and well-verified systems. As a result, they will take only reasonable efforts of your team to integrate and require a modest budget. Think ahead.
The questions you could ask in advance. Have you attended properly all the possible pitfalls? Or you’ll need to fix them now as you’re adopting a new product?
Tips from an expert: The rule of good modifiability is that One change affects One element. Unfortunately, real-life cases aggressively contradict this principle. Think of the domino effect that any changes may produce. Beware of massive discrepancies brought about by the well-forgotten faults in the code strings. In the end, A minor change may affect the whole system and result in high bills. View the picture below for better comprehension.
The questions you could ask in advance. What are the usability advantages of your current solution? Can you improve it without compromising on design? Vice versa?
Tips from an expert: Do not pose design over usability. For example, if you decide on improving the system’s design, do it without affecting usability. If this is impossible, leave the system as it is.
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. Was it hard to get used to it? No, it wasn’t hard. It was impossible. One single bottom to press to get an espresso. Want a cappuccino? Press and hold it. Americano for the lady/gentleman? Press the button’s left edge or the right one for mochaccino. In the end, 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.
In reality, it is often a pathbreaking solution that entails additional expenditures. Moreover, sometimes the designer even has to roll back the system to a more conservative state for the sake of usability. For sure, it induces additional costs to the company.
Beware of great marketing
The questions you could ask in advance. Are you addressing a real problem that affects your business or simply experimenting with a trendy tool? In addition, are you familiar with the risks and inconveniences that the implementation of this solution may bring?
Tips from an expert. Certainly, marketing is a great thing. Unfortunately, it often misleads CEOs in addressing real technical issues. A trendy tool that worked out brilliantly with the competitor’s product won’t necessarily be an option for you. In short, put the problem first, not the tool. Consult your architects and engineers to see if you can benefit from the trendy solution or very well do without it.
With due consideration of the core -ilities that make a strong architecture, excessively costly alterations can become a thing of the past for you. As regards TCO, you’ll be delighted to see how cost-efficient a balanced decision can be.