AlanBarber.Org
Wednesday, July 14, 2004
Software That Lasts 200 Years
Dan Bricklin has written an interesting essay on what he calls “Societal Infrastructure Software.” Dan Bricklin is one of the co-creators of VisiCalc, the first spreadsheet program.
The essay entitled “Software That Lasts 200 years” is about this so called “Societal Infrastructure Software.” That is software that is part of the infrastructure of society. Things like programs for controlling traffic lights, IRS databases and programs, software for power plants, etc, etc.
Basically, this essay is about the idea that the development and usage model for these software systems needs to be thought of in a different light from the current commercial nature in which we have. This is definitely some very interesting reading to say the least. I’ve actually discusses some of these ideas and issues in my Social and Ethical Issues in Computing class at college. That was probably one of my favorite courses because it did make you think about serious things.
Dan points out four specific areas of software development that should be thought about:
1) Testing and licensing of software engineers
I’m definitely a supporter of the idea of having software developers be licensed professionals. Such as with doctors, architects, lawyers, etc. Now I’m not saying that all programmers must be tested and licensed. Since that does destroy the entire idea of hobby programming, etc. However, for software systems that will be used or effect the public I think you should require that it be done by properly trained and licensed professionals. I sure don’t like the idea that software running an nuke power plant could be written by any old joe programmer.
2) The needs for standards bodies to publish best practices and enforceable rules
Sure there are standard bodies like IEEE, W3C, etc that publish standards. However, these are really just standards for working together. Things like TCP or HTML are standards but they’re about just providing set ways for people/systems to share information. There really aren’t any standards out there that tell a programmer that he/she must do mandatory checks of incoming data to prevent buffer overflows and that failure to do so would prevent you from using the software.
3) Ways to inspect the work and check for problems
Similar to number two when you have standard bodies that have specifications and requirements that are enforceable, you then need a way in which to verify the proper creation of the software. Just as there are building inspectors there should be software inspectors. When software is created for the public society there should be trained professionals that can look at and test the system for compliance before it’s ever used.
4) What to do when things go wrong
This goes back to the first point about software running a nuke plant. I’d like to know that a properly trained and licensed developer wrote the software. That way when something does go wrong he can be sued, be fined, have his licensed removed, etc. That alone provides a major incentive for the developer to take the extra time and make sure they didn’t make any mistakes. This is very much why there should be a professional level for software development. There has to be a level of accountability to protect the public.
I really do think that the software development world need that credibility that you get as by having a professional organization. I busted my rear off and graduated with a degree in Computer Science. For all the work I did I still have to compete in the job market with people that may have learned their skills from reading books like “Teach yourself C++ in 21 days” or “Learn Visual Basic 6 in a week”. Not to say there is anything wrong with that for some software dev jobs. However, it still does make me a bit upset.
I mean sure being a licensed doctor or bar certified lawyer doesn’t means you are guaranteed a job but it does help because you only have to compete with a much smaller and higher skilled group of individuals.
Now people will probably reply with something about how that’s what certifications like the CNA, MCSE, A+, etc are for. Let’s be honest here people. Just about anyone can pass those tests and again they don’t provide the benefits that a professional organizations would for the points discussed above.
So take some time and read the essay. It’s a must read in my opinion.
on 07/14/2004 at 05:55 PM