Three Paths

As I discussed in Chapter 18, the software community has not yet resolved whether a software engineer is an engineer who develops software or a programmer who creates software by using an engineering approach. The differences between these two schools of thought about software engineering suggest that licensing will eventually progress along one of three paths.

The first path involves creating a specialty exam in software within the framework of traditional engineering licensing. Engineers who have passed the Fundamentals of Engineering exam and obtained the required work experience could obtain their P.E./P.Eng. in software by passing the software engineering specialty exam. This path would require software engineers to be educated in programs like the one at McMaster University, described in Chapter 18.

The second path again involves creating a software engineering specialty exam, but it also entails modifying the Fundamentals of Engineering exams taken by all engineers (the specific exams vary by jurisdiction). Most engineers today use computers extensively, and many create computer programs for their own use or for use by their colleagues. These programs are used to provide data used in the design of bridges, skyscrapers, oil refineries, and many other structures that potentially impact the public welfare. The engineers writing these programs should have knowledge of effective software engineering practices. The Fundamentals of Engineering exams might simply need to be revised to contain a higher percentage of questions about software engineering. The exams are designed to be broad, and the score required to pass is fairly low usually around 70 percent, although it varies by jurisdiction. Engineers trained in other disciplines will get more software answers wrong and traditional engineering answers right; software engineers will get more software answers right and traditional engineering answers wrong. This path could be taken by engineers who have been educated in programs like the one at R.I.T., described in Chapter 18.

The third path would involve creating a professional credential that is more software specific than a traditional P.E./P.Eng.: "Professional Software Engineer (P.S.E.)" or some such label. Obtaining this credential would focus solely on software and would not require education in thermodynamics and heat transfer, properties of engineering materials, or other traditional engineering topics. An argument in favor of this approach is that people designing business systems, financial applications, educational programs, and other software that isn't used for engineering purposes really don't need knowledge of traditional engineering topics, but would still benefit from learning an engineering approach to building software.

Of these three options, I think the second path is the best approach. Software engineers should take enough traditional engineering courses to understand how engineers in various disciplines think about design and problem solving, and the third path doesn't require that. But engineers don't need to take every traditional engineering course to learn the engineering mindset, and the first path requires too much of that. Moreover, only a minority of software engineers will ever be licensed, and software engineering curriculum should be based on the reality that most graduates will not need to be prepared for the Fundamentals of Engineering exam. For those software engineers who do decide to become licensed, the second path will prepare them to pass a revised Fundamentals of Engineering exam without excessively diluting coursework specific to software engineering.

Would changing the Fundamentals of Engineering exam be good for other engineering disciplines? I think so. Changing the Fundamentals of Engineering exams wouldn't reduce the caliber of engineers who are eventually granted licenses. Those engineers will still need to pass their engineering specialty exams at the end of their Engineer in Training period whether in civil engineering, chemical engineering, aeronautical engineering, or another specialty. Engineers' ethics codes prohibit them from practicing in fields outside their areas of expertise. In addition, software is so pervasive in modern engineering that introducing all engineers to software engineering might provide a significant benefit: it could cause them to understand the challenges associated with creating complex software systems and to recognize when they need to bring in expert help for projects that are beyond the scope of their education and training.



Professional Software Development(c) Shorter Schedules, Higher Quality Products, More Successful Projects, [... ]reers
Professional Software Development(c) Shorter Schedules, Higher Quality Products, More Successful Projects, [... ]reers
ISBN: N/A
EAN: N/A
Year: 2005
Pages: 164

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net