Chapter 1: The Architect’s Hit List

Anatoly Volkhover

  • Programming languages, their features, readability, and interoperation
  • Code reuse across platforms (server vs web vs mobile)
  • Early error detection (compile-time vs runtime error detection, breadth of validation)
  • Availability of talent and cost of hiring the right talent; learning curve for new hires
  • Readability and refactorability of code
  • Approach to code composition, embracing the change
  • Datastore and general approach to data modeling
  • Application-specific data model, and the blast radius from changing it
  • Performance and latency in all tiers and platforms
  • Scalability and redundancy
  • Spiky traffic patterns, autoscaling, capacity overprovisioning for spikes
  • Error recovery
  • Logging, telemetry, and other instrumentation
  • Reducing the complexity of business logic
  • User interfaces and their maintainability
  • External interfaces, APIs, contracts
  • User identity and security
  • Hardware and human costs of the infrastructure and its maintenance
  • Creating multiple workstreams
  • Enabling testability
  • Third-party frameworks
  • David says:

    I would like to add Security

    • anatoly says:

      Hi David,
      Thank you for this. User authentication, role-based security, and personal data handling/storage are planned for the upcoming second book. Is that what you are thinking, or some other kind of security aspects of software architecture?

      • Sergey Andreev says:

        When you are planning release second book?

        • anatoly says:

          Hi Sergey,
          There is a story around the second book’s release. After publishing the first one, I realized that I am telling people how to build good software using totally inadequate tools. In other words, most of the hoops we go through to build good software is due to the terrible toolchain – poorly designed languages and frameworks. So I decided to change course, and I am working on a solution to this, more general problem. It will take some time, but the second book will be covering an entirely different approach to building software. Can’t say more at the moment. I expect to have it out by the end of the year. There will be also a free update to the first book, covering a few more topics.
          Thank you for your interest!
          — Anatoly

  • Vara Srinivas says:

    If I am not mistaken these are list if we want to develop a software from scratch. What do you think an organization should consider for a Of the self product for their business needs for example SAP CX for a B2b or B2c solution.

    • anatoly says:

      Good question, Vara. Typically, a decision to use an off-the-shelf solution is predominantly driven by business needs, not by technical ones. Most companies are not in the business of building complex technology and make decisions based on the business KPIs as TCO, TTM, and risks. In my book, I tried to stay within the boundaries of technical architecture, which is secondary to the business direction made by the company. In most cases, technology is only a tool that automates the business, not a self-fulfilling prophecy. However, once the business decision has been made, the engineers must build the best architecture they can to make it happen – including embracing third-party technologies, even the ancient ones if necessary.

  • Dermot says:

    Good list, security is also a very good suggestion so glad to see that will be included in book 2

  • >