Software Design Hierarchy- A Refresher

This blog discusses the design hierarchy framework that guides software development from the high-level strategy to concrete implementation decisions.

Effective software and system design is not a single step but a structured progression of interconnected concepts that guide how a solution is envisioned, shaped, and realized. It begins with Design Strategy, which sets the overall direction aligned to business and technical intent. From this foundation emerge Design Goals, defining what success looks like, and Design Constraints, establishing the non-negotiable boundaries within which the design must operate. Design Considerations capture the key trade-offs and forces that influence choices, while Design Principles provide consistent guidance for making those choices across the system.

As the design becomes more concrete, architects select Design Elements—the building blocks of the solution—and apply proven Design Patterns to address recurring problems efficiently and reliably. These culminate in explicit Design Decisions, which translate strategy and intent into actionable architecture and implementation choices. Together, these concepts create a coherent framework that helps teams design systems systematically, balance trade-offs, ensure alignment with goals and constraints, and deliver scalable, maintainable, and well-reasoned solutions.

How do they exist in development context

ConceptAt What Level do they exist?When are they applied?What is the Output?How Frequently do they change?
Design StrategyHighestFirstOverall approach documentRarely (major pivots only)
Design GoalsHighAfter strategyMeasurable objectivesQuarterly/yearly
Design ConsiderationsMediumDuring designList of trade-offsPer major feature
Design ElementsMediumDuring designSystem componentsPer feature/service
Design PrinciplesMediumBefore codingCoding guidelinesRarely (established early)
Design PatternsMediumDuring designPattern catalogPer feature
Design DecisionsLowThroughoutDecision recordsDaily/weekly
Design ConstraintsAnyContinuouslyConstraint listWhen requirements change

Are they always approached top down ? [ In practice, it’s not purely sequential – it’s iterative]

An Example

Design constraints are continuous – like they are both beginning and end and in between

What is the most influential of all?

Design constraints are arguably the most important design concept because they define the boundary of what’s possible. They limit everything else, they limit the solution space, they prevent expensive failures and they shape innovation by often driving better solutions. Constraints can be many types like Technical Constraints (Infrastructure limitations, Technology mandates/ restrictions, Integration requirements, Performance requirements, Security requirements ), Business Constraints( Budget (capital and operational),Timeline and milestones,- Revenue/profitability targets, Competitive pressures ), Regulatory/Compliance Constraints (Industry regulations (HIPAA, PCI-DSS, GDPR), Company policies, Audit requirements, Data residency), Organizational Constraints( Team size and skills, Support capabilities, Change management capacity, Political realities) and External Constraints (Third-party dependencies, Vendor limitations, Customer requirements, Market conditions)

A Classification of Design Constraints and How to Navigate them

Constraint Constraint TypeExampleStrategy to deal with the constraints 
HARD CONSTRAINTSNon-Negotiable– Laws and regulations
– Physics and mathematics
– Third-party platform limitations
– Contractual obligations
Work within these. No exceptions.
FIRM CONSTRAINTSDifficult to Change– Budget (can increase with business case)
– Timeline (can extend with justification)
– Team size (can hire, but takes time)
– Legacy systems (eventual replacement possible)
Challenge respectfully with data.
SOFT CONSTRAINTSPreferences– Technology preferences
– Architectural styles
– Team preferences
– “Nice to have” features
Strategy: Negotiate and find alternatives.
PERCEIVED CONSTRAINTSNot Real– Assumptions never validated
– Outdated policies
– Misunderstandings
Question and validate.

Following flow chart suggests a way of navigating the constraints if we need to change them

Architectural Principles, Policies and Guidelines and their impact on Design Hierarchy

In any organization before we start to work on any of the aforesaid concepts in specific projects, the over all Architectural Principles, Policies and Guidelines set at the organization level provide the boundaries in which the design concepts has to operate. Architectural principles, policies, and guidelines don’t restrict good design – they enable it by providing structure, consistency, and clear direction within which designers can focus on solving real problems rather than debating fundamental questions that have already been answered at the organizational level.

