First year engineering students enter university with low levels of abilities in the field they are training in and a lack of understanding in what they are being taught. In the core engineering disciplines, the first assignment in the introductory course is to write a short essay on professionalism in engineering, in essence, what makes a professional engineer. Various ideas are mooted and found wanting. The general overriding consensus is that being a professional entails these factors:
- Follows strong ethical guidelines.
- Follows best practices.
- Is part of the community that surrounds the discipline.
- Takes their own time to improve and educate themselves.
- Is able and willing to teach and learn from others.
- Other concepts such as recognised qualification, tidy dress and pride in their work are also mooted.
At the University of Canterbury, the Software Engineering department is not part of the general engineering college. Hence, this concept may not get shoved down our throats. However, this idea is becoming prevalent in software engineering. Uncle Bob is an important proponent of this concept in the industry. Below are a selection of articles that touch on what being a professional means in software engineering.
- Uncle Bob's "Speed Kills"
- Uncle Bob's "The Professional Programmer"
- Uncle Bob's "The Three Laws of Test-Driven Development"
New Zealand Computer Society
The New Zealand Computer Society is a body of ICT professionals in New Zealand. Their goal is to create an ICT profession in New Zealand whereby members of the society are bound by the NZCS Code of Professional Conduct:
- Non-Discriminatory - Members shall treat people with dignity, good faith and equity; without discrimination; and have consideration for the values and cultural sensitivities of all groups within the community affected by their work;
- Zeal - Members shall act in the execution of their profession with integrity, dignity and honour to merit the trust of the community and the profession, and apply honesty, skill, judgement and initiative to contribute positively to the well-being of society;
- Community - Members’ responsibility for the welfare and rights of the community shall come before their responsibility to their profession, sectional or private interests or to other members;
- Skills - Members shall apply their skills and knowledge in the interests of their clients or employers for whom they will act without compromising any other of these Tenets;
- Continuous Development - Members shall develop their knowledge, skills and expertise continuously through their careers, contribute to the collective wisdom of the profession, and actively encourage their associates to do likewise;
- Outcomes and Consequences - Members shall take reasonable steps to inform themselves, their clients or employers of the economic, social, environmental or legal consequences which may arise from their actions;
- Potential or Real Conflicts of Interest - Members shall inform their clients or employers of any interest which may be, or may be perceived as being, in conflict with the interests of their clients or employers, or which may affect the quality of service or impartial judgement;
- Competence - Members shall follow recognised professional practice, and provide services and advice carefully and diligently only within their areas of competence.
Certified Software Development Professional
IEEE's Certification and Training program for Software Professionals IEEE have two different certification programs - The Certified Software Development Professional (CSDP) and Certified Software Development Associate (CSDA).
The Certified Software Development Professional is designed for experienced Software Developers (between 2 - 4 years experience) and the Associate certification is designed for entry-level software developers (and graduates).
Both are bound by a set of Ethics and Professional Practices:
- PUBLIC - Software engineers shall act consistently with the public interest.
- CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
- PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
- JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.
- MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
- PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
- COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.
- SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.