Getting software finished and working, with deadlines met and on budget is a small miracle in any development project. However, how often do you or your team look down the path of the future use and lifespan of the software you are developing?
Software developers build the software that society relies on, and will continue to do so as we become more and more dependent on technology and the software that runs it for survival. I don't believe this to be science fiction.
It is quite clear that hardware will continue to get better—processors for example are expected to continue to get faster according to Moore's law for only up to 15-20 years from now according to some conservative study estimates.
This view of taking more time to think about the future of the technology and software we create is something many luminaries in the world of IT are promoting. Project management guru Tom DeMarco came out to Australia early this year and told delegates at a conference in Sydney that companies were obsessed with processes and getting things done with little time to think about the impact of their work.
A group based in the United States named the Long Now Foundation is attempting to change the way people think from faster/cheaper to slower/better. The group has been responsible for the Rosetta Project, Long Server and most notably the building of a 10,000 year clock envisioned by Danny Hillis, a famous computer scientist working on supercomputers.
Okay, I'm the first to say a 10,000 year clock sounds like another crackpot idea from the US, but if you do stop and think about it, projects like this that are thinking further than a generation ahead should prompt us to do the same. This project might be one extreme but if we are going to depend on technology, it will have to be built rock-solid, otherwise poor quality software could end up being extremely costly, quite possibly costing environmental damage and human life.
There is always going to be money in the faster/cheaper model. Why? There is a demand for products that we don't need. The mobile phone and gadget space is a prime example with so many promises but delivering so little. On top of this you have a market pushing incompatible solutions onto end-users.
Understandably, this is not all the work and responsibility of software developers, but if there is to be a change in making quality, long-lasting technology there will have to be an industry-wide drive to make it happen.