# Essential Engineering Skills For Every Software Architect

As a software architect in today’s world, expectations of essential [engineering craft](https://vedcraft.com/engineering-craft/) have increased drastically with the rise of the spectrum of technologies. [Full-stack](https://www.webopedia.com/definitions/full-stack) architecture knowledge, product & design thinking with [customer centricity](https://www.gartner.com/en/marketing/glossary/customer-centricity), startup mindset to do experimentation applying [platform engineering](https://softwareengineeringdaily.com/2020/02/13/setting-the-stage-for-platform-engineering/), proactive production monitoring & [observability](https://thenewstack.io/monitoring-and-observability-whats-the-difference-and-why-does-it-matter/) applying [SRE](https://sre.google/sre-book/table-of-contents/) practices, and many more engineering practices are the new normal.

> The breadth of Engineering Knowledge is becoming more important than the depth of technical skill in a specific area. As quoted in Harvard research, Generalists are more valuable in innovation as they are _Jack of All Trades and Master of Knowledge_.

At a broader level, engineering crafts can be classified into eight different categories as depicted below. You don’t need to be a master of all but having the depth in selected areas and awareness of others is essential as you grow as a software architect.

[![Engineering Skills](https://vedcraft.com/images/2021/07/Engineering-Skills-1-1024x576.jpg)](https://vedcraft.com/images/2021/07/Engineering-Skills-1.jpg)

Figure A : Engineering Craft/Skills

## #1 – Software Engineering & Architecture, Design Patterns

Recommended learning path to cover essentials of software engineering, architecture, and design patterns is:

-   **Software Architecture Essentials & Documentation** – Cover the guided approach for formulating [software architecture](https://vedcraft.com/architecture/introduction-to-software-architecture/) by documenting Software Architecture using [Viewpoints & Perspectives](https://www.viewpoints-and-perspectives.info/).
-   **Software Architecture** **Patterns** – Cover the essentials by understanding Software Architecture Patterns such as [Layered, Event-driven, Reactive, Message-drive, Microkernel, Microservices, Pipeline](https://learning.oreilly.com/library/view/software-architecture-patterns/9781491971437/)).
-   **Foundational Design Patterns** – Cover the essentials of object-oriented design patterns – [Creational, Structural, and Behavioral patterns](https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8) (catalog of 22 design patterns).
-   **Cloud-native Design Patterns** – Cover the essentials of modern design patterns such as [12-factor app principles](https://12factor.net/), [domain-driven design](https://martinfowler.com/tags/domain%20driven%20design.html), and [Cloud Design Patterns](https://docs.microsoft.com/en-us/azure/architecture/patterns/).
-   **Enterprise Architecture** – For seasoned architects growing towards Enterprise Architecture, understanding [The Open Group’s TOGAF](https://www.opengroup.org/togaf) or similar frameworks like [Zachman](https://www.zachman.com/) or [PEAF](https://www.pragmatic365.org/) is a must-have.
-   **Reference Material** – Read our article on [Industry Research/Reports for Architects](https://vedcraft.com/architecture/5-reports-every-software-architect-should-read/) and [Standards & Guidelines for Software Architecture](https://vedcraft.com/architecture/standards-and-guidelines-for-software-architecture/).

## #2 – Infrastructure, Cloud & DevOps, Automation

Recommended learning path to understand infrastructure, Cloud, and DevOps is:

-   **Infrastructure (Compute, Storage, and Networking)** – Cover the essentials such as:
    -   **Compute:** Bare Metal, Virtualization (Hypervisor), Containers, Container Orchestration, Edge Computing, Serverless, Load Balancing, etc.
    -   **Storage:** Object Storage, File Storage (NFS, SAN), Database Storage, Storage Replication
    -   **Networking:** Basic networking (Hub, Bridge, Switch, Router, etc.), Topologies, LAN, WAN, [VPN](https://www.cisco.com/c/en/us/products/security/vpn-endpoint-security-clients/what-is-vpn.html), [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html), [CIDR,](https://cidr.xyz/) etc.
-   **Cloud Architecture** – Cover the big three cloud service providers offerings covering key concepts, design principles, and architectural best practices for designing and running workloads in the cloud:
    -   [AWS Well-Architectured Framework](https://aws.amazon.com/architecture/well-architected/) – with _Operational Excellence, Security, Reliability, Performance Efficiency, and Cost Optimization_ as architecture pillars.
    -   [Microsoft Azure Well-Architected Framework](https://docs.microsoft.com/en-us/azure/architecture/framework/) – with _Cost Optimization, Operational Excellence, Performance _Efficiency_, Reliability, and Security_ as architecture pillars.
    -   [Google Cloud’s Architecture Framework](https://cloud.google.com/architecture/framework) – with _Operational Excellence, Security, privacy, and compliance, Reliability, Performance and Cost Optimization_ as key principles.
    -   Read the consolidated article on [Cloud Migration or Adoption Frameworks](https://vedcraft.com/cloud-migration-adoption-framework/)
-   **DevOps** – Cover the Continuous Build & Integration lifecycle, Continuous Deployment, Differentiate between Continuous Delivery & CI/CD, etc. with the following essentials such as:
    -   [DevOps Periodic Table](https://digital.ai/periodic-table-of-devops-tools) – covers the majority of DevOps tools & technologies compiled by [digital.ai.](https://digital.ai/)
    -   [State of DevOps Reports](https://www.devops-research.com/research.html) – initially published by Google as a research
    -   Recent trends such as [GitOps](https://www.cloudbees.com/gitops/what-is-gitops), [DevSecOps](https://www.redhat.com/en/topics/devops/what-is-devsecops), [AIOps](https://www.ibm.com/cloud/learn/aiops), [MLOps](https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning), etc.

## #3 – Quality Engineering, Continuous Delivery

Recommended learning path to understand the nuances of quality engineering and continuous testing is:

-   **Continous Delivery** – understand the basics of [continuous delivery](https://martinfowler.com/bliki/ContinuousDelivery.html) for the entire lifecycle. Join [CD Foundation](https://cd.foundation/), which is an opensource based community to share best practices related to that.
-   **Agile Delivery Practices** – get certified in one of the Agile frameworks such as [SAFe](https://www.scaledagileframework.com/) (Scaled Agile Framework)
-   **Practices of Quality Engineering** – cover the basics of standard practices such as unit testing, behavior-driven testing, functional testing, sanity testing, regression testing, progression testing, mobile testing, accessibility testing, pixel testing, performance testing, and security testing.
-   **Continuous Testing** – cover the [essentials](https://www.synopsys.com/glossary/what-is-continuous-testing.html) of automation with practices, tools (such as [Selenium](https://www.selenium.dev/))
-   **Software Quality** – [read this article](https://vedcraft.com/architecture/software-quality-strategy-is-essential-for-every-architect/) to cover different aspects of software quality as an architect

## #4 – Production Engineering, SRE

Recommended learning path to understand the dynamics of modern production engineering practices is:

-   **Foundational SRE Practices** – Cover the essentials of SRE Principles, Practices, and Management aspects from [Google SRE knowledge book](https://sre.google/sre-book/table-of-contents/).
-   **Design for Production** – Cover the essentials of designing your application from [production engineering perspective (Release It book)](https://www.oreilly.com/library/view/release-it-2nd/9781680504552/) with patterns and anti-patterns.
-   **Modern Practices** – Evolve your knowledge with modern practices such as [Chaos Engineering](https://www.gremlin.com/community/tutorials/chaos-engineering-the-history-principles-and-practice/).

## #5 – Platform Engineering, Research & Awareness

Recommended learning path to understand the relevance of platform engineering and research is:

-   **Platform Engineering** – understand the new trend of the [platform engineering team](https://medium.com/walmartglobaltech/building-a-platform-team-d915221d5654) and applying its capabilities
-   **Industry Research** – [read this article](https://vedcraft.com/architecture/5-reports-every-software-architect-should-read/) to keep abreast of industry research reports by [Forrester](https://go.forrester.com/policies/forrester-wave-methodology/), [Gartner](https://www.gartner.com/en/research/methodologies/magic-quadrants-research) & others
-   **Engineering Blogs** – [read this article](https://vedcraft.com/architecture/engineering-blogs-every-software-architect-should-read/) to keep yourself updated with best practices and case studies by reading blogs

## #6 – Data Engineering, Machine Learning, AI

Recommended learning path to understand the broader understanding of data engineering, machine learning and artificial intelligence (AI) is:

-   **Data Engineering** – cover [enterprise architect’s guidebook](https://www.oracle.com/technetwork/topics/entarch/articles/oea-big-data-guide-1522052.pdf) (by Oracle) and Big Data basics (basic understanding of [Hadoop](https://hadoop.apache.org/) & [Cloudera](https://www.cloudera.com/)), [Data Lake in Cloud](https://aws.amazon.com/big-data/datalakes-and-analytics/what-is-a-data-lake/), emerging trends like Data Platforms & [Data Cloud](https://www.snowflake.com/trending/data-cloud-storage) using [Snowflake](https://www.snowflake.com/) or [Databricks](https://databricks.com/)
-   **AI & Machine Learning** – as a broader technologist, understanding & applying AI & Machine Learning is essential. You don’t need to be an expert in this field as a data scientist but more like an AI & ML consumer covering:
    -   [Machine Learning Introduction](https://developers.google.com/machine-learning/crash-course/ml-intro) – covering basics with fundamental algorithms
    -   [ML Algorithms (Classification, Regression, Clustering…)](https://scikit-learn.org/stable/)

## #7 – Observability, Monitoring, Analytics

Recommended learning path to understand the nuances of observability, monitoring & analytics is:

-   **Application Monitoring** – cover the nuances of [application](https://en.wikipedia.org/wiki/Application_performance_management) & system performance monitoring
-   ****Observability**** – extend the boundary of monitoring towards [observability](https://www.apmexperts.com/observability/what-is-observability-and-how-to-implement-it/) (logs, metrics, tracing, experience)
-   **Analytics** – understand the behavioral, performance, marketing and customer analytics tools

## #8 – Business Value & Customer Centricity

Recommended learning path to understand the relevance of business value & customer-centricity is:

-   **Business Value:** understand [applying business value](https://www.pmi.org/learning/library/delivering-business-value-9378), [value stream analysis, and mapping](https://www.lucidchart.com/pages/value-stream-mapping), etc.
-   **Customer Centricity:** understand [customer value](https://hbr.org/1998/11/business-marketing-understand-what-customers-value), [customer centricity,](https://www.scaledagileframework.com/customer-centricity/) [design thinking](https://www.scaledagileframework.com/design-thinking/) with the [digital transformation journey](https://www.cio.com/article/3211428/what-is-digital-transformation-a-necessary-disruption.html)

**References**

-   [Generalists Are More Valuable Than You Think](https://hbr.org/2020/09/in-rd-generalists-are-more-valuable-than-you-think) – from [Harvard Research](https://hbr.org/)
-   [Rise of Platform Engineering](https://softwareengineeringdaily.com/2020/02/13/setting-the-stage-for-platform-engineering/) – from [softwareengineeringdaily.com](https://softwareengineeringdaily.com/)

## Relevant Articles

-   [Engineering Craft – Matrix of Engineering Skills](https://vedcraft.com/engineering-craft/)
-   [5 Reports Every Architect Should Read](https://vedcraft.com/architecture/5-reports-every-software-architect-should-read/)
-   [Engineering Blogs Every Software Architect Should Read](https://vedcraft.com/architecture/engineering-blogs-every-software-architect-should-read/)
