Refactoring Conversations About Refactoring

Shawn MacFarland, Jason Schulte

It happens in every project across every organization. Deadlines approach, scopes expand, QA finds bugs and engineers do what they do best: make a square peg fit in a round hole. Never has a software project been launched without introducing a non-zero amount of technical debt: cludgy code, hacky work-arounds, TODO MAKE THIS WORK FOR REAL functions that barely-just-barely get the job done, but need to be laboriously re-factored to be done "right".

The difficulty comes in explaining this state of affairs to product owners and clients, who may be happy with functionality but lack the technical chops to understand why more work is necessary that won't result in new whiz-bang features. Clients are naturally protective of budgets and must balance short-term business requirements with long-run strategy, and this calculus doesn't often sit well with developers' natural instinct to stay on the bleeding edge and make all code beautiful.

We share lessons learned across multiple Drupal projects for Federal government clients including NASA, USGS and NOAA, and attempt to share strategies for dealing with "difficult" clients when it comes to the dreaded "R" word: Refactoring.

https://www.drupalgovcon.org/2018/program/sessions/refactoring-conversations-about-refactoring

Drupal is a registered trademark of Dries Buytaert.