It's useful for search type problems where the result is relatively compact and verifiable in isolation. I haven't found a way to build production quality software that way in general but for certain kinds of reverse engineering or system optimization problems it's helpful.