This article very nicely puts into words my thoughts about the absolute mess that is today's software industry.
One point I want to add: please finish your software. Please define a finite scope of problems that your product solves, and when that's fulfilled, put your project into maintenance mode where you only fix bugs. Finished software is beautiful.