12 More Essential Skills for Software Architects

Book description

Master The Crucial Technical Skills Every Software Architect Needs!

To succeed as a software architect, you must master both technical skills and soft skills. Dave Hendricksen illuminated the soft skills in his highly-regarded 12 Essential Skills for Software Architects. Now, in 12 More Essential Skills for Software Architects he turns to the technical side.

Drawing on his decades of experience, Hendricksen organizes technical skills into three areas.

PROJECT SKILLS: driving projects from ideation through delivery
TECHNOLOGY SKILLS: building, buying, and/or leveraging the right technologies
VISIONARY SKILLS: realizing an architectural vision that improves long-term competitiveness

He helps you develop and sharpen these key technical skills: from conceptualizing solutions to developing platforms and governance, and from selecting technology innovations to infusing architectures with an entrepreneurial spirit.

This guide reveals the technical skills you need and provides a coherent framework and practical methodology for mastering them.

Taken together, Hendricksen’s two books offer the most complete, practical pathway to excellence in software architecture. They’ll guide you through every step of your architecture career—from getting the right position to thriving once you have it.

Essential Architect Skills

Visionary Skills
Entrepreneurial Execution
Technology Innovation
Strategic Roadmapping

Technology Skills
Governance
Platform Development
Know-how
Architectural Perspective

Project Skills
Estimation
Partnership
Discovery
Management
Conceptualization

Dave Hendricksen is a big data architect for Thomson Reuters, where he works closely with the firm’s new product development teams to create innovative legal products for large-scale online platforms such as Westlaw.com. Hendricksen presented “Designing and Building Large-Scale Systems in an Agile World” at Carnegie Mellon University’s influential Software Engineering Institute. 

