Tuesday 6th March, Imperial College Business School
Anthony Finkelstein, dean of the Faculty of Engineering Sciences at UCL and a professor of Computer Science was at Imperial College Business School on March 6, to give a talk entitled “Engineering Challenges of the Digital Economy”. His talk addressed discrepancies between technical issues of software development and the necessity to address consumer demand and to build sustainable business models for software companies.
The discipline of software engineering needs to rise to the challenges presented by the digital economy. In his talk, Anthony Finkelstein addressed 10 challenges facing software engineering in the digital economy. These can be roughly separated in two groups: first, those that have to do with software architecture, software design and software requirements. Second, those, perhaps harder to overcome, that concern software development tools, modelling and middleware.
The risk is that the influence of software engineering as a discipline on practice will decrease. If software engineering wants to train the next generation of software engineers, it needs to address those challenges.
- The question of the evolution of architecture needs to be explicitly stated. Software architecture has been addressed predominantly in an ad-hoc way. The relation between requirements and architecture needs to be clarified and studied more formally.
- The discipline has to move to an evidence-based practice and rely less on anecdotal and quasi evidence-based practice. It needs to encourage reproducibility, and reorganize the curricula to reflect an evidence based approach.
- Scalability. Problems of scalability need to be addressed and studied in depth, not just approached on an ad hoc and in a learning-by-doing fashion.
- Reconcile web standards and software engineering standards: w3c and OMG. This is a major challenge and work on the technical side as well as negotiation to set new standards are necessary.
- Resources estimation. Probably the main challenge mentioned in Anthony’s talk: there is very little we know about estimation of development cost and time. Getting a better understanding of cost and time estimation for system development implies studying programmer productivity in depth, along with rethinking of curricula in software engineering, making business models an important object in software engineering.
- Software as a service: the challenge is in maintaining quality of service and allowing for interoperability. Clients also need to have a clear idea on how to walk away if they want to change provider. Data hosting, security and ownership are critical issues here.
- Think about apps as channels. More and more, apps needs to be thought of and conceived as channels capable of evolving and changing what they deliver. Another step is to use apps as building blocks for user-side customization of apps through personal combinations.
- Adaptive system. We need to develop ways of building systems that account for themselves.
- Reconcile business and software engineering.
- Inter-product and inter-supplier dependencies are not properly addressed: the field has to move away from a “garage” approach to development to supply chain or software ecosystem thinking.
Finally, Anthony Finkelstein ended his talk by stating that, in his opinion, the biggest challenge was to reach a point where business model and software would be co-designed simultaneously.