11

Click here to load reader

Architectural Thinking

Embed Size (px)

DESCRIPTION

What are the obstacles to architectural thinking? Based on Jackson's denials.

Citation preview

Page 1: Architectural Thinking

What have you learned?

• Ruby & Ruby on Rails: 182 hours

• Yoga teacher: 200 hours

• Architectures course: 196 hours

= $1421 in a minimum wage position

Page 2: Architectural Thinking

Architectural Thinking

• Thinking about system structures critically important for system qualities

• NOT about conventional

• NOT about convenient

• NOT about known

• NOT speaking

• NOT writing or diagramming

Page 3: Architectural Thinking

Jackson’s Denials

• Prior experience

• Hacking

• Abstraction

• Vagueness

... applicable as common traps of architectural thinking?

Page 4: Architectural Thinking

Denial of Thinking by Prior Knowledge

● “I have used this system before, so I know what it should be like”

● “The only problem we have is performance. We just don't know how to make the system faster”

• Failure to think beyond one's current frame of experience

• Does NOT mean prior experience is bad

Page 5: Architectural Thinking

Denial of Thinking by Abstraction

• “I have an architectural diagram, therefore I can start implementation”

• An abstraction helps avoid hard design problems

– Never thinking or forgetting what symbols mean

• Failure to come up with an abstraction that supports thinking, not shuts it down

• Does NOT mean abstraction is bad

Page 6: Architectural Thinking

Denial of Thinking by Hacking

• “Drivers, requirements, and diagrams are worthless – code is what matters”

• “I am a software engineer and care about software, not about museums”

• Skipping hard parts of thinking

– Jumping to the solution instead of considering the problem

– A popular combination of denials by prior knowledge and abstraction

● Does NOT mean experimenting is bad

Page 7: Architectural Thinking

Denial of Thinking by Vagueness

• “Customers make an order, which is processed by middleware and executed by the shipping department.”

• “This component satisfies the security quality attribute”

• Being not explicit about the subject of your thinking:

– World vs. system – Problem vs. solution– As is vs. as to be

Page 8: Architectural Thinking

Lesson

• Don’t let

– Your knowledge and experience

– Abstractions (conventional and your own)

– Specific goals

– Laziness

– Lack of time

stop you from architectural thinking

Page 9: Architectural Thinking

Caution

• Know when to stop thinking:

– Proven patterns and methods

– Design phase

● Acceptable to start with vague

– Limited resources

Page 10: Architectural Thinking

Support your thinking

• Self-awareness, reflection

• Chase intellectual discomfort

– Confusion, mistakes

• Practices & processes

Page 11: Architectural Thinking

References

• Michael Jackson, The World and The Machine in Proceedings of the 17th International Conference on Software Engineering, 1995.