Lately, I've been thinking about the idea of software that builds or improves itself.
I'm not aware of a name for software that does this, so I'm going to label them "recursive apps".
A recursive app is software that can use itself to improve, or continue to build, itself. This doesn't need to be completely automated - human intervention is fine, provided the improvements come from using the software.
I first started thinking about this after I started a project called Hackerbuddy. Hackerbuddy is a place where coders and designers can meet up and offer to help give friendly, free advice to each other via email. After I launched it, and it's userbase started to grow, I wanted to improve what I'd built. I used Hackerbuddy to find people who could give me advice on how to fix bugs, clean up the design and beta test improvements. Hackerbuddy was - with some help - building itself recursively.
Recon, too, is a recursive app. It can track what people are saying about it on Twitter, and - with human intervention - can make changes and improvements based on their feedback.
Github is another example of a recursive app. Github engineers use Github to build Github.
And it's not just software that can recursively build itself. My favourite physical example is a 3D printer called the RepRap, which is able to print all of the individual parts needed to make itself again - the perfect example of recursive hardware.
I've tried to find a name for products like this and came up with nothing, so from now on I'm sticking to the name "recursive apps".
Recon.io monitors brand mentions on Twitter and alerts you to feedback, support issues and more. See the demo in action.