Modern Architecture

Questions

Everybody wants to know...

Questions

These are questions that hide the One Thing Everybody in This Room Really Wants

"Tell be the Best Practices! Give me the Secret Sauce! Help me find the Magic Pill! the Silver Bullet, that will keep me from being outsourced/homesourced/consultantsourced/whatever!"

Questions

Geometry

In a triangle ABC, where D is a point that lies inside the triangle...

Prove that AD + DB < AC + CB

Questions

Word problem

A well, open at the top, has a diameter of 3 meters. We throw two straight sticks, four and five meters long, into the well. They land in the well, crossing each other. Determine the height at which they cross each other.

Questions

Word problem

A farmer has a rectangular ranch with a perimeter of 110 meters and an area of 700 square meters.

What are the dimensions of the ranch?

Questions

Word problem

A mathematician is challenged by a passer-by to guess the ages of his three sons.

Answers

The first three problems came from a junior high (12-14 years') or elementary (10-12 years') school mathematics textbook.

The fourth requires math no more sophisticated than what you learned by third grade, and a bit of deductive reasoning.

Answers

Can't solve it? Feeling a bit embarrassed?

You are not alone.

Answers

Answers

(Source: How to Solve It, 2nd Ed)

Answers

WTF?!?

Answers

"We're taught to decompose problems and treat the smaller simpler problems individually. This is wonderful when it works. But complex real-world problems don't often decompose easily or meaningfully.

"What might even be worse, we are spoon fed the solutions to problems, chapter by chapter, never once being forced to think about whether or not the problems we are facing should be solved with the technique just described in our textbook.

"Of course they must! Why else would this problem be in this chapter?!"

Answers

"This is the case not just with texts for elementary mathematics but also with most textbooks for university courses.

"The problem and its solution in these books are never far apart."

(Source: How to Solve It, 2nd Ed, p 3-4)

Analysis

"Real-world problems are difficult to solve, and they are difficult for several reasons:

Analysis

Architecture

A definition

Definition

ar·chi·tec·ture

"áarki tèkchər", noun

    building design: the art and science of designing and constructing buildings

    building style: a style or fashion of building, especially one that is typical of a period of history or of a particular place

    structure of computer system: the design, structure, and behavior of a computer system, microprocessor, or system program, including the characteristics of individual components and how they interact

Answer

What do we expect of a "good" architecture?

Answer

What do we expect of a "good" architecture?

Answer

Make it easy for developers to make "right" decisions

Answer

A (software) architecture is just a set of answers to questions that developers will ask every day

Architecture is Strategy

Yes, the same thing that business types talk about

Strategy

"The core of strategy work is always the same: discovering the critical factors in a situation and designing a way of coordinating and focusing actions to deal with those factors. ... A good strategy honestly acknowledges the challenges being faced and provides an approach to overcoming them. ... bad strategy covers up its failure to guide by embracing the language of broad goals, ambition, vision, and values."

Strategy

In the business world, strategy is made up of:

Strategy

Strategy to architecture

Strategy

What makes up a good strategy/architecture?

Architecture: Simple Rules

"Simple Rules", by Donald Sull, Kathleen M. Eisenhardt

Simple Rules

What are "simple rules"?

Simple Rules

Simple rules are...

Simple Rules

Simple rules are...

Architecture as Simple Rules

An example

AaSR Example

Representational State Transfer (REST)

AaSR Example

Architecture of the World Wide Web

AaSR Example

Rules

AaSR Example

Rules

Going Forward

... without going backwards

Going Forward

Architectural Framework

Processing

How the work gets done

Processing

Fundamental considerations

Processing

Implementation styles

Processing

Adaptation/Evolution

Processing

Concurrency

Presentation

All manner of things user-facing

Presentation

Fundamental components

Presentation

Considerations

Communication/Distribution

Processes talking to each other

Communication/Distribution

Fundamental concepts

Communication/Distribution

Exemplars

Communication/Distribution

Never forget the Fallacies of Distributed Computing

Communication/Distribution

Additional considerations

State Management

Adding context to conversations

State Management

Fundamental concepts

State Management

Considerations

Security

Outwitting the bad guys

Security

Fundamental considerations

Security

Generalized

Security

Specific

Management

How do we do all the things we need to do?

Management

Keeping everything running: "Dev-Ops"

Management

Deployment

Management

Administration

Management

Monitoring

Management

People

The Fallacies of Enterprise Computing

Mistakes are all too easy to repeat

The Fallacies of Enterprise Computing

"Essentially everyone, when they first build an enterprise application, makes the following assumptions. All turn out to be false in the long run and all cause big trouble and painful learning experiences."

    New technology is always better than old technology

    Enterprise systems are not "distributed systems"

    Business logic can and should be centralized

    Models can and should be centralized

    The system is monolithic

    The system is ever finished

    Vendors can make problems go away

    Enterprise architecture is the same everywhere

    Developers need only worry about development problems

Summary

What is architecture?

Credentials

Who is this guy?