Subscribe

Q&A: Professor Moshe Kam

Tallulah Habib
By Tallulah Habib
Johannesburg, 11 May 2012

The cold, dead hand of regulation, or the caring, positive embrace of quality and high standards?

The software industry is a maverick one, populated by colourful characters. Some of the greatest programmers were social misfits, unemployable radicals or self-taught savants. Software developers are often fiercely independent, and frequently pretty smart. They think they know best, and are confident they know exactly what they're doing, all the time.

But what if they don't? What if they mess up? No one will die if Angry Birds crashes, but what if the traffic management system on a busy bridge was poorly written and throws up a glitch that results in a car smash?

What about individual programmers moving between countries, or just between jobs... how do employers and colleagues know that a developer knows his or her stuff?

The issues of accreditation and licensing in software development are not new - but they are starting to become a pressing issue, as everything from our entertainment systems, to our neighbourhood security, to whether our 'smart' geyser turns on is controlled by software. Networked sensors and embedded controllers are in everything these days. There is no part of our lives that doesn't involve millions of lines of code being processed in the twinkling of an eye.

Professor Moshe Kam is head of electrical and computer engineering at Drexel University, in Philadelphia, the US. He is a past president of the IEEE (the global body for electrical and computer engineering), and a highly respected educator in technology - and the keynote speaker at the Software Engineering Colloquium (SE12), in Cape Town, on 24May.

“There is no question, accreditation will be a burden and a cost for the industry,” he says. “But if you think about the role of software in our lives, the number of critical systems controlled by software, we have to ask ourselves whether we should allow anyone and everyone that can use a keyboard to write software for public consumption?”

Kam points to the medical profession, which has been almost completely regulated - where practitioners are limited in their access to patients depending on the level of studies they have completed. If they have done a little study, they're allowed to do skincare therapies in a spa. If they've done a lot, they're allowed to do heart transplants.

“It's paradoxical. I had a group of sophomore (second-year) students years ago creating software for a company they had started, and they were selling it to a transportation administration to control traffic on a bridge,” says Kam. “But if they had opened a clinic for inoculating cats, they'd have been closed in 45 minutes by the state authorities.”

OK, you could argue, traffic control systems have huge public safety implications, so regulation makes sense. Something like Facebook doesn't, so why worry about accreditation there?

Kam shoots straight back: “Facebook has a lot of my personal information - they say that they will deal with it in a particular way. If they are unable to keep their promise, this can become critical for me. I have an expectation that it is guarded. I want the Facebook software developer to be someone who understands software, is educated to a certain degree, and is aware of the security standards.”

The real question that software developers must ask themselves, says Kam, is are they talking about a collection of individuals who create software, or do they constitute a profession?

Medicine and law in the 19th century could be practiced in most countries by anyone who wanted to try their hand at it. Over time, associations and representative bodies were formed, educational programmes were accredited and regulation came in. The pact that the emerging professional bodies made with society was that, in return for the status and exclusive right to practise, the bodies would ensure their members were properly trained, professional and accountable to their peers. These professionals got to make more money out of their activities, but were also expected in turn to do pro bono work for the benefit of society.

“If software development is to develop to a point where it is recognised as a profession, it must look to a similar path,” says Kam.

There are two parts to this 'regularisation' of software development as a profession.

One is accreditation - this is related to educational programmes. A graduate of an accredited programme has to meet certain minimum requirements in terms of abilities and knowledge, confirmed by an institution through a degree or certificate, and affirmed by an external accrediting agency.

The second part is licensing - this process applies specifically to individuals, and usually has legal ramifications. One can't practise in certain areas unless he or she is individually licensed. Licences are conferred by governmental bodies and are based in part on possessing a degree from an accredited academic programme.

While licensing is most often done by government, accreditation is most likely to be done by an independent non-governmental association operating in the academic environment.

The trick in an emerging area such as software engineering, believes Kam, is to ensure that licensing is available to those who did not get their qualifications through the traditional academic route. If someone is a brilliant, self-taught programmer, or has picked up skills through a series of industry certifications, there should still be a way for him or her to be licensed - an opportunity to show that the person understands and can apply particular concepts and practices. This approach is similar to the practice established in many other disciplines years ago, where if one lacked some educational credentials, but claimed experience and know-how in an engineering discipline, one could still take certain engineering licensing exams to demonstrate to the licensing body that one indeed possessed the requisite skills.

Kam is quick to emphasise that accreditation should not be linked to the tools we use and argue over at the drop of a hat - the choice of IDE, language or framework. “In 20 years, we'll be laughing at the tools we use today. The issue is not tools - the idea in both accreditation and licensing is to ascertain basic skills, a logical approach and methodical thinking. For example, the licensing body can write an exam where you are provided with certain commands in a new 'language' that was created specifically for testing purposes. We want to see that when you see a new problem, you can create a useful solution using this language. The details of your solution will tell us how you think, how you analyse a new problem, and how experienced and knowledgeable you are in the art of programming.”

This approach may sound a little abstract - but accreditation systems for computing were created and are working in many different countries. While there are nuances, says Kam, by and large, there is an agreement on certain principles. “Accreditation agencies used to be very prescriptive. They are now much more permissive, using an outcomes-based approach. They help a programme establish what it is trying to do, and ascertain that it is actually accomplishing what it publicly committed itself to achieve.”

There is always a danger of abuse - as argued in some of the medical fields. Licensing requirements may be manipulated to reduce competition and inflate prices to the customer. “I completely agree that this is potentially a danger - we must draw a fine line between the extremes,” says Kam. “Accreditation and licensing procedures must be transparent to the public and open to political debate.”

For example, in the area of pharmaceutics, certain types of advertising and promotions were disallowed in some US states as part of the professional code of ethics. Studies were done in states with the restrictions and without, and these studies didn't find significant differences between the states in areas of quality of care and rate of errors. The restrictions were then lifted. If a rule is unreasonable and is aimed primarily to restrict competition, eventually the profession will be called on it. Neither accreditation nor licensing are meant to create a guild that protects itself from the market.”

So what next? How do the South African software industry, the individual developers, and the institutions that teach them move forward on making software a true profession?

The first step is to build and strengthen professional associations - a proven way forward on a path well trod by other professions.

Creating an accreditation system, says Kam, should be decided through an alliance of professional associations, academia, and with direct involvement from industry. “This is how it works in most of Europe, the US and Japan. The UK is a little different, as it has taken a somewhat different path regarding the relationship between accreditation and licensing.”

Licensing would likely be government-led.

It is very important that South African developers, academics and industry get their act together quickly, says Kam, as there is currently no government regulation on software development, and on who can write software that has safety and public welfare ramifications. The more professional associations do voluntarily, and the less the government intervenes, the better.

“In the US, a conscious decision was made by the accrediting body for engineering, engineering technology and applied science to distance itself from government and the US Department of Education. This decision freed the accrediting body from excessive regulation by the government and established self-governance of the profession.

Accreditation for the software discipline makes sense in so many ways. To improve professionalism and quality in South African-developed software. To allow developers to move more freely between jobs. To allow the industry to have the status and influence it needs to drive policy. The trick will be to do it in a way that preserves that thing that draws us to software in the first place - the intellectual freedom, and the egalitarian nature where you're as good as your last code.

Kam will be chairing the “Accreditation" session at the upcoming Software Engineering Colloquium, to be held in Cape Town, on 24 May. Click here for more.

ITWeb is the official media partner for the event.