As an 18 software development professional, I have been waiting for this day for a long time. Honestly, I thought this day would never happen in my lifetime, but it did and in a form I would have never guessed:
“The future of games development has been called into question after the EU Commission suggested developers provide a two year guarantee.”
Two year guarantee on… games? I would have thought that medical software or aviation/guidance software or any other software application/system that could put people in harms way would have been the first industries to have instituted guarantees on defective software.
Never did it cross my mind that it would be the gaming industry, but then again, after thinking about it, it makes perfect sense. Video games are a multi-billion dollar business targeted at mass consumers, a.k.a. the public. So when lots of people’s games don’t work, something has to give.
The key clause is, "two year guarantee on all games in the event that a bug or glitch is encountered preventing you from completing the game and/or ruining the experience."
As the articles states:
“At present, retailers are not obliged to give a refund on a video game that has a bug or glitch that prevents a user completing a game. If the proposals become law, this could change as users would have the right "to get a product that works with fair commercial conditions".
Note it says proposal, but I say great, it is about time! Why is it only in the software industry, people and corporations spend trillions of dollars on software and none of it is guaranteed? No, I don’t mean delivery guarantees, or warranty periods, I mean outright quality guarantees.
For me, as someone who develops software, I could not be happier. This marks the day that there is enough critical mass in the public to demand better quality software products. Really it means that software will need more engineering, as in software engineering.
“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.”
At age 50, I have had two careers, the first in electronics engineering, where the application of systematic, disciplined, quantifiable approach… was never even questioned, talked about, it was simply expected, standard operating procedure, institutionalized, etc. But when I entered my software career in 1991, I was very surprised to find that in the software world, there were debates going on, still today, whether software development is engineering or art or science or…
Fortunately today, many universities are offering undergraduate degrees in software engineering and have defined the difference between computer science and software engineering.
This means that younger generations will be more exposed to software engineering rather than us “old guys” where there was no such thing called software engineering when we went to university.
I also believe that software engineers should be licensed as Professional Engineers (P.Eng. in Canada). In fact, in British Columbia, Alberta and Ontario, you can be licensed as a professional software engineer.
You can read an excellent paper on, "Licensing Software Engineers" by Philippe Kruchten From the article, “The only purpose of licensing software engineers is to protect the public.” I totally agree. Now Philippe suggests that licensing software engineers who designs and develops software that can kill is protecting the public. I agree with that as well. But I would take bit of a broader definition that not only includes software that kills, but again protects the public from financial impact, which basically covers most business software, like ecommerce, banking, trading insurance and any applications that deal with money, but also even t the point of gaming software, which is what this article began with and the proposed two year warranty.
Perhaps a little reflection is required to let what I am saying fully sink in. For any software development project that has any impact on the public, financial or otherwise, the software engineer responsible for “sealing” the blueprints should be a licensed software engineer. A licensed professional software engineer is bound by professional practice and code of ethics. That means that a licensed professional software engineer is legally responsible for the design of the software. Think about that. Aside from the responsibility, the way software is designed and engineered is going to change in our world. I can only be grateful for that and like I said early on, it is about time. Today is a red letter day!