I’m working on a SaaS service that does one thing really well, and I think it’s pretty close to being done. The code is very solid, and I rarely see any bugs or error reports (thanks to React, Immutable.js, and Flow.) The infrastructure is autoscaling and requires very little maintenance (thanks to convox.)
There’s always more features and integrations I could add, but I’m getting enough customers without them. It will require some ongoing work (e.g. updates for security vulnerabilities), but I’m not too interesting in trying to turn my table into a house. I'd rather follow the Unix philosophy and build a lot of very nice tables.
Take, for example, Crusader Kings II, a game released in 2012 that's still getting DLC and free patches subsidized by DLC sales to this day.
And there's also this infographic about day-one DLC that's been going around for a few years now: http://www.extremetech.com/wp-content/uploads/2015/08/DLCWor...
An annoying aspect of software is that it takes a life of its own. It is never done, but there are feature requests, bugs, and updates.
You make a table, and that is it. It's done. Sure, you have to clean it, but mostly it will last a while until it breaks down.