Over on the Promptworks blog, I wrote a short piece on how software, by its nature, is never “done” because there are always new ideas and changing business requirements that move the goalposts—and that’s not a bad thing! What can be detrimental is to not accept the nature of software and expect it to conform to a construction project paradigm. By doing so, you miss out on a lot of value and create fragile expectations.
Software is done (for now) when the marginal cost of the next-most-important feature exceeds its value. Of course, the set of desired features, input costs, and ROI expectations are always shifting, so stay alert for new opportunities to add value to your custom software!