The Software Engineer

Passionate about the SA software industry

Some further thoughts on the professionalisation of SA’s ICT sector

by Prof Barry Dwolatzky

On 25th July 2010 I asked a question on this blog: “Does South Africa need professional Software Engineers?” In asking this question I had in mind a new engineering discipline falling under the Engineering Council of South Africa (ECSA). 

A number of thought-provoking responses to my question were posted and I would like to respond to some of them. First, however, I feel the need to suggest some definitions. 

“Professionals” and “Professional Bodies” 

What is a “professional”? There is a wide range of opinion on this – seemingly simple – question. However, some common characteristics emerge. One can say that “professionals” do work that is not routine and well understood. It is work that has strong intellectual content, frequently leading to unique or novel outcomes. In addition professionals have:

  • Specialised knowledge – usually acquired through academic qualifications
  • Excellent practical and intellectual skills
  • A high standard of ethical behaviour – sometimes codified in the form of a formal “code of practice” 

In terms of these characteristics a doctor, lawyer, engineer and accountant are all “professionals”. They do work that requires intellectual engagement and is seldom routine. They all require university degrees. They have the skills to apply their specialised knowledge in practice. They work within a framework of ethical behaviour defined in a code of ethical practice. 

The above characteristics also tell us that artisans, actors and “professional” sports men and women are probably not “professionals”. The dividing line is, however, not clear-cut. 

In many cases the line between professionals and non-professionals has less to do with the work they do and more to do with how professions are organised. 

There are two sides to the coin when one considers why we have organised professions. Professional bodies represent both the interests of the professionals themselves and the interests of the public. Let’s consider medical doctors as an example. 

A professional body, the “Health Professions Council of South Africa” (HPCSA), represents the interests of doctors – and other health-care professionals. It defines what a “doctor” is, it maintains a register of doctors, and it keeps “non-doctors” out of the profession. 

At the same time the HPCSA protects the public from “bad” doctors. It has a code of ethics and can discipline members guilty of breaking it. It sets the standards for the education of doctors and works to ensure that this standard is maintained and kept relevant. Its role as custodian of public interest is recognised by Government via legislation (namely the “Health Professions Act” No. 56 of 1974, most recently amended in 2007).