Table of contents

  1. About This eBook
  2. Title Page
  3. Copyright Page
  4. Dedication Page
  5. Contents
  6. Preface
    1. Book Motivation
    2. Book Goals
    3. Book Organization
  7. Acknowledgments
  8. About the Author
  9. Part I: Project Skills
    1. Chapter 1. Partnership
      1. What Is a Partnership?
      2. What Are the Key Aspects of a Partnership?
      3. Alignment
        1. With Whom Do I Need to Be Partners?
        2. Finding the Thought Leaders
        3. Knowing the Influencers
        4. Establishing Trusted Adviser(s)
        5. Community Review (Architecture Review Board)
        6. Seeking Alignment before Making Key Decisions
        7. Alignment of a Shared Vision Enables Partnerships
      4. Trust
        1. Establishing Trust
        2. Establishing Open Disclosure
        3. Avoiding Getting Spread Too Thin (Overcommitting)
        4. How to Unwind after You Have Overcommitted
        5. Learning to Say No
        6. Trust Enables Transparency—the Lifeblood of Partnerships
      5. Context
        1. Realizing the Nature of the Partnership
        2. Being Aware of Your Business Context
        3. Technical Decisions Require Partnerships
        4. Key Point: Technical Decisions Are Political Decisions
        5. Presenting the Situation First (Give Context)
        6. Having Your Partners’ Backs
        7. Contributing to Your Partners’ Successes
        8. Safety in Numbers
      6. Collaboration
        1. Bringing Value to the Table
        2. Becoming a Mentor
        3. Seeking a Mentor
        4. Partnerships Can Be a Source of Opportunity
        5. Partnerships Are a Step toward Ideation
        6. Collaboration Drives Stronger Partnerships
      7. Relationships
        1. Partnerships Are Not Just about Business
        2. Making Deposits before You Start Withdrawing
        3. External Partnerships
        4. Bad Experiences in the Past?
        5. Avoiding Caustic Members of the Organization
      8. Summary
      9. References
    2. Chapter 2. Discovery
      1. What Is Discovery?
      2. The Keys to Discovery
      3. Understanding the Customer
        1. Partnering with Sales, Marketing, and New Product Development
        2. Meeting with Customers
        3. What Will Delight the Customer?
      4. Understanding the Market
        1. Learning about the Customers’ Customers
        2. Where Are the Customers Willing to Spend Money?
        3. What Is the Competition Doing?
        4. Listening to Themes across Customers
      5. Understanding Your Business
        1. Learning What Your Business Wants to Do
        2. Personalizing Your Company’s Strategic Goals
        3. Developing a Business Context for Decision Making
      6. Summary
      7. References
    3. Chapter 3. Conceptualization
      1. Ideation
      2. Getting Involved Early
      3. Conceptualization: Bringing Ideas to Life
      4. Concept Formation
        1. What Language Are They Speaking?
        2. What Problem Is Being Discussed?
        3. When Arriving Late to the Ideation Party, Be Cautious about Committing
        4. What Does This Concept Look Like?
      5. Concept Reification
        1. Minimum Viable Product
        2. The Need for Experimentation
        3. Establishing Assumptions Can Help Harmonize the Vision
        4. Establishing Essential Capabilities and Customer Roles
        5. Reify with Customers
      6. Concept Evolution
        1. Being a Student of History
        2. Embracing Multiple Perspectives
        3. Seeking Conceptual Integrity
        4. Recognizing Adjacent Opportunities
      7. Summary
      8. References
    4. Chapter 4. Estimation
      1. Estimates Overview
        1. What Is the Purpose of the Estimate?
        2. Is There an Established Project Context?
        3. What Is an Architectural Approach?
      2. Understanding the Estimating Process
        1. Estimating Pipeline
        2. Types of Projects
        3. Alternative Ways of Financing Projects
        4. Understanding the Business Process
      3. Developing the Architectural Approach
        1. Is This a Partnership or a Contractual Relationship?
        2. What Is the Business Rationale for the Project?
        3. What Is the Marketing Approach?
        4. Is This a Repeat Estimate?
        5. What Risks Have You Identified? Can You Mitigate Them?
        6. Are You Building a Platform?
        7. Are You Re-platforming?
        8. What Technologies Are in Play?
        9. What Is the Organizational Structure?
        10. Do You Need to Seek External Research?
        11. Have You Identified Leverageable Components?
      4. Estimating Strategies
        1. Plan for Unknowns and Challenges
        2. Be Realistic: Don’t Cave In Just to Get the Project
        3. Keep the Critical Things Close
        4. Develop Estimating Feedback Loops
        5. Minimize Organization Coupling and Cohesion
        6. PowerPoint as You Go
        7. Develop Checklists
        8. Gain Executive and Organization Buy-in Early
      5. Estimating Principles
        1. Know the Hard Problem
        2. Provide Options
        3. Leave Design Decisions Open
        4. Know the Schedule
        5. Know What You Want
        6. Avoid Being Negative
        7. Seek Opportunities to Say Yes
        8. Bargain Hard Now, Not Later
        9. Don’t Cave In
        10. Trust Your Gut Feeling
        11. Beware of Projects That Others Have Estimated
        12. Know the Business’s Targeted Build Price
      6. Bringing It All Together
        1. Knowing Your Timeline
        2. Who Is Involved with Estimating?
        3. Understanding Your Leverage Points
        4. Putting It All Together
        5. Engaging Executives
        6. Selling the Estimate
      7. Summary
      8. References
    5. Chapter 5. Management
      1. Architecture Management Defined
      2. Areas of Architectural Responsibility
      3. Striving toward Technology Excellence
        1. Establishing a Vision
        2. Raising Awareness of Technical Debt and Funding the Right Solution
        3. Keeping the Technical Environment Interesting
        4. Finding Potential Patents
        5. Seeking Data Center and Operations Support for Your Direction
        6. Generalizing the Solution
        7. Making It Strategic
        8. Leveraging Solutions
      4. Delivering Projects
        1. Partnering with the Project Manager
        2. Eliminating Dependencies Ruthlessly
        3. Managing Expectations
        4. Mastering the Development Process
        5. Being Where the Problems Are
        6. Being Aware of Nontransparency on Your Projects
        7. Limiting the Number of Contractors in Leadership Positions
        8. Providing Technical Management (Areas of Responsibility)
        9. Managing by Walking Around
      5. Resolving Issues
        1. Asking the Tough Questions
        2. Dealing with Problems in the Moment
        3. Saying No, but with Options
        4. Striving to Be Consistent in Your Decisions
        5. Learning to Deal with Things Head-on, Cards Faceup on the Table
        6. Knowing What You Are Willing to Cave On When Negotiating
        7. Being Willing to Challenge Areas You Don’t Agree with (Respectfully)
        8. Being Willing to Stand Your Ground
        9. Knowing What Is Not Your Problem
      6. Partnering with Executives
        1. Managing Risk through Transparency
        2. Reviewing Estimates
        3. Limiting the Number of Boxes on Diagrams
        4. Raising Technology Awareness
        5. Having Your Boss’s Back
        6. Avoiding Interrupting Executives When They Are Talking
        7. Being Confident
      7. Managing Your Time
        1. Limiting the Number of Projects to Which You Commit
        2. Defining Your Role and Bounding It
        3. Prioritizing Where to Engage Your Time
        4. Learning to Make Decisions on Limited Data and with Limited Time
        5. Attending Meetings Only If You Are an Active Participant
        6. Getting a Deadline
        7. Delegating to Those You Trust
        8. Meeting in Person
      8. Grooming Technical Talent
        1. Having an Architecture Mentorship Program
        2. Having a Technology Forum
        3. Encouraging Members of Your Technical Team to Attend Local Conferences and User Groups
        4. Hiring the Best People: Don’t Just Fill a Position
      9. Enhancing Your Skill Set
        1. Sitting with Other Architects
        2. Doing Something Technical Every Day
        3. Focusing on What Scares You
        4. Becoming an Expert in an Area
        5. Looking for Projects Where You Can Grow Your Skills
      10. Summary
      11. References
  10. Part II: Technology Skills
    1. Chapter 6. Platform Development
      1. Platform Development Defined
      2. The Elements of Platform Development
      3. Capabilities
        1. Defining the Set of Objectives
        2. Defining the Set of Capabilities
        3. Focusing on Leverageable Capabilities
        4. Developing a Strong Conceptual Model
        5. APIs Are the Keys to the Kingdom
      4. Ecosystem
        1. Platform Users
        2. Platform Ownership
        3. Platform Management
        4. Platform Development
        5. Acknowledging the Costs Associated with the Platform
        6. Managing Platform Quality
        7. Platform Integration
        8. Scalability
        9. Security
      5. Guiding Principles
        1. Seek Exceptional Quality
        2. Seek Operational Excellence
        3. Seek Configurability over Hard Coding
        4. Seek Leverageability
        5. Seek Redundant Architecture
        6. Seek Linear Scalability
        7. Avoid Platform Entanglement
        8. Avoid Platform Sprawl
        9. Keep Upgrading to Current Technologies
      6. Summary
      7. References
    2. Chapter 7. Architectural Perspective
      1. Architectural Perspective Defined
      2. Architectural Principles
        1. The Principle of Least Surprise
        2. The Principle of Least Knowledge (aka the Law of Demeter)
        3. The Principle of Least Effort (aka Zipf’s Law)
        4. The Principle of Opportunity Cost
        5. The Principle of Single Responsibility
        6. The Principle of Parsimony (aka Occam’s Razor or KISS)
        7. The Principle of Last Responsible Moment (aka Cost of Delay)
        8. The Principle of Feedback
      3. Architectural Concerns
        1. Availability
        2. Scalability
        3. Extensibility
        4. Repeatability
        5. Compatibility
        6. Sustainability
        7. Security, Disaster Recovery, Business Continuity, and Open-Source Licensing
        8. Third-Party Integration
      4. Architectural Communication
        1. Domain Model
        2. Process Diagram
        3. Context Diagram
        4. User Interface Mock-ups
        5. Logical Architecture Diagram
        6. Executive Overview Diagram
        7. Hardware Environments Diagram
        8. Risks, Assumptions, Issues, and Dependencies (RAID)
      5. Bringing It All Together
      6. Summary
      7. References
    3. Chapter 8. Governance
      1. Governance Defined
      2. Governance Principles
        1. Avoid Vendor Lock-in
        2. Encourage Open-Source Usage
        3. Minimize the Cost of Disruption (aka Enable Business Continuity Planning and Disaster Recovery)
        4. Enable Loose Coupling between Business Units
        5. Leverage Common Capabilities
        6. Ensure Regulatory Compliance
        7. Ensure Security
        8. The Principle of Least Privilege (aka the Principle of Least Authority)
        9. Seek Unified Identity and Access Management
        10. Seek Data Portability (aka Avoid Data Lock-in)
        11. Seek Integration and Automation
      3. Areas of Governance
        1. Estimates
        2. Management Concerns
        3. Architecture
        4. Design
        5. Building, Coding, Integrating, Deploying, Testing, and Monitoring
      4. Governance and a Healthy Tension with Agile
      5. Summary
      6. References
    4. Chapter 9. Know-how
      1. Know-how Defined
      2. Developing Know-how
        1. Developing Know-how Relevance
        2. Developing Know-how Currency
        3. Developing Know-how Excellence
      3. Know-how Synthesis
      4. Know-how-Driven Architecture
      5. Summary
      6. References
  11. Part III: Visionary Skills
    1. Chapter 10. Technology Innovation
      1. Technology Innovation Defined
      2. Trend Awareness
        1. Areas of Trend Awareness
        2. Applying Trend Awareness
      3. Business Alignment
        1. Paying Attention to Trends on Customer Inquiries
        2. Getting Customer Feedback
        3. Analyzing Customer Feedback
        4. When to Be Cautious about Trends
        5. When to Embrace a Trend
      4. Strategic Research
        1. Research Approaches
      5. Technology Innovation Principles
        1. Seek Approved but Minimal Time and Funding to Explore
        2. Make Small Bets
        3. Use Technology Scouting to Scan and Track the Trends Regularly
        4. Have a Lab Area
        5. Use Rapid Experimentation with User Feedback Loops
        6. Show the Business and Customers Prototypes
        7. Introduce New Technologies at the Edge
      6. Pragmatic Technology Innovation
      7. Summary
      8. References
    2. Chapter 11. Strategic Roadmapping
      1. Strategic Roadmapping Defined
      2. Elements of a Strategic Roadmap
        1. Strategically Focused
        2. Time Sequenced
        3. Organized by Swim Lanes
        4. Dependency Aware
        5. Visually Represented
        6. Collaborative in Nature
        7. Code Named
        8. Context Dependent (Personalized)
        9. Multidisciplinary and Specialized
        10. Prioritized
        11. Iterative in Nature
        12. Updated
        13. Published
        14. Measurable
      3. Roadmapping Strategies
        1. Whiteboarding the Roadmap Using Sticky Notes
        2. Starting with the End (aka Work Backward)
        3. Holding Workshops
        4. Thinking of Roadmapping as a Project
        5. Capturing Underlying Guiding Principles
      4. Roadmapping Principles
        1. Keep It Simple
        2. Partner with the Business
        3. Get Moving
        4. Have Fun
        5. Strategies without Goals Are Pointless
        6. Identify Areas That Require Research and Innovation
        7. Identify Skill and Knowledge Gaps
        8. Be Flexible on the Timing of Getting to the Destination
        9. Be Willing to Take a New Route
        10. It’s Not about the Details; Focus on the Destination and Key Milestones
        11. Follow What Energizes You
      5. What Is an Architect’s Role in Roadmapping?
      6. Where Can You Use Roadmaps?
      7. Roadmap Considerations
      8. Roadmap Socialization
      9. Celebrating Milestones Achieved
      10. Summary
      11. References
    3. Chapter 12. Entrepreneurial Execution
      1. Entrepreneurial Execution Defined
      2. Elements of Entrepreneurial Execution
        1. Entrepreneurial Spirit
        2. Calculated Risk Taking
        3. Delivering Results
      3. Entrepreneurial Execution Principles
        1. Affordable Loss Principle
        2. Lemonade Principle
        3. Patchwork Quilt Principle
        4. Bird-in-the-Hand Principle
        5. Pilot-in-the-Plane Principle
        6. Seize the Moment
        7. Follow Your Passion
        8. Learn to Pivot
        9. Learn by Doing (Making Mistakes), but Do It Cost-Effectively
        10. Seek Feedback
        11. Seek Leverage
      4. Architecting with Entrepreneurial Execution
      5. Summary
      6. References
  12. Epilogue: Bringing It All Together
    1. Thinking about Skill Development
    2. Final Thought
  13. Index

Product information

  • Title: 12 More Essential Skills for Software Architects
  • Author(s): Dave Hendricksen
  • Release date: August 2014
  • Publisher(s): Addison-Wesley Professional
  • ISBN: 9780133377064