Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83 based; site homxb.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!homxb!afa From: afa@homxb.UUCP (A.ACKERMAN) Newsgroups: net.singles Subject: Re: Title Inflation Message-ID: <1197@homxb.UUCP> Date: Wed, 29-Jan-86 21:53:12 EST Article-I.D.: homxb.1197 Posted: Wed Jan 29 21:53:12 1986 Date-Received: Sat, 1-Feb-86 00:01:20 EST References: <705@leadsv.UUCP> <130400004@hpfcls.UUCP> <723@leadsv.UUCP> <1572@lumiere.UUCP> <430@ur-helheim.UUCPRe: Title Inflation Organization: AT&T Bell Labs, Holmdel NJ Lines: 152 ************************************************************************ Although this posting bears the name of A. Ackerman, R. MciIlree is the poster and takes complete resp[onsibility for the content... ************************************************************************ Very early in my career, my business card said "Programmer Analyst". At that point, I had read many advertisements for "Software Engineers". Boy! Did I wnat that title bad! Maybe I could be a SOFTWARE ENGINEER and still do a fair amount of programming, but have a title Mom and Dad could brag about to unwitting friends and relatives... Well, time (approx. 3 years) passed, and now I AM a SOFTWARE ENGINEER! Gee whiz golly, that fast? Let me elaborate on what a normal day entails for me: BACKROUND: I supervise three programmers (referred to as "coders" here - generic term) on a software tool development project. I am responsible for generating about 1000 pages of documentation (by myself) for each system developed under my direction. 8:00AM - Get to office. Barely have time to hang up coat and phone rings along with 2 coders entering my office for directinon. Phone call turns out to be my boss wanting to meet and discuss schedules. 8:30AM- Boss placated over telecommunications device. Coders get enough information to start programming some modules. Try to sneak to cafeteria to get much needed caffeine except: 8:30:02AM - Office mate taking C language course is having difficulty. I take 10-15 minutes to explain problem. Still no coffee. I'm already starting to lose it... 8:45 AM - Boss appears to discuss documentation & implemenation schedules. Problem with other organization needing software delivered quickly, have to skimp on documents, says I. No dice, says boss. Delivery will then be pushed back? No dice on that either. Visions appear of me sitting at desk at 11 PM tonight. Sigh, or make that: GROAN! 9:15 AM - Boss leaves. Answering machine on. Office Door shut. I attempt to attack a pile of documentation that must be published and recorded into a project management system. I also have to grapple with the fact that I assigned MYSELF the communications handling software to code and test. Foolish me. 9:30 AM - 15 minutes of intense work interrupted by the 2 coders. End up having 2.5 hour meeting to explain for the 3rd time (and that's along with already complete spec. documents, folks). what it is that they are supposed to program. 12:00 NOON Lunch for 15 minutes at desk. 12:15 PM - Back to what I was doing at 9:30 AM 1:00 PM - The 2 coders reappear. One wants to give a demo. I say OK, but make it fast. It fails miserably. I tell coder that this should have been tested sooner. Lame excuse given. I reset deadline for him. Also explain that life could get difficult if new deadline isn't met. (I'm not a jerk, just a guy under a schedule gun...). 1:45 PM - The 2 coders leave just as boss reappears. New meeting on schedule. No progress. Shit... 2:30 PM - Boss leaves. Coder with demo reappears. Told to get lost. Will deal with you when code is ready, hopefully. 2:30PM Back to what I was doing at 12:15 PM. 3:00 PM- Third coder (my best one) appears. Has finiahed current assignments, needs new ones. Spend time getting him new work. 4:00 PM - Went to hide in friends office. Read New York Times for 1/2 hour. 5:00 PM -Dinner at local eatery. 6:30 PM - Back here doing what I was supposed to be doing at 9:30 AM, 12:15 PM and 2:30 PM. 9:20 PM- Writing up this posting. 10:00 PM back to tasks started at 6:30 PM 12:00 AM - Going home. won't show up until 10 AM next A.M. OK gang, the purpose behind this mini-diary *IS NOT* to garner sympathy from any of you. The purpose is to shed light on what I define as a SOFTWARE ENGINEER, as opposed to a PROGRAMMER: 1) My employer looks upon software as an engineered product. I'm sure many of you out there have employers that feel the same way. Thus, this engineered product must come complete with myriad documentation: specs, test specs, interface specs, communication specs, you-name-it specs. Some of you (especially from the mainframe world) might call this SYSTEMS ANALYSIS. Somewhat true, but wait.. 2) We follow a methodology scheme kludged from Yourdon and DeMarco to fit our needs. We also have a number of development systems that assist us to develop new systweems, and which has to be factored into our documentation. Much like an EE has to know the electrical characteristics of the devices used in circuits, software engineers must be totally familiar with EVERY package, development tool, or borrowed algorithm that is to appear in the delivered software. Programmers only have to understand a PART of this. 3) I am completely responsible for producing estimates on: - lines of code on delivered system - scheduling of the coders - milestone dates - definition of test cases (unit and integration) - support and maintanence issues - complete design phase (i.e. my effort). Although I have only scratched the surface, I believe that a Software Engneer has to come to terms with the various issues (and more) expressed above in a scientific fashion. I continually look for proved methods that enhance productivity, my coders included as well as myself. Therefore, to me, a software engineer utilizes the available methodologies, software packages & tools, structured languages, and development environment enhancements to turn out an ENGINEERED PRODUCT: namely electrons flying through a CPU with some method to it; or those same electrons residing on a disk pack or floppy. A programmer, on the other hand, takes direction (namely from a software engineer or systems analyst) and cranks out code that is supposed to meet a specification drawn from the software engineer or analyst. I tend to feel, however, that Software Engineers get more involved with the gut-level code than do analysts. (If I'm wrong about this, I'm wrong-- no flames please). That's my viewpoint. Any others are more than welcome! Bob McIlree AT&T Bell Labs Middletown, NJ Disclaimer: My employer probably shares the same definitions I have just explained, but I'm not sure. BTW, I DO like my job, although it sure gets annoying,as the above synopsis dictated. "Let's LIMBO, JIMBO!!!!!!!!!!!!!!!!!!!"