Journey into Software Architecture: A Practical Guide for New Architects

By | June 12, 2024

When I transitioned into the role of architecture, blending solution architecture with enterprise architecture, I quickly realised the importance of mindset. Here’s a narrative of my journey and some key insights for anyone stepping into these roles.

My Story: From Senior Team Lead to Architect

As I moved from being a senior team lead developer to a solution architect, the shift in responsibilities and perspective was profound. Initially, I struggled with letting go of code. I was used to diving deep, writing classes, and focusing on implementation details. However, the role required me to step back and look at the bigger picture. I found the C4 model incredibly useful in this transition.

The C4 model helped me understand the levels of architecture:

  • C1 (Context): The big picture of how systems interact.
  • C2 (Containers): How applications and services fit together.
  • C3 (Components): The internal workings of each container.
  • C4 (Code): The nitty-gritty details of the implementation.

Understanding the Roles

Enterprise Architect (EA)

  • Scope: The entire organization.
  • Focus: Strategy, SWOT analysis, and aligning IT with business goals.
  • Responsibilities:
    • Example: Evaluating how AI can enhance our products and processes and create new opportunities and business growth.
    • Making strategic decisions on whether to build or buy new functionalities.
    • Influencing the product roadmap with high-level recommendations.
  • Mindset: Similar to a CTO, but without direct line management responsibilities. Be forward-looking and strategic.

Solution Architect (SA)

  • Scope: Projects and solutions within the enterprise framework.
  • Focus: Best practices, frameworks, API design, and ensuring interoperability.
  • Responsibilities:
    • Example: Defining how a new mobile app communicates with existing services.
    • Creating architectural blueprints and guidelines.
    • Mentoring technical teams on best practices.
  • Mindset: Bridge the gap between high-level strategy and detailed implementation. Provide guidance without micromanaging.

Technical Architect (TA)

  • Scope: Specific technical solutions.
  • Focus: Detailed design and hands-on coding.
  • Responsibilities:
    • Example: Implementing features for the mobile app, ensuring smooth integration with backend systems.
    • Ensuring technical excellence and adherence to best practices.
  • Mindset: Own the technical details and have the freedom to influence how things get built.

Using the C4 Model

The C4 model helps delineate the levels of abstraction and focus for each role:

  • Context (C1): EAs focus on how systems interact across the organization.
  • Containers (C2): SAs define how different parts (like apps and services) fit together.
  • Components (C3): TAs dive into the internal workings of each container.
  • Code (C4): Primarily for TAs and developers, dealing with the detailed implementation.

Key Practices for Each Role

Enterprise Architect:

  • Stay Informed: Keep up with industry trends and emerging technologies.
  • Example: Attend conferences or webinars on AI developments.
  • Strategic Insight: Perform SWOT analysis to identify opportunities and threats.
  • High-Level Focus: Influence strategic decisions and ensure IT aligns with business goals.

Solution Architect:

  • Standardize and Guide: Develop and maintain architectural standards and best practices.
  • Example: Create a playbook for API design and management.
  • Mentor and Coach: Help technical teams adhere to these standards without hovering over them.
  • Broad, Not Deep: Provide high-level blueprints but avoid getting into the weeds of code.

Technical Architect:

  • Implement with Excellence: Follow the guidelines and blueprints to build robust solutions.
  • Example: Code new features for an app while ensuring smooth integration with existing systems.
  • Ownership: Take pride and ownership in the technical solutions you create.

Collaboration and Mindset

  • Empowerment: Let the technical teams own their work. Provide high-level guidance and then step back.
  • Example: Instead of dictating how to code a feature, outline the goals and let the team figure out the best approach.
  • Think Strategically: Balance your deep dives with maintaining a broad overview.
  • Continuous Learning: Stay updated on new technologies and methodologies.
  • Example: Read up on product management techniques to understand how to effectively communicate the “why” and the “what” without getting bogged down in the “how.”

My journey from a senior team lead developer to an architect taught me the importance of balancing strategic vision with practical implementation. By following these principles, you can navigate the complex landscape of IT architecture more effectively. Welcome to the world of architecture—now go build something amazing!

Leave a Reply