The Calm Before the Software Development Storm
Back on topic...
I have been lurking on the Pragmatic Programmer Yahoo! group for a couple of years now (http://tech.groups.yahoo.com/group/pragprog/) and enjoy reading many of the discussions. It's not a particularly high-traffic group which suits me fine.
The group follows up on the themes of The Pragmatic Programmer (Andy Hunt and Dave Thomas) - one of my favourite books that I regularly dip into and re-learn what I thought I knew. If you a programmer I would strongly suggest you pick yourself up a copy and read it thoroughly.
Anywho, I was reading one of the messages from the group and a paragraph in a message from Paul struck a chord with me:
Maybe I'm being overly romantic, but I sense that we have reached oneAnd I agree. I sense a lot of 'treading water' in the industry currently. Don't get me wrong, many people are making great efforts to improve what we do and how we do it. For example, all the current Agile development work (XP, Scrum, Lean, etc) are trying to bring about massive changes in how we approach software development. However, I believe that most development is still currently done using a variant of the the Waterfall methodology or with no formal or informal process or guidelines at all. This and many other things all lead, as Paul mentions, to development which is 'prone to failure' and software that has 'minimal' quality.
of those "calm before the storm" periods for software development.
Development is still excessively prone to failure. Improvements in
quality have been minimal, but our dependence on software has
increased. There are lots of great ideas floating about, but only
limited adoption. To me, I think we are still at the infancy of the
science, and I can't help imaging how they will look back on us and
our work hundreds of years from now. I image that the Computer Science
of the future will be radically different than what we have today.
A storm has to be on it's way! Something radical has to happen to prevent us from coding ourselves into a very dark, complex and scary dead end. There is so much software in the world these days, and the original authors have moved on and possibly forgotten they even wrote it. There is so much unique complexity in the majority of the software too. Most idealistic coders would like to see transparent, simple (not simplistic), elegant code, which with a little intellectual investment can be comprehended and maintained as required. Most coders know it just isn't going to be that easy. I would suggest that the majority of code is far more complicated that the problem it was intended to solve. I think there is often an essential complexity that is hard to avoid, but many coders compound this problem 100 fold (including myself though I certainly try not to). Something has to radically change what we do if we are to continue to do what we do.
Like Paul, I often think about the future of software development and wonder what it might be like in 100 or 200 years and, for the life of me, I simply can't visualise it. Will people still be using CVS (or a descendent)? Will C/C++ still be driving the majority of the operating systems in the world? Will LISP finally have finally become mainstream? Will computers finally become what I envisioned them to be when I was 7 - some strange machine that somehow or other (details ain't important when you're a sprog) knew everything that could possibly be known? The last option sounds radical, maybe it'll work - now how do suppose you program a computer to know everything.....hmmm.
