Technical Debt

I was out to dinner with some new friends at an amazing Chinese restaurant in West Berlin earlier this week when a discussion came up with one of the guests who is an engineer from Ableton and he dropped a new term I hadn’t heard – Technical Debt. It was one of those words I’d never heard but could guess with 80% accuracy what it was about and so we kept going through the conversation. Still, my curiosity was alive and like a catchy pop song that was stuck in my head, I had to look it up the next morning.

Without reposting the wikipedia definition entirely, and saving you the trouble of opening a new window I’ll just describe it as the consequence in software development from cutting corners to save time, money, or better code etc. –whether you know it or not. And also worth adding to that summary is the interest which accumulates with technical debt the longer you let those compromises live on in your code base.

Upon looking it up I realized technical debt basically encompasses the concept behind so many discussions, project outlines, scrums, requirement documentations, etc., over my years of working in technology. It identifies the phenomenon that occurs so often in product development and yet without having a name all this time, I feel like something was lost. Without being able to describe the pain and draw backs that would come with compromises, and also the interest that would compile over time, I think fewer negotiations were won, and more debt was created, and some projects were less successful as a result.

Still glowing from the revelation that this term existed and so elegantly defined a large conundrum in my past; this morning, while reading an interview with Aditya Agarwal the director of product engineering at Dropbox I stumbled over a perfect example of a crossroad so many engineers, product managers, business stakeholders et al. make when choosing to go into technical debt, within the following quote:

“1) You can over-engineer a system for massive scale, putting in time-intensive processes that will make things flow smoothly.

2) You can chase rapid growth with a system constantly stretched over capacity, and accept that it will get messy.”

So what does Agarwal say about this choice? Actually, as with most things in life, he goes for a balance between option one and two, e.g moderation! Simply by saying the following “a little bit of chaos is okay”. And there you have it, use your credit card, barrow some money from mom and dad, but don’t let it get out of control, and keep paying off the balance!

This isn’t a post about what to do or why. But really just pointing out this beautiful weapon that should be in the glossary arsenal of every person connected to project management. By explaining the concept of creating debt when cutting corners you can also draw the parallel that debt creates interest, and the longer you have interest building the more weighed down you will be. So remember to make interest payments on your technical debt!

 

Identify and remove time sucks

In our apartment we have a big comfortable couch, a large coffee table and an iMac. The room is long and wide with a dining table, white walls with frame pictures hanging and a huge Ikea photograph of the Flatiron building in Manhattan. On one end of the room are wide windows that look out onto Zionskirch Straße and the other apartment buildings across the street. This room, with that couch, is my sanctuary. And aside from exercise, and dinners, we use it to relax on many evenings of the week and watch TV shows or movies.

After watching an entire season of one show last week I found my thoughts swirling around the characters, themes, and issues in the episodes I had watched. Days passed, where in my pauses, as I woke, or as I was cooking, my mind kept drifting back to the television shows I had been watching.

I never believed that TV rots your brain, or that one hour of TV watched equals seven less minutes of life, but if someone said it was a waste of time, I would agree. I’m fairly active physically, and I like to read books in my free time, and we like to cook healthy wonderful food made from sustainable ingredients. So an hour or two of TV – three or four nights a week doesn’t feel like a huge dent in my quality of life. But when I realized how often I had been thinking back and synthesizing all sorts of ridiculous ideas in my head after watching the shows, I realized the hours of watching time were not nearly as big of a time suck as the hours of thought that came afterward.

Generally speaking, anything that takes up all of your free thought should be helping you to solve problems or enjoy life. Perhaps some would say the free thought coming out of the stories in your average television series contributes to life’s enjoyment. Ok, that could be true, but personally I’d still rather be thinking about the story lines of real people in my life, than fictional ones.

With the realization that my free thought was at stake I decided to stop watching TV regularly, and save up all episodes to watch just once in a while. Hopefully doing one binge day every couple of months to catch up on our favorite series will take less of free time and thought capacity away than a long slow drip of many one hour episodes does.

What could we do to change the world?

We do a lot of different last minute and/or short term tasks. Somethings have a long view in mind, but nothing so far has really been aimed at completely –I have to say it– revolutionizing existing business models, processes or tools in the world. We weren’t blessed off the cut as a company with 8 digits in the bank to sit back, hire expensive developers, and just wait for an class A VC to believe in us. So we always look for ways to improve margins, growth customer base, increase lifetime value etc., stuff that makes investors happy and improves the overall value of the business in an immediately tangible way.

