Better Software is Simpler Software

jurgenv's picture
Submitted by jurgenv on Thu, 2012-04-19 16:46

Software and its source code fundamentally underpin all developments
on the digital agenda. Yet we do not communicate often about software quality explicitly. We focus on application areas, such as e-commerce and easy-to-grasp external quality factors (like security). The danger is that we miss the opportunity for creating and sharing know-how about the quality of software that runs everywhere.

Software quality is a crucial factor of success of Europe's digital agenda. There is the opportunity now to do something about a lurking threat: overly complex systems.

The internal quality of software governs:
* how expensive it is to build and maintain
* how well it can be adapted to changing circumstances
=> i.o.w. how easy can it be understood and manipulated?

The external quality of software governs:
* how easy to learn the system is for its intended audience
* how well it can be applied in unforeseen circumstances
=> i.ow. how easy it can be understood and used by its audience?

Software projects fail because ... why? We often do not even know precisely. Ask anyone involved in failing software projects and they will sketch situations of Kafkaesque proportions. Software projects fail because we do not understand the software that is being build, and they fail because we do not understand how to use the software that has been build. Software is actually quite easy to make very complex, but that does not imply that it has to be complex!

My message is: better software is simpler software. A digital agenda for Europe should put simplicity of software systems as a primary goal.
While creating the next generation of overly complex software systems may instill awe and reverence, creating simpler software would enable understanding, which empowers us to reach our goals far better.

Group audience: 
Interesting!
5 users have voted.

Comments

osimod's picture
Submitted by osimod on Thu, 2012-04-19 17:48

Thanks Jurgen, but what does this imply for the Digital Agenda for Europe? Certainly it should not be government to decide how software is developed... perhaps this should be considered in the Innovation & entrepreneurship discussion, but it's not assigned to that group - could you do that?

Interesting!
1 user has voted.

jurgenv's picture
Submitted by jurgenv on Thu, 2012-04-19 20:42

Hi David. Good question. Consider this topic of Software Simplicity parallel to the Digital Security topic. Software simplicity, like Security is a qualitative aspect of digital development that touches us all. Including it in the digital agenda is, among other things, about strategy and awareness. It is not just about money and more effective software development, but also about the quality-of-life of people confronted with digital products that invade their everyday lives. Overly complex software affects buyers (including government), users and developers of software alike, and influences Europe's competitive position on several layers.

