Software Crisis 2.0
Keynote EASE 2016
Professor Brian Fitzgerald
Lero – the Irish Software Research Centre
Although only about 50 years old, the software domain has already endured one well documented crisis, which was identified early in its evolution in the 1960s. Simply summarized, the initial software crisis – Software Crisis 1.0 as I term it here – referred to the fact that software took longer to develop and cost more than estimated, and did not work very well when eventually delivered. However, Software Crisis 1.0 has largely been overcome –software engineering principles have facilitated the emergence a professional discipline drawing on initiatives such as the structured approach to software development, requirements engineering, agile approaches, architecture, software product lines, patterns and reuse to address Software Crisis 1.0 – to the extent that software has been one of the key success stories of the past 50 years and has truly revolutionized modern life. However, we are now at the cusp of another software crisis – Software Crisis 2.0 as I term it here. There are several factors contributing to this. There have been enormous advances in hardware capability – dramatic reductions in hardware costs allied to dramatic increases in processing power and proliferation of devices; almost infinite amounts of data are now available through ubiquitous sensors and through search engines and social media applications. Complementing these ‘push’ factors, there is a significant ‘pull’ factor arising through the emergence of ‘digital native’ technology consumers who have never known life without technology. The opportunities for individuals, business and society afforded by the advances in hardware technology and the vast amounts of data potentially available, when allied to the insatiable appetite of digital natives, are truly enormous. Unfortunately there have not been similar advances in relation to our software development capability, and thus the critical limiting factor in realizing the potential of the advances mentioned above is again software – hence the Software Crisis 2.0. We need a dramatic increase in software productivity – this at a time when there is a worldwide shortage of skilled developers. But more significantly, new technologies such as parallel processing on multicore architectures, big memory servers, quantum computing, require a completely different skillset to that possessed by software developers today.