For many businesses, the web has become a platform of strategic value. Their web-based services are under constant development, so they can cater for the changing needs and requirements of customers, partners and other stake holders. It is their constant learning and improving that sets these organisations apart from the competition.
What does this mean for software projects? A project is defined partly by the existence of a beginning and an end. And even though these are often represented as exact moments in a Gantt chart, that's what they are not. Projects need preparation, setup, and cleanup – and somewhere in there, some actual building things will usually happen as well. Projects are inherently phased.
As such, projects are more about knowing than about learning. After all, how could you create a project timeline if you didn't know in advance what to build and how much effort that will take? You need to know what to prepare. You need to know how to reach the project goal. While learning is inevitable during a project, the newly gained knowledge is not used.
Knowing about the future is an illusion, and particularly so in the context of software development. The best we can do is to create an illusion of knowledge and then to subordinate everything to living up to our predictions. If this “best” thing doesn't sound good to your ears, it is because this explains why so many project outcomes fail to meet our expectations – let alone our hopes.
For many situations, the time has come to stop thinking in projects and to seek ongoing collaboration instead.