Live data from Hacker News

Innovation Debt

blog.pbell.com

1–10 of 27 posts

Re: Innovation Debt

#3
> You’ll lose your best developers

So what? If you have paying customers and the software "works" this isn't a huge downfall. New, young and challenged developers will gladly follow in the foot steps of seasoned coders before them.

> Recruiting will get harder

This is a problem for every company with developers. As long as you have paying customers, recruiting isn't as big of a problem as people make it out to be. Is this a problem for places like Google and Facebook? Sure. For you start-up, probably not. Software challenges tend to trail off towards the latter part of the software's life cycle. If there is a new piece of functionality required then smart developers will simply find the tools, frameworks, libraries, they need to solve that problem. They don't need this dictated to them.

> Productivity won’t improve

You also are inherently decreasing their productivity by teasing them with new technologies that may never be used. You can also clearly quantify their loss in productivity when they spend time on new technologies. I'd prefer to measure the measurable and manage that, rather than half guess a "innovation debt" that I'll never be able to manage properly.

> Your software will get stale

Are your customers still paying? Good, get over this aspect then. Software that doesn't change always goes stale.

It happens when the team is too busy putting out fires and finishing up features to keep up to date with advances in languages, frameworks, libraries, tools and processes.

What about the increased costs (real actual currency HR costs) that are included in constantly taking your resources off the software maintenance and delivery for a product/service that real people are paying for. There are some serious implications with letting people's innovative brains wander too far when given a specific task to accomplish. This is why hackathons and "FedEx" days are so popular. It's a mutual agreement between employer and employee that says: "You are allowed to hack something together with new exciting technology but I cannot guarantee it will reach the production stack"

I think this idea of innovation debt is a clear non-problem for me and most web based startups in my situation.

Re: Innovation Debt

#4
I'm currently working at a company that is facing this problem. The programming team has stagnated on repairing legacy systems. Innovation and modernization is a business objective, but the philosophical issue of losing 'expert business knowledge' due to technological evolution presents barriers in the process.

Our code ranges from 10 to 20 years old. Most of the principles involved in that based are from those years too. Moving to any framework, language or SOA means training 16 people for years. Not because the language, framework, or services are too hard to grasp, but because the overall arching backbone is missing. We haven't reached 3-layered programming, let's jump straight into 5-layered.

We're still in waterfall functional code with weak modularization and few OOP principles. Yet, we're trying to skip the whole OOP/modularization schematic and jump right into fully decoupled SOA. Without understanding the hardships of the middle, I find it difficult to believe we can transition to the end without losing half of our team.

Re: Innovation Debt

#5
Another way to keep sharp, which surely Peter knows (as he runs several meetups in NYC), is to encourage your team to get involved with local meetups, both as an attendee and a presenter, or do other community-oriented stuff like teaching classes (e.g. skillshare). This has two positive effects – increases the flow of new ideas, and (when speaking) helps your company / team to get more visibility in the community.

While I am very supportive of learning and using cutting edge technologies when it makes sense, it does need to balanced with technical risk assessment, which your post alludes to at the end. For example, say you want to try the Rust language and think it would give you some advantage. Things like maturity / community, etc, definitely come into play.

Innovation comes not just from using new technologies, but also from using new techniques with old boring technologies. I’d even argue that working on cutting-edge problems forces you to innovate, alleviating some of the innovation debt issue (not everybody has that issue).

You can innovate on nonfunctional areas, such as devops, logging, metrics, etc, if your core business needs to be more conservative.

One of the best talks I went to in the last year was by CTO of Etsy, where he talked about how they use “the most boring technologies they can find” – php, mysql, etc. At the same time, Etsy has a very strong reputation in the tech community. http://www.infoq.com/presentations/Etsy

Re: Innovation Debt

#6

Related: The Dead Sea Effect http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-d...

@Matt, thanks for including this link. I'd read it a while back (maybe a link from you!) but couldn't find it when I was putting this together last night.

Re: Innovation Debt

#7
post #4

I'm currently working at a company that is facing this problem. The programming team has stagnated on repairing legacy systems. Innovation and modernization is a business objective, but the philosophical issue of losing 'expert business knowledge' due to technological evolution presents barriers in the process. Our code ranges from 10 to 20 years old. Most of the principles involved in that based are from those years…

Yeah - that's a really hard change. For anyone dealing with a legacy system, I always recommend Mike Feathers' book on "working effectively with legacy code". He talks about lots of patterns for dealing with this.

I'd probably see if I could start to break off a piece of a system, bring in a consultant or new dev for a couple of months, pair them with one of your team and rotate every few weeks. You won't lose too much capacity in terms of working on the core system and you'll get a chance to start to slowly introduce members of your team to new best practices. Sometimes single page web apps can help with some of this as you can just drop in backbone on a page or two and use it to federate data from both your main app and a new app you're adding some functionality to.

You probably will end up losing half the team over time, but honestly if they put up with the current state of affairs for so long, that might not end up being a bad long term outcome. Just don't big bang any changes - cultural or technical. And try to ignite curiosity rather than "mandating innovation"

Re: Innovation Debt

#9
post #5

Another way to keep sharp, which surely Peter knows (as he runs several meetups in NYC), is to encourage your team to get involved with local meetups, both as an attendee and a presenter, or do other community-oriented stuff like teaching classes (e.g. skillshare). This has two positive effects – increases the flow of new ideas, and (when speaking) helps your company / team to get more visibility in the community. Wh…

Hi Jean,

Agreed 100% - both with the value of meetups and balancing the technical risk assessment. I'm doing a keynote at NFJS New York on "how to select and adopt technologies" that talks a lot about community focus, where in the technology adoption lifecycle the technology is, etc.

You also have to look out for how many technologies you're managing. I'm a fan of polyglot programming and polyglot persistence, but that doesn't mean you should have five server side languages and seven different NoSQL data stores.

Agreed re: innovating on peripheral apps. Only thing I'd add is select technologies that could be great for your core, innovate peripherally, and once you have some experience you can revisit the risks of introducing that tech into your core stack.

Nice link re: the infoQ etsy talk - thanks!

Re: Innovation Debt

#10
post #3

> You’ll lose your best developers So what? If you have paying customers and the software "works" this isn't a huge downfall. New, young and challenged developers will gladly follow in the foot steps of seasoned coders before them. > Recruiting will get harder This is a problem for every company with developers. As long as you have paying customers, recruiting isn't as big of a problem as people make it out to be. Is…

This idea is not aimed at startups. It's a huge problem for large enterprises, albeit less so for product companies than for captive IT orgs creating internal systems & utilities. If you, or anyone else, would like specific examples from one company -- along with discussion of remediation attempts -- feel free to email me. When the economy went south in 2007/2008 we dismissed about 18% of our global IT org and didn't start to rebuild until late 2011. Those 3+ years of stagnation nearly killed several business critical systems.
Post reply on HN