Consider these sentences about security (from http://daa.ec.europa.eu/group/1/content):
"The trust and security pillar of the Digital Agenda for Europe aims at enhancing cyber security preparedness, combating cyber-crime and cyber attacks, ensuring data protection and safer internet for children. Building on this, the upcoming European Strategy for Internet Security to be adopted in the third quarter of 2012 aims at ensuring and promoting an open, transparent, secure and resilient global digital ecosystem benefitting EU citizens, businesses and public administrations."

Now, as a thought experiment, let's transpose this to Software Simplicity:
"The Software Simplicity pillar of the Digital Agenda for Europe aims at enhancing Software complexity awareness, combating overly complex software systems, ensuring both internal and external understandability, maintainability and usability of the next generation of digital services for all. Building on this, the European Strategy for Software Simplicity aims at ensuring and promoting a simpler and therefore more flexible global digital ecosystem benefitting EU citizens, businesses and public administrations."

[P.S. I'll try and see if I can and should move this topic somehow.]

Interesting!
0 users have voted.

miguel.gonzalez-sancho-bodero's picture
Submitted by miguel.gonzalez... on Fri, 2012-04-20 23:26

Then this is the place to start the discussion. The current digital agenda has a section on interoperability and standards where software issues are addressed. So, even if there's no dedicated group in this platform, the topic is indeed relevant to the digital agenda.

Interesting!
1 user has voted.

jurgenv's picture
Submitted by jurgenv on Sat, 2012-04-21 10:48

Thanks. Perhaps that section can be extended to include the topic of software simplicity. I'm not an expert in what words to choose in such documents. The "software simplicity" is the opposite of "software complexity" which we use in academia to talk about this issue of internal quality, but "simplicity" has a more positive message (it is what we should strive for).

Interesting!
0 users have voted.

miguel.gonzalez-sancho-bodero's picture
Submitted by miguel.gonzalez... on Fri, 2012-04-20 23:23

How can policy intervention (as the digital agenda) help towards that goal of software simplicity? Are you thinking of: legislation, softer guidance, financial support? Any example you know of policy intervention in this area?

Interesting!
1 user has voted.

jurgenv's picture
Submitted by jurgenv on Sat, 2012-04-21 11:11

That is actually my question to everybody else. I'm a researcher and a practitioner, so policies are not really my cup of tea.

What I know is that there are developments in the Netherlands, France and Germany where (third-party) consultants monitor and evaluate the internal quality of software. Tüv, for example, has a quality label for internal software quality which is evaluated by the Software Improvement Group. http://www.tuvit.de/english/Maintainability.asp (maintainability is a first quality enabled by simplicity). This Tüv quality label is perhaps a point of departure?

Other ideas that come to (my naive) mind for policy making are:
* rules for (public) procurement and quality level agreements regarding internal software quality.
* investing in education and awareness of the issues regarding software complexity (not only in technical areas, but also financial and management fields)
* subsidizing research & development that:
- enables simpler software and/or enables us to simplify existing software
- enables adequate prediction models for the internal quality of software systems

Interesting!
0 users have voted.

miguel.gonzalez-sancho-bodero's picture
Submitted by miguel.gonzalez... on Sun, 2012-04-22 22:52

That's already a whole policy program! Rules (standards) for (public) procurement is something the EC has been looking into. Quality level agreements regarding internal software quality is also an interesting avenue. I'm out of my depth here and count on the experts to comment. The only think I do know is that software is essential today and that each time that there have been attemps at regulating it (software patenting, etc), it has led to a lot of debate, to say the least, precisely because it's so important and there's so much at stake: money, innovation...

Interesting!
1 user has voted.

AxelS's picture
Submitted by AxelS on Mon, 2012-05-28 22:25

Well - I wholeheartedly agree with David, government or the public sector - or anybody for that matter should create policies or regulations for software design or for anything that we produce. We live in a global competition and the customer decides what they buy.

If entrepreneurs ignore that law of nature, they are rightfully not successful and a policy would not make a difference.

Yet - the idea of stimulating engineers to produce better software is a great idea. Maybe it is something the EU or any European Government for that matter should consider.

I can think of pan European contests for the best products etc. Not only software - any product. Maybe next to policies, rules and laws there is room for another EU function that is best practice in the US for a long time: Public rewards and attention, verification and recognition!

Interesting!
1 user has voted.

AxelS's picture
Submitted by AxelS on Mon, 2012-05-28 22:27

EDIT - it obviously should read: should NOT create policies.... And this is a good example for bad software design - ha ha ha

Interesting!
0 users have voted.

jurgenv's picture
Submitted by jurgenv on Tue, 2012-05-29 08:13

Me to, I think the goal of government policy in this area is not to regulate, but to raise awareness and stimulate. I love your ideas of rewards, recognition, attention and verification. Those are positive means to the end of awareness and stimulation!

For _public_ procurement, local government can be stimulated too in some way?

Interesting!
0 users have voted.

jurgenv's picture
Submitted by jurgenv on Tue, 2012-05-29 08:24

A word about global competition. I'm not sure we actually have that kind of openness in the software market. Perhaps there is quite a bit of off shoring and out-sourcing in software, but designing and constructing specialized software is very much about an intimate relationship between the client and the producer. Proximity is a key factor.

The customer may decide what they buy, but in many cases they do not actually know what they are buying. This is due to the specialized nature of software, and also due to lack of understanding of what good software really is. It is hard to measure quality of software. This is very unlike the quality of a building or bridge, which we all understand as "do not collapse", "offer enough room for expansion" etc. For software we have limited ourselves to lists of features, or screens that the software must have, but what about the "do not collapse" and "offer enough room for expansion" of software? These are "is the code adaptable enough to the changes we expect?" and "will the code be understandable for people who have not created it?". The harder these questions are to answer, the better questions they are to ask.

Interesting!
0 users have voted.

People

casang2's picture
Hensley Peterson's picture
Loankanassy's picture
Valentina Bazzarin's picture
katarzyna.szkuta's picture
rebentisch's picture
JacintaArcadia's picture
uzurutuza's picture
Kasper Peters's picture
lpujol's picture
ozanamblog's picture
annalisa.deluca's picture
Digital Agenda Assembly engagement
glqxz9283 sfy39587stf02 mnesdcuix8
glqxz9283 sfy39587stf03 mnesdcuix8
glqxz9283 sfy39587stf04 mnesdcuix8