In my two decades of work in IT, there is one thing that I've seen over and over. It could be inside companies of any size or a part of new start up ventures. There seems to be this idea from all developers, and DBAs, that they have the solution. They know what to build and they'll build a wonderful piece of software the first time. They might be right, but it's not likely.
Too often we don't build the best software the first time. It's certainly not all our fault since there are plenty of business people that "think" they know what they want, but they really don't until they see something. And then start asking for a new piece of software, or substantial modifications to what they have.
Building software is hard, and as I spend more time in this business I think that building something great takes time. Like fine whiskey, it must age, mellow, and be tended along the way. It's not like a house where everything is planned from the start, but more like an evolving Formula-1 car that is tweaked and tuned with the user inside of it.