As a software architect in today’s world, expectations of essential engineering craft have increased drastically with the rise of the spectrum of technologies. Full-stack architecture knowledge, product & design thinking with customer centricity, startup mindset to do experimentation applying platform engineering, proactive production monitoring & observability applying SRE 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.
#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 by documenting Software Architecture using Viewpoints & Perspectives.
- Software Architecture Patterns – Cover the essentials by understanding Software Architecture Patterns such as Layered, Event-driven, Reactive, Message-drive, Microkernel, Microservices, Pipeline).
- Foundational Design Patterns – Cover the essentials of object-oriented design patterns – Creational, Structural, and Behavioral patterns (catalog of 22 design patterns).
- Cloud-native Design Patterns – Cover the essentials of modern design patterns such as 12-factor app principles, domain-driven design, and Cloud Design Patterns.
- Enterprise Architecture – For seasoned architects growing towards Enterprise Architecture, understanding The Open Group’s TOGAF or similar frameworks like Zachman or PEAF is a must-have.
- Reference Material – Read our article on Industry Research/Reports for Architects and Standards & 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, VPC, CIDR, 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 – with Operational Excellence, Security, Reliability, Performance Efficiency, and Cost Optimization as architecture pillars.
- Microsoft Azure Well-Architected Framework – with Cost Optimization, Operational Excellence, Performance Efficiency, Reliability, and Security as architecture pillars.
- Google Cloud’s 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
- DevOps – Cover the Continuous Build & Integration lifecycle, Continuous Deployment, Differentiate between Continuous Delivery & CI/CD, etc. with the following essentials such as:
#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 for the entire lifecycle. Join 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 (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 of automation with practices, tools (such as Selenium)
- Software Quality – read this article 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.
- Design for Production – Cover the essentials of designing your application from production engineering perspective (Release It book) with patterns and anti-patterns.
- Modern Practices – Evolve your knowledge with modern practices such as Chaos Engineering.
#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 and applying its capabilities
- Industry Research – read this article to keep abreast of industry research reports by Forrester, Gartner & others
- Engineering Blogs – read this article 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 (by Oracle) and Big Data basics (basic understanding of Hadoop & Cloudera), Data Lake in Cloud, emerging trends like Data Platforms & Data Cloud using Snowflake or Databricks
- 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 – covering basics with fundamental algorithms
- ML Algorithms (Classification, Regression, Clustering…)
#7 – Observability, Monitoring, Analytics
Recommended learning path to understand the nuances of observability, monitoring & analytics is:
- Application Monitoring – cover the nuances of application & system performance monitoring
- Observability – extend the boundary of monitoring towards observability (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, value stream analysis, and mapping, etc.
- Customer Centricity: understand customer value, customer centricity, design thinking with the digital transformation journey
- Generalists Are More Valuable Than You Think – from Harvard Research
- Rise of Platform Engineering – from softwareengineeringdaily.com