Lesson 167 - Architecture vs Design

Mark Richards
13 Aug 202312:09

Summary

TLDRIn this episode of Software Architecture Monday, Mark Richards explores the nuanced differences between architecture and design in software development. He introduces a spectrum of decisions rather than a binary distinction and provides criteria to determine the nature of decisions, such as their structural impact, strategic vs. tactical nature, effort involved, and the significance of trade-offs. Using examples like choosing microservices and design patterns, Richards illustrates how these criteria can help identify who should make certain decisions and their overall system impact, offering a practical tool for developers and architects to navigate their responsibilities.

Takeaways

  • 🏛 Architecture and design are not binary but a spectrum of decisions, with varying degrees of impact and responsibility.
  • 🔍 The first criterion to differentiate between architecture and design is the involvement of structural aspects of the system, such as component organization and coupling.
  • 📈 Strategic decisions typically involve more people, take longer to make, and have a broader impact, whereas tactical decisions are quicker and involve fewer people.
  • 💪 High effort decisions are more likely to be architectural, while low effort decisions tend to be more design-oriented.
  • ⚖️ Trade-offs are inherent in software architecture, with significant trade-offs usually indicating an architectural decision and less significant ones leaning towards design.
  • 🤔 Determining the nature of a decision helps in identifying who should be responsible for making it, either the architect or the development team.
  • 🔑 Understanding the impact of a decision is crucial; architectural decisions generally have a higher impact on the system compared to design decisions.
  • 🌟 The example of choosing microservices as an architectural style demonstrates a high-impact, strategic, high-effort decision with significant trade-offs.
  • 🛠 The use of a strategy design pattern is an example of a tactical, low-effort decision with less significant trade-offs, typically a design responsibility.
  • 🔄 The decision to break up a payment service into separate services is a gray area, requiring analysis of structural change, strategic/tactical nature, effort, and trade-offs.
  • 🛑 The criteria provided can act as a tool to determine the responsibility and impact of decisions, helping to avoid conflicts and ensure appropriate decision-making roles.

Q & A

  • What is the main topic of the lesson in the provided video script?

    -The main topic of the lesson is the difference between architecture and design in software development.

  • How does Mark Richards define the difference between architecture and design?

    -Mark Richards explains that the difference between architecture and design is not a binary decision but a spectrum of decisions that lie between architecture and design.

  • What is the first criterion mentioned to determine if a decision is architectural or design-related?

    -The first criterion is whether the decision involves some structural aspect of the system or is merely about the source code.

  • How can you differentiate between strategic and tactical decisions?

    -Strategic decisions tend to involve a lot more people and take weeks to months to make, while tactical decisions can be decided with one or two people within an hour or a day.

  • What does the level of effort criterion indicate about a decision?

    -The higher the effort required, the more architectural the decision probably is.

  • Why is the significance of trade-offs an important criterion in differentiating architecture from design?

    -Significant trade-offs usually indicate architectural decisions, while less significant trade-offs are typically associated with design decisions.

  • Why is it important to understand whether a decision is architectural or design-related?

    -Understanding this helps determine who has the responsibility for making the decision and the overall impact of the decision on the system.

  • What is an example of a decision that is clearly architectural?

    -Choosing to use microservices for a new system is an example of a decision that is clearly architectural.

  • Can you provide an example of a decision that is clearly design-related?

    -Choosing to use the strategy design pattern for a part of the code is an example of a decision that is clearly design-related.

  • What is an example of a decision that falls in the middle of the spectrum between architecture and design?

    -Choosing to break up the payment service into separate services for each payment type is an example of a decision that falls in the middle of the spectrum.

  • How can the criteria discussed help avoid conflicts between architects and developers?

    -The criteria help determine who should have the ultimate responsibility for a decision, avoiding stepping on each other's toes or making decisions that one shouldn't have the responsibility to make.

  • What is the overall impact of architectural decisions compared to design-related ones?

    -Architectural decisions tend to have a higher impact on the system compared to design-related decisions.

Outlines

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Mindmap

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Keywords

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Highlights

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora

Transcripts

plate

Esta sección está disponible solo para usuarios con suscripción. Por favor, mejora tu plan para acceder a esta parte.

Mejorar ahora
Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
Software ArchitectureDesign DecisionsStructural AspectsStrategic ChoicesTactical MovesEffort AnalysisTrade-offsArchitectural StyleMicroservicesDesign Patterns
¿Necesitas un resumen en inglés?