Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Reengineering
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Nat Pryce
January 22, 2017
Programming
210
0
Share
Reengineering
A case study presented to 4th year students at Imperial College
Nat Pryce
January 22, 2017
More Decks by Nat Pryce
See All by Nat Pryce
Mistakes we made adopting event sourcing (and how we recovered)
npryce
3
1.2k
Failure is not an Option. Error handling strategies for Kotlin programs
npryce
0
650
Taking the Tiger by the Tail, P3X 2019
npryce
1
240
What we talk about when we talk about software, Agile Turkey Summit 2019
npryce
2
470
The Kotlin Type Hierarchy From Top to Bottom
npryce
7
3.5k
What we talk about when we talk about software
npryce
3
420
Why software changes & how we must change what we change when we change software
npryce
1
320
What we talk about when we talk about software
npryce
1
710
Having Our Cake and Eating It
npryce
4
1.5k
Other Decks in Programming
See All in Programming
20260514_its_the_context_window_stupid.pdf
heita
0
990
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
770
Agentic AI & UI: Arcitecture, HITL, Emerging Standards
manfredsteyer
PRO
0
100
JCON - Create Agentic AI Apps, The Easy Way!
kdubois
1
110
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
350
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
510
Kingdom of the Machine
yui_knk
2
1.5k
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
180
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
28
22k
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
23
12k
SkillsをS3 Filesに置く時のあれこれ
watany
3
1.6k
Back to the roots of date
jinroq
0
840
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
130
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Code Review Best Practice
trishagee
74
20k
How to Talk to Developers About Accessibility
jct
2
200
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building Applications with DynamoDB
mza
96
7k
[SF Ruby Conf 2025] Rails X
palkan
2
1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Transcript
Reengineering Evolution, Devolution & Revolution Nat Pryce @natpryce | natpryce.com
|
[email protected]
Quoting
Grand vision APAC EMEA US
Original architecture
Attempted optimisation
Parallelise calculations for APAC APAC EMEA
Start refactoring, but don't finish APAC EMEA
A new feature for EMEA APAC EMEA
Reports for APAC APAC EMEA
Diagnosing problems
The system was modelled on a manual, paper-based process
Idealised architecture
Separate the projects
"Cuckoo's Egg" application behind gateway
HTTP data service "simplicators"
"Pregression" tests
Fake simplicators in system tests
Introduce an acceptance test driven process
Replace the GUI with a web application
Continual indicative quoting is just a client
Caching proxies for performance and scaling
None
Lines of Code Over Time