1 / 13

Software Professionalism

Software Professionalism. Cmpt. 408 March 2005. Software Professionalism. professional societies CIPS (Canadian), ACM and IEEE-CS codes of ethics CIPS code of ethical conduct: http://www.cips.ca/about/ethics/ there are also ACM and IEEE codes (see Baase appendix) standards ISO

jerica
Download Presentation

Software Professionalism

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Professionalism Cmpt. 408 March 2005

  2. Software Professionalism • professional societies • CIPS (Canadian), ACM and IEEE-CS • codes of ethics • CIPS code of ethical conduct: http://www.cips.ca/about/ethics/ • there are also ACM and IEEE codes (see Baase appendix) • standards • ISO • certification • of people: eg. Novell Network Engineer • of company: Capability Maturity Model • professional designation ISP, P.Eng • normally, requires graduation from accredited undergraduate program, plus experience, plus special exams • must maintain capabilities: life long learning • P.Eng backed by force of law: Engineering Act • ISP increasingly defined in law as a “Profession” • is software engineering real Engineering?

  3. The Engineering View • Computer Science has done its job over the last 50 years and developed the basic theoretical ideas underlying software • However, software often fails in the real world because of the failure to incorporate into its design “sound Engineering principles” (look at Y2K!) • It is now time that the practical side of Computer Science be split from the theoretical side and be done by Engineering (as in Chemistry and Chemical Engineering): this field should be called “software engineering”, i.e. Engineers building software • “We’re getting blamed anyway for software that fails ‘on board’ our artifacts, so we should be given control of the design of software as well as the artifact” • For the public safety

  4. The Engineering View Software Course Belongs in Engineering “History tends to repeat itself: as a given science matures, the evolution is toward application of that science. This has taken place with the development of chemical engineering from chemistry, of engineering physics from physics, and more recently, of bioengineering from biological sciences. “Now it is the time of software engineering, which represents the application of solid computer science principles. The college of engineering is actively pursuing the development of a program addressing the true market demand for computer and software engineers, of “real” engineers. “Such a program builds its foundation on solid math, basic science, engineering science, engineering design and computer science. “However, as in all the other cases of application of science, such a program has to be developed and implemented where it belongs - in colleges and faculties of engineering.” Franco Berruti, then U. of S. Dean of Engineering Star-Phoenix, February 19, 1998 “Good News for Software Engineers:Now Software Engineering is REAL Engineering” advertisement appearing in the Jan./Feb. 2001 issues of Ontario Universities’ alumni magazines, encouraging professional Engineers to become professional Software Engineers (with instructions on how to do this on the PEO website) “Engineers: all around us, all the time”, “every day, everywhere”, “365 24/7” Saskatoon billboards, Feb. 2001, 2002, 2003

  5. CCPE Actions on Software Engineering • Canadian Council of Professional Engineers (CCPE) campaign includes: • legal action against Memorial University of Newfoundland (MUN) for offering a software engineering program in computer science rather than in MUN’s engineering faculty • law suits against practitioners for using “engineering” in their job title: Merhej case: Microsoft Certified Systems Engineer; case won (originally and on appeal) by Merhej • trademarks filed on the words “engineering” and “engineer”, used to buttress CCPE claims to software engineering (including in the MUN lawsuit) • recent amendments to many provincial/territorial Engineering Acts that make it easier to include the design of software under the scope of engineering practice (which has not included software heretofore) • accreditation of software engineering programs in the engineering faculties of 9 Canadian universities (with at least 6 more to come); these programs are variations on standard engineering programs, notwithstanding the considerable differences between software and the physical artifacts that are the focus of traditional engineering; the bulk of the software expertise in these programs is, in general, provided by computer scientists due to the relative paucity of comprehensive software expertise within most engineering faculties across the country • many media releases, advertisements, and position statements reinforcing “ownership” of software engineering by professional engineering, reiterating that holders of the P.Eng. license have exclusive right to practice software engineering, and claiming that anybody else would not only contravene provincial/territorial law, but also endanger “the public safety” • Bottom line: software engineering is an exclusive area of Engineering practice

  6. The Computer Science View • Computer Scientists have developed most of the algorithms, theory, and practices underlying the development of software: they invented the field and have trained most of the practitioners • Computer Scientists thus know best how to develop software, because they have deep knowledge of both theory and practice, and the interactions between the two • “Software engineering” is the particular sub-discipline of Computer Science concerned with producing large-scale software • It has been very successful: Computer Science has spun off the world’s biggest industry in less than 50 years! • CACS/AIC position: “In summary, while CACS/AIC supports interdisciplinary ICT activities of all kinds, the attempt to impose an Engineering-style model on all applied software programs in Canadian Universities is both narrow and inappropriate. There needs to be latitude to allow many different kinds of programs. There needs to be flexibility to match a broad and rapidly changing discipline. Right to practice for all ICT professionals needs to be assured.” from CACS/AIC official reaction to SEAB negotiations, June 2, 2001

  7. The Computer Science View: Actions • The opponents to the Engineering view: • Canadian Information Processing Society (CIPS), Canada’s main organization of software professionals • the Canadian Association of Computer Science (CACS), the national organization of university computer science departments • the Information Technology Association of Canada (ITAC), representing Canadian information technology companies (somewhat conflicted) • the Association of Universities and Colleges of Canada (AUCC), the national organization of universities (on the MUN lawsuit) • Two main issues: • right to title • right to practise • Actions include • fighting CCPE in the MUN lawsuit • lawsuit halted on eve of court • negotiations to establish CCPE/CIPS managed SEAB • negotiations now suspended • many position papers • new attempt to add exclusion clause for software developers to provincial Engineering Acts • Bottom line: there must be freedom to develop a wide variety of professional models appropriate to the nature of software and the realities of the software profession

  8. The Licensing Issue: Pro • arguments for licensing • education • uniform education for all practitioners • curriculum is standardized • curriculum is accredited regularly by the profession • apprenticeship: high percentage of teachers are licensed professionals • professional responsibility • professional attitude is encouraged, including ethics codes • professional body disciplines practitioners • legal obligations under enabling legislation • public awareness • clarity in standards to be a professional • advertising and other information dissemination on the role of the professional

  9. The Licensing Issue: Pro • The Engineering view: Licensing as a professional Engineer is appropriate and required to perform software engineering • “PEO’s requirements for a P.Eng. licence for software practitioners include: • Graduation from an engineering program approved by the Canadian Engineering Accreditation Board (CEAB), or equivalent education; • Four years suitable employment experience – applicants without an appropriate degree may demonstrate more extensive work experience in place of education, or may be required to write examinations; • Knowledge of Control Theory, Mathematical Foundations, Digital Systems and Computer Architecture, Software Design and Programming Fundamentals; • Knowledge of three of Communications, Optimization, Data Management, Real Time and Control Systems, Performance Analysis, Parallel/Distributed Systems and Man-Machine Interface; and • Successful completion of the Professional Practice Examination (PPE) on engineering law and ethics.” Roger F. Barker, CEO and Registrar, PEO, letter in IT Business On-Line, January 2003: http://www.itbusiness.ca/index.asp?theaction=61&sid=51133#

  10. The Licensing Issue: Con • arguments against licensing • education • need much greater variety in education • highly inflexible standards, slow to change • professional influence reduces academic freedom, unnecessarily constrains hiring of most competent instructors • education usually narrow, focussed on competence in the discipline not its relationship to wider world • dated expertise • professional responsibility • professional attitude can impose blinkers • “self regulation” can be contradictory: internal discipline conflicting with need to protect profession’s image • the profession feels it “owns” the act under which it is regulated: the laws regulating the profession are often written by the profession itself • public awareness • standardized professional is actual a straightjacket on needed diversity • profession often acts in its own self interest rather than the public interest

  11. The Licensing Issue: Con • an alternative to licensing? • what are the desired capabilities of a good software engineer • educational depth and breadth • knowledge of context of use • people skills • appropriate personal attributes • commitment to process • creativity • rather than “institutionalized profession” model inherent in a licensing regime, why not “individualized professionalism” where the focus is on the practitioner’s • educational background • technical skills • employment history • social relationships • personality • judged by • resumé • letters of reference • interviews • with civil and criminal legal sanctions as applying to any human

  12. The Licensing Issue: Con Software Engineering Requires Individual Professionalism “In the “individual professional” model, the focus is where it should be: on judging the specific capabilities a person needs in order to produce reliable and cost effective software in any particular context. Making such individual judgments accurately is the only sure way to protect the public safety in an area as dynamic and diverse as software engineering.” from CACM editorial discussion on software engineering licensing, G. McCalla, CACM, November 2002 http://portal.acm.org/ft_gateway.cfm?id=581606&type=pdf&coll=portal&dl=ACM&CFID=20854513&CFTOKEN=18183808

  13. Some Questions • What are the boundaries of “software engineering”? Does the term imply “embedded software”? Does it exclude software development for human end use? Does it include all of applied Computer Science? Are there special principles for designing embedded software? • What similarities and differences are there between the design of software and the design of bridges? How many traditional Engineering practices are used in software development? • Is Computer Science a natural science? Is there a division between exploring the science and building the artifact? Which came first: the science or the artifact? • Will formal certification of practitioners (either ISP or P.Eng) help to produce better software? If so, who is best positioned to do the certification? • Is it in the public interest to restrict control over software development only to certain certified people? Who wins and who loses? • Should other professional bodies get involved when software is designed affecting their area of practice: eg. chartered accountants, doctors, lawyers, etc.? Do they have an equal right to the “software turf”? • How do the different roles for IT workers get defined and regulated? Is it even possible to clearly distinguish these roles? Which roles are needed for which projects? • What are the implications of decisions we make about these issues on Canada’s global competitiveness?

More Related