Technical Debt

Toad Tries to Be Part of the Solution

Timothy
Frog and Toad are Cofounders
3 min readMar 14, 2016

--

Toad sat at the conference table, staring at the JIRA dashboard on the big screen.

“Drat!” he said. “Our product is a mess. We have so much technical debt.”

Frog looked at the dashboard too, and sighed.

“Toad, you are right,” said Frog. “It is a mess.”

Toad put his hands over his face. “I will ask the team to clean up these issues in the next release,” said Toad. “For this release, we need to get some new features out the door.”

Even Frog can see there’s a problem somewhere.

Frog walked up to the projector screen and pointed at the burndown chart. “Toad,” said Frog, “there are bugs which have been open for months.”

“Next release,” groaned Toad from under his hands.

“Our architecture is strained under normal loads, and we have constant unplanned downtime,” said Frog.

“Next release,” said Toad.

“Your deployment process is manual and error-prone.”

“Next release,” whispered Toad.

“The builds on the CI server regularly fail,” said Frog, “our view logic is hopelessly mixed up with your models and controllers, and your dependency management is a mess!”

“Next release!” yelled Toad, banging the table. “We will address it all in the next release!”

Toad slumped on the edge of his chair.

“Blah,” said Toad. “I feel down in the dumps.”

“Why?” asked Frog.

“I am thinking about the next release,” said Toad. “I am thinking of how I am going to ask my team to start working on our technical debt.”

“Yes,” said Frog, “next release is going to be very hard for your team.”

“But Frog,” said Toad, “if I take the time to groom my team’s backlog on JIRA right now, then I will not have to do that for the next release, will I?”

“No,” said Frog, “you will not have to.”

Toad reviewed his team’s backlog and marked 80% of the open tickets as CRITICAL or BLOCKER.

“Frog,” said Toad, “if I hand-configure a repository for our built artifacts and modify all of our build files to pull their dependencies from it, then we won’t have to worry about dependency management in the next release will we?”

“A+ idea,” said Frog, “I’m cool with that.”

Toad configured the repository and filled it with fresh .jars.

“Frog,” said Toad, “if I delete all our failing tests, and pile all our web styles in a single huge CSS file, and water the office plants right now, then I won’t have to do all those things in the next release, will I?”

Toad is excited he can still be an individual contributor!

“No,” agreed Frog, “you can totally engineer your way out of this mess.”

Toad deleted tests until the CI server went green.

He filed a monster PR that moved all the CSS into a single file.

He watered the office plants.

“There,” said Toad, “now I feel better. I am not in the dumps anymore.”

“Why?” asked Frog.

“Because I have done all that work,” said Toad. “Now, when my team starts working on our next release, I can return to the thing I really want to do.”

“What is that?” asked Frog.

Toad said, “I’m rewriting our entire stack to run in Node and with server-side rendering. My homegrown app framework uses high-performance event-driven I/O and isomorphic Javascript with Web Workers to accelerate…” but Frog had already started walking back to his office.

--

--

Timothy
Frog and Toad are Cofounders

Lazy programmer, skeptical ontologist, amateur biologist. Read a book about the printing press that changed my life, occasionally does stuff with genomes.