Last month I attended an interesting presentation by Dave Thomas on the Future of Technology. Most of the conversation was geared towards what was going on in software, databases and software development methods.
Dave Thomas used to be a professor at Carleton University in Ottawa and went on to develop and sell OTI – Object Technology International Inc (a company that commercialized object and component technology which was one of the pioneers in Agile Product Development). He is now involved with Bendarra Research Labs and Object Mentor (http://www.bedarra.com/).
I started my career in software development and design in the late nineties doing mostly object oriented design and development. At that time there were only a handful of well-used programming languages that were predominant: C, C++,Ada, Java. Fast forward to 2012 where there are many programming and scripting languages. According to Dave, most of these languages are improvements on the implementation of known ideas and developers can use the ones that they prefer.
It was clear from Dave’s presentation that he was no longer a proponent of object oriented programming, for a few reasons:
- Hard to follow;
- Not great for concurrent computing;
- Threading creates potential security issues.
The audience also got the clear message that he thought agile is inefficient and too rigid.
Software and software development are becoming more and more common place. There are even platforms for kids to start developing, including Aliceand Scratch. I have played around with Scratch and it reminded me of Xtranormal (an extremely fun way to help create animated videos – http://www.xtranormal.com/). Even if you want to create a web site using the ubiquitous WordPress platform, knowing how to code opens up a lot more possibilities to be creative.
What does the future hold? According to Dave: virtual accelerators, crowd sourcing, short lived virtual computing, fewer IPOs, innovation inside and idea engineering.
Dave has been successful in betting on technology cycles which are 10 to 20 years. Platform cycles are 3 to 5 years. Whereas product life cycles can be 3 to 6 months in some markets but average 24 months now as compared to 15 years ago when the product life cycle average was closer to 4 years.
I think the combination of changes that have happened in the software world and students embracing it earlier in life will bring about a more creative and software literate generation.
Not many people have the resources to wait out 10 to 20 year technology cycles. With mobile apps developers are looking at product timelines closer to 3 to 6 months.
In terms of the future, I see more innovation inside and idea engineering as well as crowd sourcing – all part of innovation.
What innovations in software and development do you see coming in the next few years?