- This event has passed.
Read by Refactoring: Paying off Technical Debt at Negative Cost workshop
June 18, 2017 @ 9:00 am - June 19, 2017 @ 5:00 pm
Nearly every company is confronted by substantial bodies of critical legacy code. It requires changing, yet resists every change. Modify one piece and you introduce a bug in something apparently unrelated.
The testing situation isn’t much better. Every change requires updating dozens or hundreds of tests, all of which are probably unrelated, except for the one that found the bug you introduced but you missed because of the noise.
This is the natural result of trying to diligently avoid introducing bugs by making the least invasive change. Iterate that for hundreds of thousands of hours and you get this mess. Good people making the best available decision somehow regularly generate the same problem. Software rots.
Yet some teams find a different result. Software heals. Write sloppy code and it will just get better with time. Take a shortcut and don’t think about the future, and the future somehow slips in in a way that makes things even better. It’s like magic, but it isn’t magic.
This workshop shows you the key skill that determines whether your software will rot over time or heal over time.
We will learn and apply that skill in ugly, indebted code bases. Don’t expect simplistic exercises and clean lab exercises. We’ll learn to heal code in the environment where that is simplest: code with 10,000 line methods and ugly call graphs. Sick code. Once you can heal this code, you will be able to take on anything.
Oh, and as a side effect you’ll also complete today’s story faster and write fewer bugs now, leaving the code in a form that will result in fewer bugs later. So, bonus.
20% reflection and discussion
Day 1: Refactor to prevent bugs
- Provably zero-bug refactoring
- Read by refactoring
- Naming is a process
- Insight loop
- Power combos
- A little bit of microtesting
Day 2: Microtesting and breaking dependencies
- Test as spec
- Context neutrality
- #NoMocks unit testing
- Dependency elimination principle
- Handling god classes and other challenges
- Redesigning and re-architecting
- TDD as a natural consequence
Delivered by: Arlo Belshee
Arlo Belshee has worked in the software development world as an engineer, manager, and coach for over two decades. He is a practical methodologist, meaning he knows the theory deeply but only uses it to suggest real-world experiments. Real-world results always beat theory and context always changes the local answer. Arlo has helped dozens of organizations improve themselves in whatever way mattered for their business. He doesn’t believe there is one way to do things or even one definition of success. He helps your team change yourself in whatever way you need for your business.
In addition to directly helping teams, this practical attitude has resulted in several advances to the industry. The two most well known are Promiscuous Pairing and Naked Planning (which you know as Kanban). He has also made several advances in retrospectives, software refactoring, and achieving team alignment.
Arlo lives in Seattle, WA, USA where he spends his time finding the awesome in people. His hobbies are continuous learning, building great human relationships, and exploring any activity he has never tried.
Up until 15 days before the event you can cancel at no charge. Afterwards you can either get a 50% refund or the option to apply your ticket towards a future workshop.
- The course will open only if a sufficient number of participants is reached.
- AgileSparks reserves the right to cancel the course up to 5 business days before it