1. Overcoming Time Constraints to Keep Code Maintainable
- How “lack of time” compounds.
- Making maintainability work visible.
- Measuring the time impact of maintainability work.
- Gathering and preserving system context for faster changes.
Learning Objectives
- Learn to estimate time and effort spent on maintenance work.
- Learn to advocate for investment from the business.
- Learn to demonstrate results from that time.
2. Overcoming Technical Constraints to Change Code Bases
- What is a technical constraint versus a time or cooperation constraint?
- Example types of technical constraints.
- Building a stepwise plan to change a technical constraint.
Learning Objectives
- Learn to identify types of technical constraint and where they arise.
- Learn the ROI of rewrites and when to approach one.
- Learn to plan the incremental removal of technical constraints.
3. Obtaining Business Cooperation for Software Goals
- Explaining our solutions to the business.
- Why “tech debt” discussions tend not to work.
- Metrics to use instead.
- Instilling confidence that our maintenance efforts will actually improve velocity.
- Why do we tend to rapidly return to our prior velocity after “tech debt week"? - How do we fix it?
Learning Objectives
- Learn the pitfalls that make business stakeholders wary of engineers asking for time to do maintenance.
- Learn to navigate those pitfalls and establish trust with the business.
- Learn to proactively design for business goals to improve the working relationship and achieve better outcomes in the code base.
4. Achieving Team Buy-In for Large Software Projects
- Why do teammates resist technical changes?
- Context is power; the bigger the change, the bigger the impact to shared context. Invalidating a bunch of someone’s context can disempower them in ways that concern them, both absolutely and relative to other team members.
- Why the Hollywood approach to presenting big changes doesn’t work.
- A stepwise approach to achieving team buy-in.
Learning Objectives
- Learn the underlying reason for teammates to unexpectedly resist an idea.
- Learn how to socialize changes among your technical team.
- Learn to talk to colleagues about changing decisions that they feel attached to.
For who?
This workshop is targeted at Senior Engineers, Tech Leads, Engineering Managers, and Product Managers.
Requirements
You have some experience writing on production systems in any programming language.
Testimonial
Chelsea is one of the most engaging programming teachers I've learned from in recent memory,