Dealing with technical debt

codeartisan: Jon Moore: Cracking down on technical debt:

Generally, as the folks with the technical ability to recognize it, it is the development team’s responsibility to try to avoid accruing technical debt while producing product. Failing that, it is their responsibility to recognize/document existing debt and to advocate for its removal. However, note that there are often symptoms of technical debt, such as those I’ve listed above for architectural debt, that can be recognized by non-technical folks too.

On the flip side, business folks / product owners need to be able to trade off short term wins that accrue technical debt vs. taking longer to produce a product with less debt. Communication with the tech team is of vital importance here; undoubtedly there will be times when a short-term win will be important (especially with a first-to-market situation), but it needs to be accompanied by a plan to eliminate the accrued debt. i.e. Treat your technical debt like credit card debt that should be paid down ASAP, and not as a long-term mortgage.

The interest on your technical debt is probably not tax-deductible.

Very much related to my earlier post about Agile gone wrong.

Michael Davis’s Inspirational Story and Turbo Pascal

Sip from the Firehose: Michael Davis: Memories of Turbo Pascal version 1.0:

At the time, I was an 18 year old high school dropout that had recently been incarcerated in the Lebanon Correctional Institute outside of Cincinnati, OH. The one saving grace of this facility was that the Quaker originated Wilmington College had a branch located within the walls of the prison.

Facing the possibility of a long sentence, I made probably the best decision of my life to that point. That decision was to get my GED and quickly get enrolled in college. It only took a few days of incarceration to realize that something in my life needed to change and getting an education seemed to be the best way to do it. In addition to the Burroughs B1990 system, there was a lab of several Apple II computers that were capable of running Turbo Pascal. After taking the prerequisite courses, my introduction to computer programming was Turbo Pascal.

Thinlet GUI Toolkit

Mat Schaffer pointed to this library earlier, and I experimented with it a while back for a personal project, building a desktop version of the Myers Briggs Temperament Sorter (I need to dig up the source code). The Thinlet library made it ridiculously easy to wire in a nice looking GUI to my app so I was able to concentrate on the quiz logic. I’d use it in projects if I was doing lightweight desktop Java applications.

I’m looking forward to Mat’s X-Plat strategy to take hold.

“Rescuing Scrum teams keeps me in business”

Oh boy, does this sound familiar.

James Shore, consultant, lays down just how bad it gets when you ‘go Agile’ and don’t do so correctly: The Decline and Fall of Agile:

Without continuous, incremental design, Scrum teams quickly dig themselves a gigantic hole of technical debt. Two or three years later, I get a call–or one of my colleagues does. “Changes take too long and cost too much!” I hear. “Teach us about test-driven development, or pairing, or acceptance testing!” By that time, fixing the real problems requires paying back a lot of technical debt, and could take years.

What frustrates me the most is that this situation is entirely avoidable.

…There are a lot of teams right now failing with Agile. These teams are working in short cycles. The increased planning frequency has given them more control over their work and they’re discovering and fixing some problems. They feel good, and they really are seeing more success than they were before.

But they aren’t working in shared workspaces or emphasizing high-bandwidth communication. They’re don’t have on-site customers or work in cross-functional teams. They don’t even finish all of their stories by the end of each Sprint, let alone deliver releasable software, and they certainly don’t use good engineering practices.

These teams say they’re Agile, but they’re just planning (and replanning) frequently. Short cycles and the ability to re-plan are the benefit that Agile gives you. It’s the reward, not the method. These psuedo-Agile teams are having dessert every night and skipping their vegetables. By leaving out all the other stuff–the stuff that’s really Agile–they’re setting themselves up for rotten teeth, an oversized waistline, and ultimate failure. They feel good now, but it won’t last.

On Sean Levert’s Horrific Death During Xanax Withdrawl

A terrible story that should never have happened: Cleveland.com: Sean Levert, denied medication, hallucinated for hours before he died in jail:

R&B singer Sean Levert entered the Cuyahoga County Jail on March 24 clutching the prescribed medication he took regularly for anxiety.

Jail staff took the bottle of Xanax away from him and failed to give him a single pill during the six days he was there, investigators said. Even when he began suffering horrifying delusions, he wasn’t given his medication and never saw a doctor.

Instead, on March 30, jailers strapped Levert into a restraint chair, still fighting the monstrous visions in his head caused by withdrawal from the medication. Minutes later, the 39-year-old son of O’Jays star Eddie Levert stopped breathing. His heart then stopped and doctors couldn’t save him.

Metafilter: Xanax withdrawal isn’t pretty