DEV Community

Dibyojyoti Sanyal
Dibyojyoti Sanyal

Posted on • Updated on • Originally published at

What are the characteristics of a good software architecture?

A good software product rarely has a bad or not so good architecture and a good architecture does not guarantee the product to be good. What do we mean when we say a software product is a good product ? What it takes to build a good software architecture ?

What makes a piece of software good ?

To begin with, we can think of some software that we think is good , excellent, or best in breed. I leave that up to you, but as an example, you could nominate Google Maps, Microsoft Teams etc. The very next question you might already have guessed. Why do you think so? Then you start listing down its capabilities. Below I have listed a few of them that will come to your mind. Don't look at them. Prepare your pick, think what those architectural decisions could be.

It's not hard to guess even if you don't know the inner details on how the software works. The next questions will be why and how they are able to provide these capabilities. And if you think a bit more you will realize, they have taken few good architecture decisions that made the software usable, performant and loveable. If you look at all of the reasons that you like the software you will see the architecture has to address all of them from the very initial phase. The architecture has to incorporate these in itself to advocate these capabilities. Some of them are listed here

  1. Standard
  2. Extendable
  3. Consistent
  4. Documentation
  5. Integration
  6. Adapt changes
  7. Ease of use and Configurable
  8. Customizable
  9. Performant
  10. Scalable and resilient
  11. Balancing trade-offs
  12. Outage management
  13. Cost effectiveness
  14. Reliable and Secure
  15. Robust
  16. Agile

To read details read the post what are the characteristics of a good software architecture

Top comments (0)