IN THIS SECTION, YOU WILL: Understand that architects’ skills should include a mix of technical, communication, product development, and business skills, and get valuable pointers to resources for developing these skills.
- A typical skillset of an architect includes hard (technical) skills, soft (people & social) skills, product development, business skills, and decision-making skills.
Architects have to have proper skill sets. By skills, I mean possessing relevant knowledge and the ability to apply that knowledge in practice. These skills should include technical (e.g., cloud architecture or Kubernetes technology) and communication and influence skills.
More specifically, a typical skillset of an architect includes:
- Hard (technical) skills, including extensive knowledge of both new technology and legacy technology stacks,
- Soft skills,
- Product development skills,
- Business domain knowledge, and
- Decision-making skills.
Hard or technical skills are the abilities and knowledge needed to perform specific tasks in a professional setting. In the context of technical architecture, these skills are essential for designing, implementing, and maintaining various aspects of an organization’s technology landscape. Some typical hard skills that architects need in their work include (I provide links to some of the tools I found helpful in obtaining these skills):
- System design: System design refers to defining and developing a complex system’s architecture. An architect with this skill set can create comprehensive system designs incorporating various components and sub-systems to achieve the desired functionality.
- Engineering processes: An architect needs to have an in-depth understanding of engineering processes, including software development life cycle, Agile development, DevOps, and continuous delivery.
- Design patterns and tactics: A good architect should be familiar with design patterns and tactics such as Cloud Design Patterns, Model-View-Controller (MVC), Service-Oriented Architecture (SOA), and Microservices. These patterns help architects design modular, scalable, and maintainable systems.
- Security and privacy by design: In today’s world of cybersecurity threats, architects need to have a deep understanding of security and privacy best practices. They must ensure that the systems they design are secure and comply with data protection regulations.
- System optimizations: An architect should know how to optimize systems for performance and scalability. They should be familiar with tools and techniques for profiling and tuning systems to achieve optimal performance.
- Source code structures and maintainability: Architects should have a good understanding of software engineering principles such as clean code, code maintainability, and refactoring. They should be able to design systems that are easy to maintain and modify.
- Reliability and stability (anti)patterns and tactics: An architect should know the typical reliability and stability issues that can arise in complex systems. They should be able to identify and address potential problems by using patterns and tactics such as redundancy, failover, and graceful degradation.
- Usability: An architect should have a good understanding of usability principles. They should design systems that are easy to use and provide a good user experience.
To change the architecture of a software-intensive system ensconced in a large organization, you often have to change the architecture of the organization. And ultimately, that is a political problem, not just a technical one.
Soft skills, often described as non-technical or interpersonal skills, are an integral part of social architecture, as they enable individuals to navigate and contribute to these social systems effectively. Social architecture refers to designing and managing social systems, interactions, and relationships within an organization or community. By developing and refining soft skills, individuals can more easily adapt to changes, collaborate with others, and foster a positive work environment. Critical soft skills related to social architecture include:
- Communication skills, written, visual, verbal (presentation), and listening skills: Effective communication involves expressing oneself clearly and understanding and empathizing with others. These skills include written, visual, verbal (presentation), and listening skills, which are crucial for building and maintaining relationships, as well as for conveying ideas and facilitating discussions.
- Networking and collaboration skills: Networking involves building and maintaining diverse professional connections. Collaboration skills encompass working effectively with others, regardless of their role or seniority. These skills include partnering with peers, junior and senior colleagues, managers, and executives to achieve common goals.
- Organizational and time management skills: These skills involve the ability to efficiently plan, prioritize, and manage tasks, resources, and time. Effective organization and time management are crucial for meeting deadlines, achieving goals, and maintaining a healthy work-life balance. Key aspects of these skills include prioritization, goal-setting, task management, and delegation.
- Analytical, strategic thinking, and problem-solving skills: Analytical skills involve assessing and interpreting complex information to make informed decisions. Strategic thinking is the capacity to envision and plan for long-term success, while problem-solving skills include identifying and addressing challenges creatively and effectively. These skills are essential for recognizing and capitalizing on unique opportunities and creating organizational value.
Product Development Skills
Product development is creating and bringing new products or services to the market. It involves the entire journey from the conception of an idea to the product’s final development, marketing, and distribution. Product development encompasses various activities and stages to transform an initial concept into a tangible and market-ready offering.
Product-led companies understand that the success of their products is the primary driver of growth and value for their company. They prioritize, organize, and strategize around product success. Some processes specific to product development include:
Idea Generation: This stage involves generating and exploring new product ideas. Ideas can come from various sources, such as market research, customer feedback, technological advancements, or internal brainstorming sessions.
Market Research: Market research assesses the feasibility and potential success of the product concept. It involves gathering information about customer needs, preferences, market trends, competition, and other relevant factors to validate the product’s viability in the target market.
Marketing and Launch: Before launching the product, marketing strategies and plans are developed to create awareness, generate demand, and promote the product to the target market. The activities include branding, pricing, distribution, and marketing communication activities.
Architects should be familiar with product development concepts as product development requires a multidisciplinary approach involving teams from various functions such as product management, design, engineering, and marketing. The process aims to create innovative, desirable, and commercially viable products that meet customer needs and provide a competitive advantage in a market.
Regardless of their technical or design expertise, architects must have a solid understanding of business processes to effectively contribute to an organization’s success. Essential business skills for architects include:
- General business concepts knowledge: A fundamental understanding of general business concepts is essential for architects to make informed decisions and effectively communicate with stakeholders. Familiarity with finance, marketing, sales, operations, and strategy can provide a strong foundation for architects to engage with various aspects of an organization. The Personal MBA book has been my favorite resource for getting familiar with such concepts.
- Specific business domains of the organization: Besides general business concepts, architects should also develop a deep understanding of the specific business domain in which their organization operates. This knowledge may include knowledge of industry-specific regulations, market trends, customer preferences, competitive landscape, and more. Gaining insights into the specific business domain enables architects to better align their work with the organization’s goals, strategies, and priorities.
- Business analysis and requirements gathering: Architects should be adept at analyzing business needs and gathering requirements from various stakeholders. This skill involves understanding the organization’s objectives and translating them into functional and technical specifications that can guide the design and development of solutions.
Architects’ work always requires pragmatic decision-making. Decisions are the steering wheel of organizations. Architects outside of key decisions will have a limited impact on the organization.
Architects will have two roles concerning decision-making:
- Be actual decision-makers,
- Be advisors to decision-makers. and
- Evaluate and provide feedback on the decisions of others.
Essential decision-making skills include:
- Understanding that a decision is an irrevocable allocation of resources: money, human effort, time, physical actions, and opportunities.
- Know the basic of decision intelligence - the discipline of turning information into better action.
- Understand key problems of poor decision-making, such as the outcome bias, and how to deal with it.
- Know when to use intuition, and the value of clairvoyance.
- Understand that there is no such thing as not making a decision. You are more likely making the implicit decision to delay, postpone, or deprioritize a decision.
Questions to Consider
- On a scale from 1 to 10, how would you rate your current architectural skill sets, considering technical, communication, product, business skills, and decision-making skills?
- Reflect on your technical skills. How proficient are you in system design, understanding engineering processes, recognizing design patterns and tactics, ensuring security and privacy, optimizing systems, and maintaining code structures?
- Do you need to develop specific hard skills to enhance your architectural performance?
- How effectively do you communicate (in writing, visually, verbally, and through listening)? How strong are your networking and collaboration skills, and how well do you manage your time and organizational tasks?
- Can you identify an instance where your problem-solving skills and strategic thinking have significantly influenced your work as an architect?
- Looking at business skills, how well do you understand general business concepts, and how familiar are you with the specific business domain of your organization?
- How competent are you in business analysis and requirements gathering? Can you share an example where you effectively translated business objectives into functional and technical specifications?
- Are there any soft or business skills you need to develop or improve to succeed in your role as an architect?
- Reflect on how you have used your soft skills to effect organizational change. Are there areas or situations where you could have applied these skills more effectively?
- How do you balance developing and maintaining your hard, soft, and business skills? Is there a particular area you tend to focus on more, and why?