While HPCSA is a statutory body, its work is supported and complemented by a number of non-statutory professional associations. SAMA (the “South African Medical Association”) is one such example. Membership is voluntary. There are, however, barriers to membership. To join SAMA applicants must be a registered with HPCSA as a medical practitioner. SAMA acts as a trade union protecting its members’ rights and privileges and fights to maintain the status of doctors within society. SAMA also works to support its members in “maintaining a lifelong commitment to continuing professional development” (www.samedical.org

The following diagram shows how organisations and professional bodies – both statutory and non-statutory – are located on a plane showing “Level of public responsibility” on one axis and “Barriers to entry” on the other.

 Diagram 1 - professional

 

  • Voluntary Organisations: These are organisations that focus on forming communities around common interests and concerns. Membership of these organisations is typically open to all, or most, applicants. [Barriers to Entry = low]. Membership of the organisation does not require members to assume a high level of public responsibility for their actions [Public responsibility = low].
  • Statutory Professional Bodies: Membership of these organisations is tightly controlled. A register of members is maintained and mechanisms are in place to add and remove members. There is a formal “code of conduct” that the body is responsible for administering. Membership is compulsory for everyone wishing to practice in that profession. “Barriers to Entry” and “Level of public responsibility” are both high.
  • Non-statutory Professional Organisations: These lie between the two extremes outlined above. The organisations focus on providing benefits and status to their members rather than the protection of public interest. Membership is voluntary and limited to various categories of “professionals”. Access to membership is typically less rigorous than that of Statutory Professional Bodies. 

Coming back to the example of medical doctors, the following diagram shows where organisations having doctors as members would be located.

 Diagram 2 - professional

 

 

Most recognised professions can be represented by a similar diagram.

 Professionalism in the ICT Sector

 Let us now consider the South African ICT Sector. Do we have any “professionals” in the Sector?

 In terms of the definition of a “professional” suggested above are there individuals in the Sector whose roles and responsibilities classify them as professionals? In the table below I’ve listed the characteristics of a professional and then analysed the roles and responsibilities of a number of job functions in the ICT Sector against these characteristics. In terms of this (admittedly rough) analysis we can see that Business Analysts, Architect/Designers and Project Managers fit the definition of a “professional” more than Testers and individuals involved in User Support/Training activities.

 

  Business Analyst Architect / Designer Programmer / Developer Tester Project Manager Database Admin (DBA) User support / training
Non-routine work

X

X

X

 

X

 

 

Strong intellectual content

X

X

X

 

X

 

 

Specialised knowledge/Academic qualification

X

X

 

 

??

 

 

Excellent practical &Intellectual skills

X

X

X

??

X

X

X

Formal code of conduct/Ethical behaviour

X

X

X

X

X

X

 

 While there are individuals working in the ICT Sector whose job functions may be considered to be “professional”, the organisational structure of the South African ICT Sector is not similar to other professions. The following diagram represents the local ICT Sector:

 Diagram 3 - professional

 

 There are a number of organisations which, based on “Barriers to Entry” are either Voluntary Organisations or Non-statutory Professional Organisations. There are no organisations in the Sector that require membership as a way of protecting public interest. 

The Sector is characterised by a large number of Individual “professionals” who are responsible for working on tasks that have a high “public responsibility” component. These tasks may be high-cost projects in the public or private sector, or tasks that have high risks associated with them. The “Barrier to Entry” into these jobs is very low – unlike other professions. 

I believe that we need both Statutory and Non-statutory Professional Bodies in the South Africa ICT Sector. We need, like other professions, to define Bodies of Specialised Knowledge for ICT-related jobs. We need to have a Code of Ethical Conduct, enforced by Government legislation to protect the public from non-professional behaviour. Professionals should be registered by a statutory body and made accountable for the work that they do. 

My responses to comments 

The comments posted on my blog of 25th July fall into a number of categories:

  •  The nature of ICT work is significantly different from other engineering-like activities: Richard and Marc believe that the technologies at the heart of ICTs change very rapidly. Because of this practitioners are constantly having to learn on-the-job, rather than applying standard approaches. Stefan, quoting Tom Maibaum, contends that “engineering” as a discipline requires work to have a high level of standardization and a strong body of “textbook” knowledge. He goes on to say that this standardization and textbook knowledge will never be achieved, resulting in software engineering being an unattainable ideal. Samkelo adds standardised tools and metrics to Stefan’s list of pre-requisites for an engineering discipline. He is also concerned that, given the complexity of software systems, the need for composing systems from standard parts is essential. He raises the difficulties associated with re-use in software development.

My response: I question the contention that ICT work is significantly different. While much of the specific knowledge areas are relatively new and “still under construction”, the underlying principles are well established and similar to other types of engineering. The development lifecycle of a software system is similar to other technological systems. I accept that there are challenges, but I can’t accept that work needs to be highly standardised. As I pointed out earlier, all professionals are required to carry out non-routine work with a strong intellectual (i.e. problem solving) content. ICT professionals are no different from other professionals in this regard.

  • Are ICT practitioners “professionals”? Should they be recognised as “professionals”? Most of those who commented were convinced that ICT workers are professionals and should be recognised as such. Bernard feels that all ICT staff should be recognised as “professionals”, although not all are “engineers”. He believes that they should behave as professionals (i.e. be accountable for quality and delivery). Morkel believes that it’s important to distinguish the work of professionals from amateurs and “fly-by-nighters”. Jean feels that failure to recognise ICT professionals gives the entire industry a bad name.

My response: I feel that not all ICT practitioners need to be registered professionals, although everyone needs to work with a high level of professionalism. The professionalization of the ICT sector is essential both in protecting the interests of practitioners and in ensuring that the public is adequately protected.

  • Who should represent the interests of software engineers? In my posting I suggested that software engineering should become a “new” engineering discipline under the Statutory Professional Body ECSA (“Engineering Council of South Africa”). Hendrik sees different “streams” – one aligned with traditional engineering and the other more in line with business-type applications. The implication is that different bodies would be required to represent different categories of ICT professionals. Adrian informs us that SAQA (the South African Qualifications Authority) is about to enter the debate. SAQA is required in terms of the NQA Act to register professional designations and recognise professional bodies. The CSSA is a non-statutory body which has a professional grade of membership, called PMCSSA. He asks if this will give sufficient recognition to software engineering professionals.

My response: In reading the comments and thinking further about the issue of registering “software engineers”, I’m no longer of the opinion that we should simply become a branch of engineering under ECSA. We need in the longer term to have our own structure with both non-statutory and statutory professional bodies like any other profession. Existing organisations such as CSSA, SAIEE and ECSA certainly have a role to play in managing the transition from where we are today to where we would like to be in the future.

6 Comments

  1. Prof Dwolatzky

    I find your assessment of the Testing profession surprising. The manual tester’s work is often routine and without a lot of intellectual input. But the people designing the Tests (Test Analysts, Test Managers) often have a lot more insight into the applications than any of the other mentioned professionals. The QA team often receive poor design documents from the so-called professional business analysts and are pushed to release the poorly developed application by both project managers and operation professionals.

    In my experience, it is often only the QA team that stands between the end-user and the poor service delivery from poorly developed applications and poorly run infrastructure designs by architects and service managers.

    In fact, in my work as a performance testing engineer, I often have a lot more insight into the design and management problems that other ICT professional create through poor management and a lack of intellectual insight into their own specialties.

    There is formal qualifications for the tester. It is called the ISEB Practitioner and various levels exist.

    Kind Regards

    Anton Goosen

  2. Entire conferences with volumes and volumes of publications are dedicated to the science of software testing, yet in the table of above it appears as if software testing could equally be done by any occasional by-stander, or maybe by the cleaning lady who’s sweeping and mopping the floor in the building every morning ??

    Moreover, I feel misquoted. It is true that I referred to Tom Maibaum, however I did NOT say that “this standardization and textbook knowledge will never be achieved”, I said that it is /currently/ nowhere to be seen. If I would truly believe that this could never be achieved in any future, then I could immediately give up my job as theoretical software methodologist. In fact my everyday work is dedicated to making steps into this direction.

  3. Anton …. I’m suitably chastised and informed!!

    I had no desire to downgrade the role of the Tester. I put my little table together thinking that “testing” was the routine and manual task of running through a series of test cases developed by the analyst or designer. Your explanation has convinced me that there is a whole lot more to testing than that! My apologies to the testing fraternity.

  4. Prof Barry Dwolatzky

    Hi Stefan

    Oops … I certainly lost the plot with respect to testing. I’m aware of the complexity and challenges associated with testing, but I was – in my head – thinking about routine repetitive testing tasks.

    Thanks for putting me right about what you meant with respect to “standardization and textbook knowledge” – I agree with you.

  5. After the “errata” have been acknowledged –many thanks!– I must say that this blog entry by-and-large an interesting one. The debate has moved on from a previous question (professional recognition: yes or no?) to a finer and more complicated question (professional recognition: if yes, then in /which/ body or organisation?).

    The South African ECSA was discussed in the blog entry of above, but in addition to the ECSA discussion I also wonder: What about internationally influencial associations, such as the IEEE? Is it “right” for software engineers to be associated or affiliated with the IEEE (as it is de-facto very much the case in these days)? Or should the IEEE rather be an exclusive club only for those people who are dealing with metal wires and the electrons that are flowing through them?

  6. Dear Prof;

    Amazed with your passion and dedication to our software engineering discipline. I personally believe, software engineering has got the basic discipline in place. However, most of the times the discipline is overpowered by new technology tools and products.

    Such a professional body is necessary to create a working bridge between academia, industry and international bodies.

    A software engineering professional needs to apply the engineering discipline for the industry’s better throughput, to create better professionals in terms of intellectual capacity for tomorrow and be proud in contributing as well as imbibing international thought-leadership.

Leave a Response