Home
| Calendar
| Mail Lists
| List Archives
| Desktop SIG
| Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU |
-------- Original Message -------- Subject: Re: [Discuss] Programming vs Engineering Date: Sat, 21 Jan 2012 22:13:24 -0500 From: Mark Woodward <markw at mohawksoft.com> To: Richard Pieri <richard.pieri at gmail.com> On 01/21/2012 04:37 PM, Richard Pieri wrote: > On Jan 21, 2012, at 1:39 PM, Mark Woodward wrote: >> Does anyone have any comment? > Yeah, but it's more rant than anything else. You've been warned. > > > The title "Engineer" has a specific, legal meaning. Professional use of the Engineer title requires rigorous education, testing, internship and licensure. None of these exist for professional programmers. Therefore, there are no Professional Software Engineers, regardless of what is on our business cards[1]. All of this also applies to the "Architect" title. Architects have similar education and testing requirements to Engineers, and like Engineers they must be licensed to practice professionally. Use of the Engineer and Architect titles for computer specialists is nothing more than aggrandizement. I have to disagree with you here and while I do see your point about licenses, I truly think computing is too immature to establish the requirements on which you could establish a licensing process. For instance, we don't even have a standard set of measurements nor do we have a standard language in which to express computing engineering concepts. Programming languages and methodologies are still in flux and under development. How could a bureaucratic organization in charge or any such licensing process not become a useless albatross? Before we were a "nation of laws" and before we tried to quantify and regulate everything, "engineer" was a verb and an "engineer" was one who did it. > In my book, your exemplar "good software engineer" is really a good programmer, and your "good programmer" is anything but good. He is terrible. He'll write "correct", "clean" code that will be five to ten times slower than the good programmers' painstakingly optimized code. Then he'll go and rewrite their code to "clean it up" to match his own and check it in without telling anyone. Then the next release candidate suffers catastrophic performance problems and a mad scramble to figure out why ensues. Someone at a previous job of mine did this, and the senior management was not amused. Bad programmer, no biscuit. > Rant off. I have had similar experiences, but of a different character. Programmers who create reams of code that "works" and make the release. Gods help you if you want to figure it out or need it have multiple instances. The practitioners of this work get praise, but the correctors of it get criticized. When all is done, the crap work was fast, but the engineered correction takes time. Management doesn't see the time of "engineering" as valuable because, at the end, it doesn't seem like it does anything differently. When you add a new feature that depends on the previous engineering, the work is not factored in. I also disagree about the bad programmer. Someone who can create something that works has a talent. It is not my way, but I can see it. If you read "programmer" as a noun of the verb "to program" then they are in fact programming and they are good programmers. Engineer isn't a title, it is a verb and one who does it is an "engineer." It generally means applying science and ingenuity to solve problems. Take solace in "software engineer." There is no established definition. It is up to us to establish what that means. Doctors had to form professional groups to keep others from calling themselves doctors.
BLU is a member of BostonUserGroups | |
We also thank MIT for the use of their facilities. |