by Prof Barry Dwolatzky
Professional Engineers are formally recognised in terms of South African law. We have Electrical Engineers, Chemical Engineers, Civil Engineers and other branches of Professional Engineering. Should we have professional “Software Engineers”?
First the legal stuff: Back in 1990 parliament passed the “Engineering Profession of South Africa Act” [Act 114 of 1990]. This gave rise to a statutory body that became the “Engineering Council of South Africa”, or ECSA, under the later “Engineering Profession Act, 2000”, [Act 46 of 2000]. ECSA is responsible for “promoting a high level of education and training of practitioners in the engineering profession so as to facilitate full recognition of professionalism in the engineering profession, both locally and abroad.” [ECSA website www.ecsa.co.za ] In practical terms ECSA accredits engineering educational programs, manages the registration of professionals, and promotes the interest of practitioners and the profession.
Should “Software Engineering” become a branch of engineering under the ECSA framework? I believe it should!
I feel that there is a strong need for formal recognition of Software Engineering as a profession alongside other engineering disciplines in South Africa. Software is an increasingly critical component in many systems. Software projects attract large budgets and require professional management. Some of these projects also have huge social and commercial impact.
I think that Software Engineering should become a formal branch of engineering for the same reasons that parliament saw fit to bring other branches of Engineering under ECSA and the terms of the Engineering Profession Act.
Having said this, however, there are numerous very difficult issues to resolve. Some of these are:
- Which body represents the interests of software professionals? Each of the existing branches of engineering has a professional body – an Institute or Association – that organises and represents its members. ECSA in most cases works with these national bodies. The South African Institute of Electrical Engineers (SAIEE) probably has the strongest claim to representing engineers engaged in “software engineering”. But there are other bodies, such as the Computer Society of South Africa (CSSA) that may claim “representation rights”. Should a new Institute be established?
- What would the accredited education of a software engineer look like? There have been several international efforts to establish a curriculum for Software Engineering Education (the IEEE and ACM are international professional organisation that have published software engineering curricula) and a “software engineering body of knowledge”, or SWEBOK (see www.swebok.org )
- Would all software developers and related professionals be required to register?
- What about those hundreds of thousands of South Africans currently employed in the software industry? Would they also need to satisfy the formal prerequisites for professional registration?
- Is “software engineering” actually an engineering activity at all? Some would argue that it isn’t.
I’m throwing out these thoughts in the hope of generating some debate on this topic. I have my own views which I will share in further postings on this blog. Much of what we are doing through the Joburg Centre for Software Engineering (JCSE) at Wits University aims to promote a professional engineering approach to software development.
What are your thoughts?