Architectural Principles are the Fundamental beliefs and values that guide all architectural decisions across the organization, Architectural Policies are the Mandatory rules and requirements that must be followed. Unlike principles (values), policies are enforceable rules with consequences for violation and Architectural Guidelines are the Recommended practices, patterns, and approaches that should be followed unless there’s a good reason not to. Unlike policies (mandatory), guidelines are recommendations with flexibility.

AspectArchitectural PrinciplesArchitectural PoliciesArchitectural Guidelines
DefinitionFundamental beliefs and values that guide all architectural decisionsMandatory rules and requirements that must be followedRecommended practices and approaches that should be followed
NaturePhilosophical, aspirationalPrescriptive, enforceableAdvisory, flexible
Authority“What we value”“What you must do”“What you should do”
FlexibilityEnduring, rarely changeCan change with approval, exceptions require justificationFrequently updated, deviation acceptable with reasoning
EnforcementCultural, through leadershipAutomated checks, formal review gates, consequences for violationCode reviews, recommendations, no formal consequences
ScopeOrganization-wide, all systemsOrganization or domain-wideTeam or technology-specific
MeasurabilityQualitative, hard to measureQuantitative, auditableMix of both
Examples“Cloud-first”, “Design for failure”, “Data is an enterprise asset”“All databases must be encrypted”, “APIs must have auth”, “99.9% uptime SLA”“Prefer PostgreSQL”, “Use microservices”, “Code coverage >80%”
Violation ConsequenceLoss of architectural coherenceBlocked deployment, formal exception neededWarning, documentation required
Created ByCTO, VP EngineeringArchitecture Review BoardArchitecture Guild, Senior Engineers
Review FrequencyAnnuallyQuarterlyContinuously

Following table shows the impact of Principles, Polices and Guidelines on the design concepts 

Design ConceptImpact of PrinciplesImpact of PoliciesImpact of GuidelinesExample
Design StrategyShape overall approach and philosophyConstrain valid strategic optionsInfluence technology and pattern choicesPrinciple: “Cloud-first” + Policy: “Must use AWS” + Guideline: “Prefer microservices” → Strategy: “Cloud-native microservices on AWS”
Design GoalsTranslate values into measurable objectivesBecome mandatory goalsBecome recommended goalsPrinciple: “Design for failure” → Policy: “99.9% uptime” → Goal: “Max 43 min downtime/month”
Design ConsiderationsInfluence prioritization of trade-offsRemove certain options from considerationGuide evaluation of alternativesPrinciple: “Cost efficiency” prioritizes cost in cost-vs-performance trade-offs
Design ElementsGuide what types of components to useMandate specific components or technologiesRecommend preferred componentsPolicy: “Must use API Gateway” → Element: AWS API Gateway (mandatory)
Design Principles (Project)Cascade to project-level principlesMust comply at project levelInform project-level best practicesOrg Principle: “Security built-in” → Project Principle: “Auth on all endpoints”
Design PatternsFavor patterns aligned with valuesRequire specific patternsRecommend proven patternsGuideline: “Use CQRS for complex reads” → Pattern: CQRS selected
Design DecisionsProvide values-based rationaleCreate non-negotiable constraintsProvide default choicesDecision: “Use PostgreSQL” traces to Guideline: “Prefer PostgreSQL”
Design ConstraintsCreate philosophical boundariesLiterally become constraintsCreate soft constraintsPolicy: “AWS only” becomes hard constraint; Guideline: “Prefer managed services” becomes soft constraint

Following chart summarizes the impact

Conclusion 

In any application development project it helps to understand the design concepts , it’s hierarchy and it’s relations to the Architectural Principles, Policies and Guidelines in effectively communicating with all stakeholders and navigating the execution.

Scroll to Top