Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Ctrl-Alt-Delete
Learning to Love Legacy Code
t WITH PASSION TO TECHNOLOGY
.NET CONFERENCE #1 IN UKRAINE, KYIV 2018
Dylan B...
Ctrl-Alt-Delete
Learning to Love Legacy Code
t WITH PASSION TO TECHNOLOGY
.NET CONFERENCE #1 IN UKRAINE, KYIV 2018
Dylan B...
@dylanbeattie
• Building websites since 1992
• CTO @SkillsMatter
• London .NET User Group
• www.dylanbeattie.net
• dylan@d...
https://www.reddit.com/r/ProgrammerHumor/comments/58lzgc/legacy_code/
https://github.com/dotnet/BenchmarkDotNet/src/BenchmarkDotNet/Extensions/ReflectionExtensions.cs
"Legacy code is simply
code without tests"
- Michael Feathers
Legacy Code:
"Code that's too scary
to update and too
profitable to delete"
https://twitter.com/jbrains/status/99895171254...
http://oldschoolfrp.tumblr.com/image/101938448668
Serverless F#
microservices
ASP.NET with
'some tests'
Visual Basic 6
on Windows XP
Excel
Spreadsheets
RESUMÉ
• Angular (3 months)
• Blazor (6 months)
• WebAssembly (3 days)
• Rust (4 weeks)
• Kotlin (2 weeks)
• Elm (10 minut...
TRUST CONTROL
UNDERSTANDING
Hamlet Moby Dick The Brothers
Karamazov
The Lord of the Rings Atlas Shrugged War and Peace Linux Kernel Mono
Lines
Lines
Hamlet Moby Dick The Brothers
Karamazov
The Lord of the Rings Atlas Shrugged War and Peace Linux Kernel Mono
Lines
Lines
Observation
Hypothesis
Prediction
Experiment
Analysis
Communication
# /etc/hosts
127.0.0.1 api.payments.mycompany.com
127.0.0.1 mail.mycompany.com
127.0.0.1 stockcontrol.mycompany.com
IT HAS BEEN
DAYS
SINCE OUR LAST
LEGACY CODE
INCIDENT
29
OUR DEFINITION OF "DONE"
qCode deleted
qGitHub repos archived
qDatabases offlined
qServers decommissioned
qTeam at the bea...
Ctrl-Alt-Delete
Learning to Love Legacy Code
t WITH PASSION TO TECHNOLOGY
.NET CONFERENCE #1 IN UKRAINE, KYIV 2018
Dylan B...
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code
Upcoming SlideShare
Loading in …5
×

of

.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 1 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 2 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 3 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 4 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 5 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 6 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 7 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 8 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 9 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 10 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 11 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 12 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 13 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 14 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 15 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 16 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 17 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 18 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 19 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 20 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 21 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 22 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 23 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 24 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 25 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 26 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 27 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 28 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 29 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 30 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 31 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 32 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 33 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 34 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 35 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 36 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 37 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 38 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 39 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 40 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 41 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 42 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 43 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 44 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 45 .NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code Slide 46
Upcoming SlideShare
What to Upload to SlideShare
Next

0 Likes

Share

.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code

The world runs on legacy code. For every greenfield progressive web app with 100% test coverage, there are literally hundreds of archaic line-of-business applications running in production - systems with no tests, no documentation, built using out-of-date tools, languages and platforms. It’s the code developers love to hate: it’s not exciting, it’s not shiny, and it won’t look good on your CV - but the world runs on legacy code, and, as developers, if we’re going to work on anything that actually matters, we’re going to end up dealing with legacy. To work effectively with this kind of system, we need to answer some fundamental questions: why was it built this way in the first place? What's happened over the years it's been running in production? And, most importantly, how can we develop our understanding of legacy codebases to the point where we're confident that we can add features, fix bugs and improve performance without making things worse?

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code

  1. 1. Ctrl-Alt-Delete Learning to Love Legacy Code t WITH PASSION TO TECHNOLOGY .NET CONFERENCE #1 IN UKRAINE, KYIV 2018 Dylan Beattie @dylanbeattie
  2. 2. Ctrl-Alt-Delete Learning to Love Legacy Code t WITH PASSION TO TECHNOLOGY .NET CONFERENCE #1 IN UKRAINE, KYIV 2018 Dylan Beattie @dylanbeattie
  3. 3. @dylanbeattie • Building websites since 1992 • CTO @SkillsMatter • London .NET User Group • www.dylanbeattie.net • dylan@dylanbeattie.net
  4. 4. https://www.reddit.com/r/ProgrammerHumor/comments/58lzgc/legacy_code/
  5. 5. https://github.com/dotnet/BenchmarkDotNet/src/BenchmarkDotNet/Extensions/ReflectionExtensions.cs
  6. 6. "Legacy code is simply code without tests" - Michael Feathers
  7. 7. Legacy Code: "Code that's too scary to update and too profitable to delete" https://twitter.com/jbrains/status/998951712546279424
  8. 8. http://oldschoolfrp.tumblr.com/image/101938448668
  9. 9. Serverless F# microservices ASP.NET with 'some tests' Visual Basic 6 on Windows XP Excel Spreadsheets
  10. 10. RESUMÉ • Angular (3 months) • Blazor (6 months) • WebAssembly (3 days) • Rust (4 weeks) • Kotlin (2 weeks) • Elm (10 minutes) RESUMÉ • C# (15 years) • SQL Server (25 years) • HTML (20 years)
  11. 11. TRUST CONTROL UNDERSTANDING
  12. 12. Hamlet Moby Dick The Brothers Karamazov The Lord of the Rings Atlas Shrugged War and Peace Linux Kernel Mono Lines Lines
  13. 13. Hamlet Moby Dick The Brothers Karamazov The Lord of the Rings Atlas Shrugged War and Peace Linux Kernel Mono Lines Lines
  14. 14. Observation Hypothesis Prediction Experiment Analysis Communication
  15. 15. # /etc/hosts 127.0.0.1 api.payments.mycompany.com 127.0.0.1 mail.mycompany.com 127.0.0.1 stockcontrol.mycompany.com
  16. 16. IT HAS BEEN DAYS SINCE OUR LAST LEGACY CODE INCIDENT 29
  17. 17. OUR DEFINITION OF "DONE" qCode deleted qGitHub repos archived qDatabases offlined qServers decommissioned qTeam at the beach qDrinking beer
  18. 18. Ctrl-Alt-Delete Learning to Love Legacy Code t WITH PASSION TO TECHNOLOGY .NET CONFERENCE #1 IN UKRAINE, KYIV 2018 Dylan Beattie @dylanbeattie

The world runs on legacy code. For every greenfield progressive web app with 100% test coverage, there are literally hundreds of archaic line-of-business applications running in production - systems with no tests, no documentation, built using out-of-date tools, languages and platforms. It’s the code developers love to hate: it’s not exciting, it’s not shiny, and it won’t look good on your CV - but the world runs on legacy code, and, as developers, if we’re going to work on anything that actually matters, we’re going to end up dealing with legacy. To work effectively with this kind of system, we need to answer some fundamental questions: why was it built this way in the first place? What's happened over the years it's been running in production? And, most importantly, how can we develop our understanding of legacy codebases to the point where we're confident that we can add features, fix bugs and improve performance without making things worse?

Views

Total views

282

On Slideshare

0

From embeds

0

Number of embeds

1

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×