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 |
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. > > 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. > > [1] My title at my last gig was "Senior Systems Engineer". I hated that title and I hate putting it on my resume because it is a lie. I'm no Engineer. Basically, I agree with your first paragraph and I have had the title of Software Engineer (by way of job description) for many years. There are certain principles of software engineering that mirror principles of engineering in contrast to a programmer or programmer/analyst. But, in industry it is more of a pecking order. In a company where there are programmers who work on product, they are generally called software engineers where programmers in the IT department are generally called programmers. In some companies I have worked at, to become a "principal software engineer" you needed to be published,. The bottom line is that engineering is a discipline. That means in terms of code, that the code works when you throw it over the fence, that it is also readable and maintainable. It also means that you don't rewrite code for the sake of it. I've had to work with many very old programs (like Lex and YACC) where the code was originally written by a graduate student. But, both programs work. I've seen many rewrites of old code that never were able to perform as well as the old code. Another discipline is to document both using comments, as well as reasonable comments when checking in to a source code control system like git, SVN, or CVS. Recently at work there was a question of why my code (BASH in this case) pointed at a specific server. I went back to the git logs and found when that was changed. (I know it is not a good practice to hard code things like that, but this was originally designed as a way to make it easier for people in the office to install a piece of software we bought from Europe). -- Jerry Feldman <gaf at blu.org> Boston Linux and Unix PGP key id:3BC1EB90 PGP Key fingerprint: 49E2 C52A FC5A A31F 8D66 C0AF 7CEA 30FC 3BC1 EB90
BLU is a member of BostonUserGroups | |
We also thank MIT for the use of their facilities. |