I’ve been a programmer for about 5 years now. I’ve worked on a large variety of projects. Small projects, medium projects, large projects. I’ve worked in teams, I’ve worked alone. I was an employee. I was a freelancer. But from these 5 years, I’ve spent about 1 year – an astonishing 20% – or maybe even more working on projects that were never used. They were paid for. I was paid for my work, but the project was simply cast aside. Nobody used it.
And I’m puzzled, some of those projects were quite expensive, not the average “500 euro for a 5 pages with contact form and Google maps widget website” deals you find when working with freelancers. After months of work and thousands of euros paid…nothing. The project was quietly buried. And I’m not a singular case. I’ve talked to my friends that also work as developers and most of them worked more than once on a project that was never used. Is software so worthless than you can easily cast aside projects that costed so much? It seems it is.
I believe it’s because the clients usually think about huge projects, with thousands of features that will make them the next month’s billionaires, while forgetting that developing projects of that magnitude usually take months or sometimes years to be implemented and by the time it’s ready, might not worth a dime and it would be cheaper to simply throw it away than continue pumping money into it.
Imagine a project that was started 18 months ago and and was initially scheduled to be released in 24 months. Let’s say that this project was meant to be “the next big thing” in real-estate with all the possible features, with anything a real-estate agent’s heart could ever desire. Would be in production today? I seriously doubt that. Nowadays, the only way you can become a real-estate millionaire is to start as a real-estate billionaire. And why would anyone pump money in that? The market moves so quickly, that this year’s niche could be full of competitors next year.
The solution: start small. Build a large project in small incremental steps. Use agile development methodology. Be ready to change the specs at any time. Build the project as modularised as possible. Make sure that you can easily add new stuff and remove worthless stuff. Have a look over MVC, it allows a more agile approach on web projects.
And of course, always ask yourself: what would Captain Picard do?