Perhaps it’s not too late to change that. If we were to change everything, how would we do it? Paul Graham wrote a post about frighteningly ambitious ideas that I often think back to. Biggest and scary ideas are fun to think about; taking all of humankind into your protective arms and making something better in their lives is just a cool way to act if you can. At least it feels cooler than only thinking about the small niche market ones. From our lens, if we were to change the world I would seek out ideas that would help a lot of people and businesses, and improve the experience for all players in a market, instead of just helping a small slide of the pie, in a segment.

Some areas almost frighteningly ambitious ideas of interest to me at the moment are:

  • Simple calendars for businesses: a huge problem for businesses and companies like us who want to integrate to those calendars is that everyone is on different calendar software, it’s hard to integrate to them, there is not much consistency in how people set up their calendars. What if we created a universal calendar application with flexible GUI and easy-as-pie markup? Something everyone used, that implemented the best in class for supportability, security, integration, and product enhancements?
  • Universal API and protocol for appointments: Similar to the last idea, except more focused on having a central application for parsing, passing, and receiving data; instead of a baseline application for calendars. A Universal API would work something like the Airline Reservation System enabling all medical appointments to use one system for posting availability. Let’s ignore all the problems that would come with getting existing Electronic Health Record applications to support and run on the same API. If someone got behind this single idea and the major players bought in, it would solve many problems, for doctors, EHRs, Health Clinics, and more. When you look at the size of the medical industry, the value of the market. While the ARS works for airlines and was needed to get an international network of airports and airlines to coexist, the pain of daily lost patient data, is just a death by 1,000 cuts. A universal API would normalize the system and solve many of those problems.
  • Patient focused medical provider evaluation system: Ever since we launched our doctor reviews enhancements and tried to get doctors to put a review widget on their website, we realized something – the other companies that provide patient reviews in their provider directory/listings are cheating. They take down bad reviews and only leave the ones the doctors approve of. As you can guess this made it hard for us to provide a new review system based product to doctors, simply because we don’t want to participate in this type of activity. The subject of online reviews has always been a shaky ground to stand on. It’s not fair that consumers can’t trust product and restaurant reviews, but when it comes to finding a doctor who has your health in their hands, it seems beyond the level of arguably unethical to hide the testimony of others bad experiences from the public when presenting medical providers information online in a way that leads people to believe they can trust what they see and make a well informed judgement about which doctor or clinic they choose to visit. So with that front load in mind, this idea takes the non-for-profit model in mind of giving 100% aggregate, accuracy of provider information to patients. Perhaps not as ground breaking or across the board helpful to all, but it would be nice if for a change there was one place to find that kind of information and safely know some kind of bias doesn’t skew the results in someone’s favor.

There’s more ideas I’m sure, these are just ones that have come back around every so often. If well executed, any of them could really make the word a better place. Just need the right pocket of money to support these not so profitable businesses.

Learnings

Somehow I’m posting again about human resources.

I just finished a long overdue one on one with an important employee of ours. When he started with us he was full of energy and willing to do just about anything – roll with the punches etc. He started nearly at the level of a work student, which is something just above an intern in the German career timeline. But it was obvious this person could handle more, so I learned what his dreams and motivations were and gave him an official title to work towards, with more responsibility. That was a really positive move, he started to apply the same hard working, proactive methods on more things that were more important to us. Unfortunately after a while some things started to go wrong, and by the end of the year a great success story on the team became a dark shadow on the rise.

At the time the little slips first happened, they were not issues I or anyone else recognized as huge deviations, but surely a snowball effect can happen in these cases. Things got bad for this person, for a while it looked like we’d have to let him go, but we did what we could to fix the situation.

Now months later, I had a one on one with him which was a really nice, resolving conversation about his job and his future, what he will do next, and our varying ideas about how to do all things better at the company. I also finally discovered the original source of the string of problems that made for a long uncomfortable period for him and anyone working with him. Essentially the drive for all that motivation and the ready to execute attitude was weaned away in a series of events, starting with the very first – when a new policy was put into place over his head. Since he wasn’t included, it was not discovered that he didn’t agree with the new policy. But being such a go getter and one who was pleasing all, he let that instance go. However soon other disagreements with decisions came along, and more policy changes were made over his head. Eventually he decided – because we wasn’t being included – he just wouldn’t worry about a whole list of things that should be included in his ongoing duties and responsibilities. And because of that he just stopped caring. And stopped trying.

While I admitted this was clearly a misstep from his managers, it was still something to learn from. Sometimes you need to manage up, tell those who normally give you marching orders, that they aren’t doing their jobs right or they are wasting valuable time by doing your job for you.

There are more lessons than that in this tale, like don’t underestimate the small things, and even if something small happens, if it conflicts with some key issues for you, it’s worth it to discuss that. Also for me, do one on ones more often, and don’t assume someone else is doing it. Or even if someone else is doing it, get your own feedback time, you might learn something the others didn’t.