6

Engineering Skills for Every Software Architect - DZone Agile

 2 years ago
source link: https://dzone.com/articles/essential-engineering-skills-for-every-software-ar
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Essential Engineering Skills For Every Software Architect

Learn eight categories of engineering craft classifications that will help you grow as a software architect to develop depth in selected areas and awareness of others.

Oct. 12, 21 · Agile Zone · Opinion

Join the DZone community and get the full member experience.

Join For Free

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 and design thinking with customer centricity, startup mindset to do experimentation applying platform engineering, proactive production monitoring and 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 of them, but having the depth in selected areas and awareness of others is essential as you grow as a software architect.

Engineering Craft Ideas

Engineering Craft Areas

#1: Software Engineering and Architecture, Design Patterns

The recommended learning path to cover essentials of software engineering, architecture, and design patterns is as follows:

#2: Infrastructure, Cloud and DevOps, Automation

The recommended learning path to understand infrastructure, Cloud, and DevOps is as follows:

  • 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:
  • DevOps: Cover the Continuous Build and Integration lifecycle, Continuous Deployment, Differentiate between Continuous Delivery and 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

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

#5: Platform Engineering, Research and Awareness

The recommended learning path to understand the relevance of platform engineering and research is as follows:

#6: Data Engineering, Machine Learning, AI

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

  • Data Engineering: Cover enterprise architect's guidebook (by Oracle) and Big Data basics (basic understanding of Hadoop and Cloudera), Data Lake in Cloud, emerging trends like Data Platforms and Data Cloud using Snowflake or Databricks.
  • AI and Machine Learning: Asa broader technologist, understanding and applying AI and Machine Learning is essential. You don't need to be an expert in this field as a data scientist but more like an AI and ML consumer covering:

#7: Observability, Monitoring, Analytics

The recommended learning path to understand the nuances of observability, monitoring and analytics is as follows:

  • Application Monitoring: Cover the nuances of application and 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 and Customer Centricity

The recommended learning path to understand the relevance of business value and customer-centricity is as follows:

To conclude, engineering skills are not just related to technology.  Holistic development goes a long way. Also, it is a continuous journey and all the above angles play a part in making the journey successful.


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK