Building Skills
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.
KEY POINTS:
- An architect’s typical skillset includes hard (technical) skills, soft (people & social) skills, product development, business skills, and decision-making skills.
- Hard (technical) skills are essential for designing, implementing, and maintaining an organization’s technology landscape.
- Soft skills are integral to social architecture, enabling individuals to navigate and contribute to these social systems effectively.
- Product development knowledge is the bridge that helps architects align technical solutions with customer needs and business objectives.
- Business domain knowledge is not just useful but essential for architects to create solutions that deliver real value.
- Decision-making skills ensure that architectural decisions are sound, sustainable, and aligned with long-term strategic objectives.
Architects must possess a comprehensive skill set to manage the complexities of modern IT environments effectively (Figure 1). By skills, I mean not only having relevant knowledge but also the ability to apply that knowledge in practical situations. These skills encompass a blend of technical expertise, communication proficiency, and influence capabilities, ensuring architects can navigate technological challenges and organizational dynamics.
Figure 1: Skills are one of the three main elements of being an architect (skills, impact, leadership). Lack of skills leads to impractical decisions that are not informed by in-depth knowledge.
Core skills of architects include:
-
Technical Skills: Architects need a robust foundation in new and legacy technology stacks. This foundation includes proficiency in topics like cloud architecture, containerization technologies like Kubernetes, and a deep understanding of various programming languages and frameworks. Staying updated with emerging technologies and industry trends is essential for making informed decisions that align with organizational goals.
-
Communication Skills: Effective communication is crucial for architects. They must articulate complex technical concepts in a way that is understandable to non-technical stakeholders. These skills involve clear verbal and written communication, active listening, and the ability to tailor messages to different audiences. Strong communication skills help bridge the gap between technical teams and business units, fostering collaboration and mutual understanding.
-
Influence Skills: Architects often need to persuade and influence others, including stakeholders, developers, and executives. This requires negotiation skills, the ability to build consensus, and the credibility to advocate for necessary changes. Influence skills enable architects to drive strategic initiatives and ensure that architectural decisions are implemented effectively across the organization.
-
Product Development Skills: Architects must understand the product development lifecycle. This understanding should include knowledge of product development methodologies, user experience design, and product management principles. Architects should be able to contribute to product strategy, ensuring that technical solutions align with customer needs and business objectives.
-
Business Domain Knowledge: A deep understanding of the business domain is essential for architects to create solutions that deliver real value. This knowledge includes industry-specific regulations, market trends, and competitive landscape. Business acumen helps architects align technical initiatives with business goals, driving growth and innovation.
-
Decision-Making Skills: Architects are often required to make critical decisions that impact the entire organization. This involves assessing risks, evaluating trade-offs, and making informed choices based on data and experience. Strong decision-making skills ensure that architectural decisions are sound, sustainable, and aligned with long-term strategic objectives.
Technical Skills
Hard or technical skills are the abilities and knowledge needed for designing, implementing, and maintaining various aspects of an organization’s technology landscape.
Some typical hard skills that architects need in their work include:
-
System design: This involves 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. System design skills ensure the architect can envision and structure systems effectively to meet organizational goals.
-
Engineering processes: An in-depth understanding of engineering processes, including the software development life cycle, Agile development, DevOps, and continuous delivery, is crucial. Architects must ensure their systems are developed efficiently and effectively, adhering to best practices and methodologies that enhance software development productivity and quality.
-
Design patterns and tactics: Familiarity with design patterns and tactics such as Cloud Design Patterns, Model-View-Controller (MVC), Service-Oriented Architecture (SOA), and Microservices is essential. These patterns help architects design modular, scalable, and maintainable systems, providing solutions to common design problems and ensuring that the systems can evolve and adapt over time.
-
Security and privacy by design: With cybersecurity’s increasing importance, architects need a deep understanding of security and privacy best practices. They must design secure and compliant systems with data protection regulations, incorporating security measures at every stage of the design process to protect sensitive information and mitigate risks.
-
System optimizations: Knowledge of optimizing systems for performance and scalability is critical. Architects should be adept at using tools and techniques for profiling and tuning systems to achieve optimal performance, ensuring that the systems can handle increased load and provide a seamless user experience.
-
Source code structures and maintainability: A good understanding of software engineering principles such as clean code, code maintainability, and refactoring is important. Architects should design systems that are easy to maintain and modify, promoting long-term sustainability and reducing the technical debt that can accumulate over time.
-
Reliability and stability (anti)patterns and tactics: Understanding typical reliability and stability issues in complex systems is crucial. Architects should identify and address potential problems using patterns and tactics such as redundancy, failover, and graceful degradation to ensure that systems remain stable and reliable under varying conditions.
-
Usability: A good understanding of usability principles is necessary for designing systems that are easy to use and provide a good user experience. Architects must ensure that their designs are user-friendly, intuitive, and accessible, enhancing end-users’ overall satisfaction and productivity.
By mastering these skills, technical architects can effectively contribute to the success of their organizations, ensuring that technology solutions are well-designed, secure, efficient, and user-centric.
The section Appendix provides some pointers for resources to build your technical skills.
Soft Skills
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.
–Grady Booch
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 include:
-
Communication skills, including written, visual, verbal (presentation), and listening skills: Effective communication involves expressing oneself clearly and understanding and empathizing with others. These skills are essential for building and maintaining relationships, as well as for conveying ideas and facilitating discussions. Written communication ensures clear and concise messages, visual communication enhances understanding through diagrams and presentations, verbal communication is critical in delivering impactful presentations, and active listening fosters understanding and collaboration.
-
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. Effective networking opens doors to new opportunities and resources, while strong collaboration skills ensure that team efforts are synergistic and productive.
-
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. Mastering these skills helps individuals stay on top of their responsibilities, reduces stress, and enhances overall productivity.
-
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. By honing these abilities, individuals can contribute to innovative solutions, drive strategic initiatives, and confidently navigate complexities.
By developing these soft skills, individuals can significantly enhance their ability to function effectively within organizations. These skills foster environments where collaboration, efficiency, and innovation thrive, leading to personal success and contributing to the overall health and productivity of the organizations and communities they are a part of.
The Appendix provides some pointers for resources to build your soft skills.
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. It’s a creative phase where innovation is encouraged, and a broad range of ideas are considered.
-
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. This step helps understand the market landscape and identify the product’s unique selling points.
-
Product Design and Development: This phase involves turning the validated concept into a detailed product design. It includes creating prototypes, testing, and refining the product design based on feedback and performance metrics. Collaboration between design and engineering teams is crucial to ensure the product is functional, aesthetically pleasing, and manufacturable.
-
Testing and Validation: The product undergoes rigorous testing to ensure it meets quality standards and performs as expected. This stage includes usability testing, user performance testing, and sometimes beta testing with a limited audience. Feedback collected during this phase is used to make necessary adjustments and improvements.
-
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. A successful launch plan ensures the product reaches the intended audience effectively.
-
Post-Launch Evaluation and Iteration: After the product launch, it is important to monitor its performance in the market. This activity includes collecting customer feedback, analyzing sales data, and assessing overall market reception. Continuous improvement is essential; iterations based on this feedback help refine the product and address any issues.
Understanding the product development process is not just beneficial, but essential for architects. It requires a multidisciplinary approach involving teams from various functions such as product management, design, engineering, and marketing. This understanding is crucial for architects, as it helps them align their technical designs with the overall product strategy, ensuring that a product is not only technically sound but also meets market demands and customer expectations. The process aims to create innovative, desirable, and commercially viable products that meet customer needs and provide a competitive advantage in the market.
Business Skills
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. This broad knowledge base helps architects to see the bigger picture, understand how their technical decisions impact the business, and ensure their designs support the organization’s strategic objectives. The Personal MBA book is a valuable resource for familiarizing oneself with such concepts, offering insights into essential business principles and practices.
-
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 includes 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. For example, an architect in the healthcare industry needs to understand healthcare regulations, patient care standards, and the evolving needs of healthcare providers and patients.
-
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. Practical business analysis ensures that the solutions architects design are aligned with business goals and deliver tangible value. This process often includes conducting interviews, facilitating workshops, and using techniques such as SWOT analysis (Strengths, Weaknesses, Opportunities, Threats) and business model canvases to capture and prioritize requirements.
-
Stakeholder Management: Communication and relationship management with stakeholders is crucial. Architects must understand the interests and concerns of different stakeholders, including executives, managers, employees, and customers. This understanding helps gain buy-in for architectural decisions and ensure that the solutions meet stakeholder needs.
-
Project Management: Basic project management skills enable architects to oversee the implementation of their designs, ensuring projects are completed on time, within scope, and budget. Understanding project management methodologies can help architects work effectively with project managers and development teams.
-
Finance: Architects should understand basic financial principles, including budgeting, cost-benefit analysis, return on investment (ROI), and “Earnings Before Interest, Taxes, Depreciation, and Amortization” (EBITDA). This knowledge helps them make cost-effective decisions and justify the financial viability of proposed solutions.
-
Strategic Thinking: Architects need to think strategically and understand how their work supports the organization’s long-term goals. This thinking includes aligning technology initiatives with business strategy, identifying opportunities for innovation, and anticipating future business needs.
-
Change Management: Implementing new systems and architectures often involves significant organizational change. Architects should be familiar with change management principles to help facilitate smooth transitions, manage resistance, and successfully adopt new technologies and processes.
By mastering these business skills, architects can ensure that their technical solutions are innovative, efficient, and aligned with their organizations’ broader business goals and strategies. This holistic approach enables architects to contribute more effectively to organizational success and drive meaningful business outcomes.
Decision-Making Skills
Architects’ work always requires pragmatic decision-making. Decisions are the steering wheel of organizations, and architects who are not involved in key decisions will have a limited impact on the organization.
Architects will have three roles concerning decision-making:
- Be actual decision-makers
- Be advisors to decision-makers
- Evaluate and provide feedback on the decisions of others
Essential decision-making skills include:
-
Understanding that a decision is an irrevocable allocation of resources: This involves recognizing that every decision commits resources such as money, human effort, time, physical actions, and opportunities. Architects must consider the long-term implications of these allocations, ensuring that resources are used efficiently and effectively to achieve organizational goals.
-
Know the basics of decision intelligence: Decision intelligence is the discipline of turning information into better action. It involves leveraging data, analytics, and cognitive science to enhance decision-making processes. By understanding and applying decision intelligence, architects can make more informed, evidence-based decisions that lead to better outcomes.
-
Understand key problems of poor decision-making, such as the outcome bias: Outcome bias occurs when decisions are judged based on their results rather than the quality of the decision-making process itself. Architects need to recognize and mitigate this bias by focusing on the decision-making process, ensuring that decisions are made systematically and rationally, regardless of the outcomes.
-
Know when to use intuition: Intuition can be a valuable tool in decision-making, especially when data is limited or time is of the essence. Architects should understand when to rely on their intuition and when to seek additional information.
-
Understand that there is no such thing as not making a decision: Delaying or postponing a decision is a decision with its own set of consequences. Architects must know the implications of inaction and understand that deferring decisions can lead to missed opportunities, increased risks, and reduced organizational agility.
-
Risk Assessment: Understanding and assessing risks is crucial for making informed decisions. Architects should evaluate potential risks associated with different options and develop strategies to mitigate these risks.
-
Collaborative Decision-Making: Involving relevant stakeholders in decision-making ensures that diverse perspectives are considered, leading to more robust and well-rounded decisions. Architects should facilitate collaboration and consensus-building among team members.
-
Ethical Considerations: Architects must ensure their decisions align with ethical standards and organizational values. These actions involve considering the broader impact of decisions on stakeholders, society, and the environment.
-
Adaptability and Flexibility: In a rapidly changing business environment, architects must be adaptable and open to revisiting and revising decisions as new information becomes available. Flexibility allows for continuous improvement and responsiveness to emerging challenges and opportunities.
Architects can enhance their ability to influence and drive organizational success by developing these decision-making skills. Whether acting as decision-makers, advisors, or evaluators, architects are critical in steering their organizations toward strategic goals and sustainable growth.
Integrating Skills for Success
Architects must integrate these diverse skills into a cohesive approach to be truly effective. They must be lifelong learners, continuously updating their knowledge and adapting to new challenges.
Here’s how these skills come together in practice:
- Technical Proficiency: Enables architects to design robust, scalable solutions that leverage the latest technologies.
- Effective Communication: Ensures that architectural visions are conveyed and understood across all levels of the organization.
- Influence and Persuasion: Help garner support for architectural initiatives and drive change.
- Product Insight: Aligns technical solutions with customer needs and market demands.
- Business Understanding: Ensures that architectural decisions contribute to the organization’s strategic objectives.
- Decisive Leadership: Guides the organization through complex technological landscapes with confidence and clarity.
Architects can effectively manage the interplay between technology, business, and organizational dynamics by developing and honing these skills. This comprehensive skill set enhances their ability to design innovative solutions and ensures they can lead teams and influence stakeholders to achieve a cohesive and successful architectural vision.
To Probe Further
- Appendix: Bookshelf
- Old Books that Every Architect Should Read, by Gregor Hohpe, 2024
- Back from the engine room, by Gregor Hohpe, 2023
- Debugging Architects, by Gregor Hohpe, 2021
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?
On Being Architect ← On Being Architect: Introduction |
On Being Architect Making Impact → |