principles and techniques of evolutionary architecture with dr. rebecca parsons

18
Principles and Techniques of Evolutionary Architecture Rebecca Parsons Chief Technology Officer ThoughtWorks

Upload: bamdad-dashtban

Post on 10-May-2015

850 views

Category:

Technology


1 download

DESCRIPTION

Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons Video avaialble here: https://www.youtube.com/watch?v=ZIsgHs0w44Y&feature=youtu.be Manchester Geek Nights ThoughtWorks

TRANSCRIPT

Page 1: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Principles and Techniques of Evolutionary Architecture

Rebecca ParsonsChief Technology Officer

ThoughtWorks

Page 2: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Principles of evolutionary architecture

Why should I care?

Emergent design vs evolutionary architecture

How to achieve an evolutionary architecture in practice

Techniques of evolutionary architecture

Agenda

Page 3: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

It’s harder to predict the future

Expectations for pace of change are increasing rapidly

Business model lifetimes are shortening

If you miss your minute of fame...

Why Should I Care?

Page 4: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Evolutionary Architecture and Emergent Design

Evolutionary versus Emergent

Design and Architecture

Design and Architecture

Page 5: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Postel’s Law

Last responsible moment

Architect and develop for evolvability

Conway’s Law

Architect for testability

Principles of Evolutionary Architecture

Page 6: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Minimizes technical debt from complexity

Delay decisions as long as you can, but no longer

Maximizes the information you have

Evolutionary, neither emergent nor based on guesswork

Decide early what your drivers are, and prioritize decisions accordingly

Last Responsible Moment

Page 7: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Consider data lifecycle and ownership

Sensible breakdown of functionality

Lightweight tooling and documentation

Appropriate coupling

Architect for Evolvability

Page 8: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Software internal quality metrics focusing on ease of change

Find hotspots and focus efforts there

Measure continually, focusing on trends

Develop for Evolvability

Page 9: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Reversability

Page 10: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Only validate what you need

Be conservative in what you send

Be liberal in what you receive

Use version changes when a contract must be broken

Holds for any information exchange

Postel’s Law

Page 11: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Business sensible components

Aiming towards testability produces a well-architected system

Messaging infrastructure used for messaging, not business logic

Build pipelines support the volume

Testing at many levels, including contract

Architect for Testability

Page 12: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Broken communications imply complex integration

Organization’s design systems reflecting their communication structures

If you don’t want your product to look like your organization, change your organization (or your product)

Silos often result in broken communication

Conway’s Law

Page 13: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Database Refactoring

Continuous Delivery

Contract testing

Techniques

Page 14: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Changes compose in the same way functions compose

De-compose big change into series of small changesEach change is a refactoring/migration pair (or triple if you include access code)

And apply in the various environments during promotion

And of course, version control the changes

Database Refactoring

Page 15: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Automate testing at all levels

Automate environments and configurations

Automate builds and deployments and use continuous integration

Just because you CAN release at any time doesn’t mean you HAVE to

Deployment should be boring!!

Continuous Delivery

Page 16: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Maximizes parallel independent work

Acceptance tests at the systems’ interface

Documents assumptions made

One traditional role of Enterprise Architect

Used in conjunction with Postel’s Law

Contract Testing

Page 17: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Understand various forms of technical debt

Define your architectural fitness function

Delay your decisions as long as you can

Create and maintain the testing safety net

Implement evidence based re-use

Evolutionary Architecture

Page 18: Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

Thank you!http://rebeccaparsons.com

http://www.thoughtworks.com