towards a responsive business, the developer way
DESCRIPTION
Presentation at DDD Melbourne in July 2013 by Venetia Bird and Nigel Fernandes. The talk focuses on dealing with legacy systems and complexity. They discuss the developer techniques to evolving an architecture thats better able to handle business evolution.TRANSCRIPT
![Page 1: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/1.jpg)
TOWARDS A RESPONSIVE BUSINESSThe Developer Way
![Page 2: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/2.jpg)
@nigelfds
github.com/nigelfds
![Page 3: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/3.jpg)
@venetiabird
github.com/venetiabird
![Page 4: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/4.jpg)
![Page 5: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/5.jpg)
![Page 6: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/6.jpg)
![Page 7: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/7.jpg)
Understanding the problems
![Page 8: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/8.jpg)
“We make a change in one place and somewhere, something else breaks”
![Page 9: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/9.jpg)
“It feels like it takes a long time to complete what should be a simple thing”
![Page 10: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/10.jpg)
“Feels like all we have done are patches, hacks and short term tactical fixes to meet deadlines”
![Page 11: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/11.jpg)
Really?
![Page 12: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/12.jpg)
Part of any problem is: people & process
![Page 13: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/13.jpg)
We’re going to focus on the technical parts
![Page 14: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/14.jpg)
www.laputan.org
![Page 15: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/15.jpg)
1. Legacy Systems2. Kitchen Sink Applications3. Monolithic Applications4. Complexity
We’ll talk about dealing with 4 things:
…and what we learnt along the way.
![Page 16: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/16.jpg)
1. Legacy Systems
![Page 17: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/17.jpg)
Strangler Pattern
![Page 18: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/18.jpg)
![Page 19: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/19.jpg)
Legacy systems grow arms and legs…
…because the world needs to continue
![Page 20: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/20.jpg)
2. Kitchen Sink Applications
![Page 21: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/21.jpg)
Kitchen Sink
![Page 22: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/22.jpg)
Different speeds of evolution
![Page 23: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/23.jpg)
Factoring systems by Value Stream
![Page 24: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/24.jpg)
![Page 25: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/25.jpg)
![Page 26: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/26.jpg)
You aren’t going to get it right at first go
![Page 27: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/27.jpg)
Using WebAPI and Areas to build services within a service
![Page 28: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/28.jpg)
3. Monolithic Applications
![Page 29: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/29.jpg)
![Page 30: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/30.jpg)
![Page 31: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/31.jpg)
![Page 32: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/32.jpg)
![Page 33: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/33.jpg)
![Page 34: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/34.jpg)
Eliminating batch processes is hard
![Page 35: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/35.jpg)
4. Complexity
![Page 36: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/36.jpg)
“I do believe that complexity is the enemy. Until we better understand complexity, our chances of building better IT systems is limited. The first thing we must understand about complexity is that not all complexity is equal. And the complexity on which most people focus is probably the least complex complexity of all.”
http://simplearchitectures.blogspot.com/2009/03/cancer-of-complexity.html
Roger Sessions
![Page 37: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/37.jpg)
![Page 38: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/38.jpg)
Complexity
![Page 39: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/39.jpg)
![Page 40: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/40.jpg)
Accidental complexity vs Planned complexity
![Page 41: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/41.jpg)
Dealing with artifacts…
![Page 42: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/42.jpg)
Managing Pipelines
![Page 43: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/43.jpg)
Make it Visible!
![Page 44: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/44.jpg)
Drilling down...
![Page 45: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/45.jpg)
to package our apps
![Page 46: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/46.jpg)
What’s inside the nuget package?
Puppet manifests
Environment Configurations as JSON
Install Script in Powershell
Zip’ed up applicationVersion
0.12.4
![Page 47: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/47.jpg)
Version 0.12.4Proget to manage the packages for the environments
Dev Feed
Test Feed
Staging Feed
Production Feed
![Page 48: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/48.jpg)
Push button deployment
1. Hey Bamboo, deploy v0.1.7 to staging
3. Hey Choclatey, install version 10
4. Proget Staging Feed, give me, v0.1.7
6. Unpacks the box and runs the install script
2. Powershell over winRM
5. Here you go!
Staging Server
![Page 49: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/49.jpg)
Checks for the correct environment
Uses the environment configuration with puppet to configure the environment
IIS configuration,Folder permissions etc
![Page 50: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/50.jpg)
![Page 51: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/51.jpg)
What’s interesting!!?
Packages shipped with ability configure their environment
![Page 52: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/52.jpg)
Testing deployment scripts…
…with Canary packages
![Page 53: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/53.jpg)
Guarantees at every every stage in pipeline
![Page 54: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/54.jpg)
Unit Testing
![Page 55: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/55.jpg)
Integration Testing
![Page 56: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/56.jpg)
Systems Testing
![Page 57: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/57.jpg)
The test pyramid.
![Page 58: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/58.jpg)
![Page 59: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/59.jpg)
Status Checks
![Page 60: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/60.jpg)
![Page 61: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/61.jpg)
5 Months +scope
9 weeks +scope
4 weeks +scope
![Page 62: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/62.jpg)
![Page 63: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/63.jpg)
![Page 64: Towards a responsive business, the developer way](https://reader033.vdocument.in/reader033/viewer/2022060118/558a219bd8b42a1f788b4572/html5/thumbnails/64.jpg)
Thank you.