brian@dekalb.UUCP (Brian Charlton) (05/09/89)
I am a student and am new to this news group,so this may seem like a stupid question to most of you. I read that soft- ware engineering as a sub-discipline under computer science; but I also read in an another news group that software engineers were considered actual engineers (like AE,EE,ME ....). What are the actual degree requirements of software engineers and also what are their job definitions ? -Brian -- *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* | EMAIL : brian@dekalb or | " Yet another victim of | | gatech!dekalb!brian | society " | *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
fad@think.COM (Franklin A Davis) (05/10/89)
In article <497@dekalb.UUCP> brian@dekalb.UUCP (Brian Charlton) writes: > I am a student... I read that soft- >ware engineering as a sub-discipline under computer science; but >I also read in an another news group that software engineers >were considered actual engineers (like AE,EE,ME ....). >What are the actual degree requirements of software engineers and also >what are their job definitions ? I'll quote a definition by Richard Fairley from "Software Engineering Concepts:" Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. Dr. Fairley was a professor of mine and chairman of the faculty at the late Wang Institute of Graduate Studies when I studied for my Masters of Software Engineering. He's now head of the MSE program at George Mason University. Having studied (and argued about) the details of SE for a year in school, and then working for nearly two, I feel I am just beginning to become a good engineer. In my five years of work before my graduate studies I think I was more a programmer than a true engineer. Almost everyone who programs computers for a living is now referred to as a "software engineer." I applaud the goal of having all programmers practice real engineering, but I'm afraid the use of "software engineer" as a job title is often inflated. Since there are only a few schools in the world so far that grant degrees in software engineering it would be impractical to have specific SE degree requirements for jobs. Fortunately the real world is often a good teacher, so people with CS degrees (or no degree at all) become proficient engineers with experience. My own working definition is that a software engineer is knowledgable and disciplined about all the tasks involved in creating a *finished product*, including specification, planning, design, writing test plans, coding, debugging, testing, documenting, and maintaining. The actual effort in writing code that just "works" is a small fraction of the total. Few CS departments devote more than a semester (if that!) to software engineering. I'm not sure the undergraduate level is a good time to concentrate on it -- the Wang Institute required at least 2 years' experience, and I think that was beneficial. But, as you'll probably hear over and over if you continue reading this group, anyone entering the field should be required to have some basic knowledge of the engineering aspects of software product development. Sadly, as I interview recent grads from excellent schools, I find this is rarely the case. --Franklin Some references: The Mythical Man-Month, F. Brooks, Addison-Wesley 1975. (READ THIS FIRST! It's fun.) Software Engineering Concepts, R. Fairley, McGraw Hill 1985. Software Engineering: A Practitioner's Approach, R. Pressman, McGraw Hill 1987. (He says, "A set of techniques, collectively called 'software engineering,' has evolved...[to] deal with software as an engineered product that requires planning, analysis, design, implementation, testing, and maintenance.") franklin a davis Thinking Machines Corp. Cambridge, MA 02142 617-876-1111 <fad@think.com> {ames, harvard, mit-eddie, uunet}!think!fad
kathyi@hpmcaa.mcm.hp.com (Kathy Iberle) (05/11/89)
Being new to this string, I'm a bit puzzled. In my (possibly outdated) experience, "programmer" usually refers to someone who has 2 years education (an associate's degree) and whose job is defined as implementing the detailed design done by a systems analyst. I believed this to be true in the DP world. In the engineering or technical programming world, it seemed that either you had junior engineers/ senior engineers (any of whom might or might not have an engineering degree in any engineering discipline), or you had jack-of-all-trades who do design, implementation, and testing. The jack-of-all-trades requires at least a BS (but not necessarily in CS) and often is called "software engineer" to distinguish him/her from the "programmer". Of course, this view was formed before most software engineering programs were in existence. I still have not met anyone who has actually graduated from one, though I have certainly learned much of the subject matter out of necessity. So, am I outdated? Would you refer to yourself as a "programmer" on a resume? Kathy Iberle
rsd@sei.cmu.edu (Richard S D'Ippolito) (05/16/89)
In article <40386@think.UUCP> Franklin A Davis brings up certain points that are central to the issue of software engineering. >I'll quote a definition by Richard Fairley from "Software Engineering >Concepts:" > > Software engineering is the technological and managerial > discipline concerned with systematic production and maintenance of > software products that are developed and modified on time and within > cost estimates. Dr. Fairley's excellent credentials aside, why is it that only software engineering includes "on time and within cost estimates" in its definition? Is it because those other engineering disciplines have long since incorporated the way to do this to the extent that it is no longer interesting to speak of it when it happens? I suspect that the above is _not_ the case, and that only more general statements of value were ever included in their definitions. I can think of several products of engineering, whose complexity rivals that of large software systems, which have been economically successful in the commercial markets, where cost overruns would lead to company failure. >...Fortunately the real world is often a good >teacher, so people with CS degrees (or no degree at all) become >proficient engineers with experience. I would take issue with that as a general statement, just as I would the statement that people with no medical degrees can become good physicians by real-world experience. Indeed, many can become good _pracititioners_ of the craft aspects of a trade, but few can assemble enough knowledge by mere practice. One of the difficulties is, that in addition to acquiring the scientific knowledge (which I agree comes from studying Computer Science), one must also acquire the engineering methods of systematically applying the knowledge. I find it difficult to believe that one can acquire enough knowledge of a technical field without the benefit of a formal period of study of the field, such as you suggest, though I suppose it has been done by those rare folks that you and I cannot hope to emulate. The engineering methods are even less likely to learned from inspection. One can more easily copy the products and even some of the methods of an engineer than one can learn the thinking behind them. As a result, those who learn solely by inspection suffer from an inflexibility, as they cannot adapt either the products or the methods to new situations. >...Few CS departments devote more than a semester (if that!) to software >engineering. I'm not sure the undergraduate level is a good time to >concentrate on it -- the Wang Institute required at least 2 years' >experience, and I think that was beneficial. All other engineering disciplines begin at the undergraduate level. I would even make the case that engineering training starts before that, mostly in ways that are not consciously seen as such. >But, as you'll probably >hear over and over if you continue reading this group, anyone entering >the field should be required to have some basic knowledge of the >engineering aspects of software product development. Sadly, as I >interview recent grads from excellent schools, I find this is rarely >the case. I'm not sure what the "engineering aspects of software product development" are. Do you mean engineering design or do you mean a more general knowledge of the _production_ aspects of software, which includes many management issues? Many of the production and management issues are peripheral to generating good design, though I agree that it is helpful for the engineer to know them. In fact, I would claim that the design engineering should drive the production and management, and not the other way around. Rich -- --------------------------------------------------------------------------- Ideas have consequences. RSD@sei.cmu.edu Richard Weaver ---------------------------------------------------------------------------
kathyi@hpmcaa.mcm.hp.com (Kathy Iberle) (05/16/89)
> The engineering methods are even less likely to learned from inspection. > One can more easily copy the products and even some of the methods of an > engineer than one can learn the thinking behind them. As a result, those > who learn solely by inspection suffer from an inflexibility, as they cannot > adapt either the products or the methods to new situations. This assumes that those CS types do not read nor take additional courses (often company-provided rather than at a bona-fide university). Once one has learned to think, one should be able to master any subject. Anyone who's interviewed with Hewlett-Packard should recognize that the aim of the interviews is to determine if the interviewee can think. In the real world, bona-fide software engineers with a degree to prove it are few and far between. The rest of us learn by reading, taking courses, hiring consultants, and by doing. It's not the ideal, but personally I'd rather try to turn a CS into a software engineer than a straight EE into a programmer. Kathy Iberle
UH2@PSUVM.BITNET (Lee Sailer) (05/16/89)
In article <497@dekalb.UUCP>, brian@dekalb.UUCP (Brian Charlton) says: >What are the actual degree requirements of software engineers and also >what are their job definitions ? > One thing to keep in mind when trying to answer this question is that the answer is likely to be very fuzzy, and vary a lot from school to school and company to company. But, in brief: Software engineering is about how to accomplish very large software projects on time and within budget. The skills required include computer programming, algorithm design, and the rest of the usual CS stuff, but also include project management, cost-accounting, organizational theory, and so on. Some schools have started a SE major. It might be in the School of Engineering, Arts and Sciences, Industrial Engineering, Management, Business, or who knows where. SE is an overlap of CS, Engineering, and Management. I guess it evolved as a separate entity for local historical and political reasons. That is, pure CS people think SE is too applied, Engineers don't think software is a thing that must be built, and Mangement doesn't have the technical skills.
UH2@PSUVM.BITNET (Lee Sailer) (05/17/89)
In article <1700002@hpmcaa.mcm.hp.com>, kathyi@hpmcaa.mcm.hp.com (Kathy Iberle) says: > >Being new to this string, I'm a bit puzzled. In my (possibly outdated) >experience, "programmer" usually refers to someone who has 2 years >education (an associate's degree) and whose job is defined as >implementing the detailed design done by a systems analyst. I believed >this to be true in the DP world. In the engineering or technical I think this is the most common usage in the Data Processing industry. However, in many graduate CS departments being a programmer (or hacker, or wizard, or superprogrammer) carries considerably more status. Actually, IBM coined the notion of Super Programmer some years back. The notion was that there are some jobs which might require a team of average software developers, but one really good developer could do it faster alone.
tomg@ann.MN.ORG (Thomas S. Greenwalt) (05/17/89)
In article <3359@ae.sei.cmu.edu> rsd@sei.cmu.edu (Richard S D'Ippolito) writes: > >>...Fortunately the real world is often a good >>teacher, so people with CS degrees (or no degree at all) become >>proficient engineers with experience. > >I would take issue with that as a general statement, just as I would the >statement that people with no medical degrees can become good physicians by >real-world experience. Indeed, many can become good _pracititioners_ of the >craft aspects of a trade, but few can assemble enough knowledge by mere [Several paragraphs of good arguments] I agree that the 'real' world (whatever that is) is a good teacher. I am a case in point. I have no degree in anything and probably never will, however I am also more than a _good practitioner_ of the craft of programming. For many people organized rote learning may make them better programmers or software engineers, however many of the degreed people I have worked with, needed a couple years to learn that theory in the classroom doesn't always translate into a pratical and profitable piece of software. Of course just real world experience isn't enough by itself. I read everything I can get ahold of on OOPS, CASE, Software Engineering, design methodologies, etc, to keep learning on my own. The best thing I can say for a college education is that if I ever get a real job versus being a consultant, it would be easier to get a raise. -- Thomas S. Greenwalt {amdahl|hpda}!bungia!datapg!ann!tomg A.N.N. Systems +1 612-933-6467 tomg@ann.MN.ORG tomg@ann!uunet ----------------------------- Patience is a Vice -----------------------------
djones@megatest.UUCP (Dave Jones) (05/18/89)
From article <3359@ae.sei.cmu.edu>, by rsd@sei.cmu.edu (Richard S D'Ippolito): > In article <40386@think.UUCP> Franklin A Davis brings up certain points that ... > >>...Fortunately the real world is often a good >>teacher, so people with CS degrees (or no degree at all) become >>proficient engineers with experience. > ... > > I find it difficult to believe that one can acquire enough knowledge of a > technical field without the benefit of a formal period of study of the > field, such as you suggest, though I suppose it has been done by those rare > folks that you and I cannot hope to emulate. > Gimme a break. College is not magic and professors are not magicians. Of course it is possible to learn, and learn well, without going to college. I'm not recommending that anyone drop out, mind you. If for no other reason, that degree is a piece of paper that says you can start and finish a long, demanding project. When I was in college, rather recently in geologic time, there was no such thing as a C.S. degree. To get the piece of paper, I got a master's degree in mathematics. I also got a job as a computer operator and programmer, so I would have a machine to play with. And I read everything I could find about computers and programming. At the risk of sounding vain, if I'm ever on Jeopardy, it's, "Alex, I'll take computers for 1000," straight away, even though every hour I've spent in a college C.S. classroom has been on the chalkboard side of the front desk.
cline@sunshine.ece.clarkson.edu (Marshall Cline) (05/25/89)
In article <5004@goofy.megatest.UUCP> djones@megatest.UUCP (Dave Jones) writes: >From article <3359@ae.sei.cmu.edu>, by rsd@sei.cmu.edu (Richard S D'Ippolito): >> In article <40386@think.UUCP> Franklin A Davis brings up certain points that >>>...Fortunately the real world is often a good >>>teacher, so people with CS degrees (or no degree at all) become >>>proficient engineers with experience. >>I find it difficult to believe that one can acquire enough knowledge of a >>technical field without the benefit of a formal period of study of the >>field, such as you suggest, though I suppose it has been done by those rare >>folks that you and I cannot hope to emulate. >Gimme a break. College is not magic and professors are not magicians. AGREE! The idea that coursework is _necessary_ for learning is LUDICROUS! Coursework isn't even _sufficient_ for learning! However: Raw, Hard, Industry Experience seems to show that teaching Computer Scientists how to be an Engineer is harder than teaching an Engineer how to program. The point is not that Engineering _coursework_ is required, as much as the whole _mentality_ that is developed over time when trained (formally or informally) as an Engineer. >... I'm not recommending that anyone drop out, mind you.... AGREE! Neither am I. High Tech job opportunities invariably list Education Requirements. That's the way "The System" evaluates people. Unfortunately we've no way of rewarding _ability_; instead we use _education_. We've all known "well educated idiots," and we've all known people who are excellent at what they do but lack a "piece of paper" (diploma). Unfortunately The System rewards the former but not the latter. I'd like to change the way it works, but I can't -- I have no better way. How else would we evaluate people's abilities? Testing? That's no good, because some people choke under testing situations, yet they might be very skillful and proficient in the day-to-day grind. Marshall -- ________________________________________________________________ Dr. Marshall P. Cline ARPA: cline@sun.soe.clarkson.edu ECE Department UseNet: uunet!sun.soe.clarkson.edu!cline Clarkson University BitNet: BH0W@CLUTX Potsdam, NY 13676 AT&T: (315) 268-6591
cline@sunshine.ece.clarkson.edu (Marshall Cline) (05/25/89)
I just wrote an article with the same "Subject" but forgot to mention a reference to the statement that it's easier to teach Computer Science to Engineers than to teach Software Engineering to Computer Scientists. This idea was elucidated in the most recent CACM in an article about the Software Engineering Institute (at CMU?). Marshall -- ________________________________________________________________ Dr. Marshall P. Cline ARPA: cline@sun.soe.clarkson.edu ECE Department UseNet: uunet!sun.soe.clarkson.edu!cline Clarkson University BitNet: BH0W@CLUTX Potsdam, NY 13676 AT&T: (315) 268-6591
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,) (05/25/89)
From article <CLINE.89May24173656@sunshine.ece.clarkson.edu>, by cline@sunshine.ece.clarkson.edu (Marshall Cline): > I just wrote an article with the same "Subject" but forgot to mention > a reference to the statement that it's easier to teach Computer Science > to Engineers than to teach Software Engineering to Computer Scientists. > This idea was elucidated in the most recent CACM in an article about > the Software Engineering Institute (at CMU?). Actually, that article states (CACM, May '89, page 596): "[...] many software development practitioners believe it is easier to teach programming to an engineer than it is to teach engineering to a programmer. The SEI Education Program has been repeatedly asked for recommended undergraduate software engineering degree requirements. We resist by arguing that the best education remains a solid major in computer science followed by graduate professional education such as an MSE (Master's in Software Engineering) program." Here at Clemson (an affiliate of the SEI), we require software engineering coursework of all computer science undergraduates; that requirement will soon expand to include two courses. In the same article (page 602): "In terms of numbers of students affected, the SEI Education Program can make its greatest impact by influencing undergraduate computer science curricula." Not all universities require software engineering of BSCS candidates, but the winds of change are blowing. Until then, industry can accelerate the trend by concentrating their undergraduate recruiting efforts on the universities which deliver "a solid major in computer science" which includes significant software engineering coursework, and by doing their graduate recruiting at universities whose computer science programs allow for software engineering specialization, until graduates begin to emerge from newly established MSE programs. Bill Wolfe, wtwolfe@hubcap.clemson.edu
rgo@berlioz (Ronald Olshausen) (05/26/89)
In article <5596@hubcap.clemson.edu> billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu writes: >From article <CLINE.89May24173656@sunshine.ece.clarkson.edu>, by cline@sunshine.ece.clarkson.edu (Marshall Cline): CACM Article excerpt: > > "[...] many software development practitioners believe it is > easier to teach programming to an engineer than it is to teach > engineering to a programmer. The SEI Education Program has > been repeatedly asked for recommended undergraduate software > engineering degree requirements. We resist by arguing that > the best education remains a solid major in computer science > followed by graduate professional education such as an MSE > (Master's in Software Engineering) program." > I'd have to agree with the CACM article. Over the course of undergraduate and graduate study of Computer Science, one can master the basics of "programming in the small", as well as develop certain problem-solving skills. I have my doubts, though, as to whether academia can cultivate a commitment to the software life cycle, as can industrial experience. I was TA for a Senior-level software engineering course while I was in grad school. We tried to have the students tackle large software systems, over the course of a full academic year, starting with the requirements analysis and ending up with a deliverable product. We only encountered limited success with this approach. Whatever one chooses for a working definition of software engineering, we can probably agree that it is a discipline in its infancy. As a research discipline, software engineering is to me rather nebulous. There are some researchers who are convinced that the high cost of software systems development can best be alleviated by throwing even more software at the problem. Others attempt to formalize, by various methods, the specification, design, and test procedure for aggregate software systems. There seems to be a great deal of fragmentation, even within the research community, as to what exactly software engineering comprises. My own professional software engineering experience comes in the area of real-time, embedded systems. For that, I am convinced that the key to on-time, under-budget delivery is a thorough requirements analysis. For this, the bottom line is that this phase of the project needs to be staffed with individuals possessing both strong analytical skills and communication skills, and a commitment to the "big picture" of the software life cycle. "Computer Scientists", as opposed to "systems engineers", may not necessarily be very well suited to this task. Ron Olshausen NSC-Santa Clara rgo@logic.nsc.com
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,) (05/26/89)
From article <263@blenheim.nsc.com>, by rgo@berlioz (Ronald Olshausen): >> the best education remains a solid major in computer science >> followed by graduate professional education such as an MSE >> (Master's in Software Engineering) program." > > I'd have to agree with the CACM article. Over the course of > undergraduate and graduate study of Computer Science, one can > master the basics of "programming in the small", as well as > develop certain problem-solving skills. I have my doubts, though, > as to whether academia can cultivate a commitment to the software > life cycle, as can industrial experience. Which is why "cooperative education", whereby students do real work for real companies in their area of major emphasis over the summer, is becoming increasingly popular; it provides a sense of practical value which reinforces the value and motivates the understanding of the software engineering education they're getting in the classroom. % the bottom line is that [...] the project needs to be staffed with % individuals possessing both strong analytical skills and communication % skills, and a commitment to the "big picture" of the software life cycle. % "Computer Scientists", as opposed to "systems engineers", % may not necessarily be very well suited to this task. Perhaps that should read: "Computer scientists without any software engineering education and without any practical experience may not necessarily be very well suited to this task"; the validity of this observation is precisely what is motivating the increasing emphasis on software engineering and cooperative education. Bill Wolfe, wtwolfe@hubcap.clemson.edu
chrisp@regenmeister.uucp (Chris Prael) (05/26/89)
From article <5596@hubcap.clemson.edu>, by billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe,2847,): > From article <CLINE.89May24173656@sunshine.ece.clarkson.edu>, by cline@sunshine.ece.clarkson.edu (Marshall Cline): >In article <5004@goofy.megatest.UUCP> djones@megatest.UUCP (Dave Jones) writes: >>From article <3359@ae.sei.cmu.edu>, by rsd@sei.cmu.edu (Richard S D'Ippolito): >>> In article <40386@think.UUCP> Franklin A Davis brings up certain points that Gentlemen, I am going to throw stones all over the placew here. I hope I don't offend too many of you. >>>>...Fortunately the real world is often a good >>>>teacher, so people with CS degrees (or no degree at all) become >>>>proficient engineers with experience. In my observation, most people with CS degrees have come out of school thinking like a technician. While they may eventually may become very experienced technicians, they rarely make the transition to engineer. >>>I find it difficult to believe that one can acquire enough knowledge of a >>>technical field without the benefit of a formal period of study of the This assertion presupposes that there IS a formal course of study in the engineering of software. It appears to me that there is not. Most of the people who really become software engineers, do so through the apprenticeship route (informal). >>Gimme a break. College is not magic and professors are not magicians. Nor are most of the people in industry. >AGREE! The idea that coursework is _necessary_ for learning is LUDICROUS! >Coursework isn't even _sufficient_ for learning! Bravo! Well said! >However: Raw, Hard, Industry Experience seems to show that teaching Computer >Scientists how to be an Engineer is harder than teaching an Engineer how to >program. The point is not that Engineering _coursework_ is required, as much >as the whole _mentality_ that is developed over time when trained (formally >or informally) as an Engineer. Again, well said. My experience has been that it is easier to train a person with a degree is math or english with a couple of course hours in programming to be an engineer than it is to train a person with a CS degree. The latter has generally required untraining first. There have been exceptions: a young woman with a MSCS who was a real artist in C. >High Tech job opportunities invariably list Education Requirements. Most managers (even with "programming" experience) are so short in knowlege that they are forced to rely on credentials. > Actually, that article states (CACM, May '89, page 596): > > "[...] many software development practitioners believe it is > easier to teach programming to an engineer than it is to teach > engineering to a programmer. That is because engineering is a disciplined sequence of behaviors that result in a product. The product may be inspired or pedestrian, but it generally performs the intended function safely and effectively. Note that all forms of engineering deal in two processes: the process of building and the process of function. For example, the purpose of a gasoline engine is the process of converting energy stored in the gas to rotational energy at the fly wheel. Programming is simply building abstract artifacts from an abstract class of nuts and bolts using abstract wrenches and screwdrivers. > The SEI Education Program has > been repeatedly asked for recommended undergraduate software > engineering degree requirements. We resist by arguing that > the best education remains a solid major in computer science I question the solidity of a major in CS. > followed by graduate professional education such as an MSE > (Master's in Software Engineering) program." I also question the assertion that a graduate education is professional in nature. These kids are mechanics when they get to us, not engineers. > Not all universities require software engineering of BSCS candidates, > but the winds of change are blowing. Until then, industry can > accelerate the trend by concentrating their undergraduate recruiting > efforts on the universities which deliver "a solid major in computer > science" which includes significant software engineering coursework, Industry is also filled with mechanics. They don't genreally know what to insist on! The final point. How did I get to be such a know-it-all? I was trained by a master twenty odd years ago. Who trained him, I really don't know. If you want to learn how to train software engineers, go get Warner King out of IBM and have him teach you how he does it. Chris Prael
rsd@sei.cmu.edu (Richard S D'Ippolito) (06/03/89)
In article <CLINE.89May24173256@sunshine.ece.clarkson.edu> Marshall Cline writes: >In article <5004@goofy.megatest.UUCP> Dave Jones writes: >>From article <3359@ae.sei.cmu.edu>, by Richard S D'Ippolito: >>> In article <40386@think.UUCP> Franklin A Davis brings up certain points >>>that >>>>...Fortunately the real world is often a good >>>>teacher, so people with CS degrees (or no degree at all) become >>>>proficient engineers with experience. > >>>I find it difficult to believe that one can acquire enough knowledge of a >>>technical field without the benefit of a formal period of study of the >>>field, such as you suggest, though I suppose it has been done by those rare >>>folks that you and I cannot hope to emulate. > >>Gimme a break. College is not magic and professors are not magicians. > >AGREE! The idea that coursework is _necessary_ for learning is LUDICROUS! >Coursework isn't even _sufficient_ for learning! This is getting a bit far afield from the original context, isn't it? Why is only college instruction considered formal training? What about previous schooling and apprenticeships? I will stand by my original statement, even in the isolation that it's presented above. >However: Raw, Hard, Industry Experience seems to show that teaching Computer >Scientists how to be an Engineer is harder than teaching an Engineer how to >program. The point is not that Engineering _coursework_ is required, as much >as the whole _mentality_ that is developed over time when trained (formally >or informally) as an Engineer. I suspect that you are not using formal in the sense that I was, that is, within a carefully defined educational framework, as opposed to simply purchased schooling. >High Tech job opportunities invariably list Education Requirements. >That's the way "The System" evaluates people. >Unfortunately we've no way of rewarding _ability_; instead we use _education_. Nonsense! The education completed is simply used to determine initial compensation; companies which fail to base continuing compensation on performance pay the penalties in many ways. Universities and similar organizations can get away with this almost indefinitely because their reputations are slow to change and the customers (read students) have no direct, immediate economic power over the suppliers (read individual professors). Additionally, they have no immediate way of determining the value received, unlike employers, who can obtain current feedback of job performance. >I'd like to change the way it works, but I can't -- I have no better way. >How else would we evaluate people's abilities? You are again confusing potential with performance. We could go back to the old educational system where the students paid for each class at the end of it and refused to come back to the next one if unsatisfied! Restaurants and other service providers survive this every day. Immediate and direct economic feedback does the trick every time! Rich -- --------------------------------------------------------------------------- Ideas have consequences. RSD@sei.cmu.edu Richard Weaver ---------------------------------------------------------------------------
merriman@ccavax.camb.com (George Merriman -- CCA/NY) (06/11/89)
An interesting article on this general subject appears in _Open Channel_ department of the May, 1989 issue of the IEEE _Computer_ magazine. It is by Robert L. Baber, who describes himself as a practicing "software developer of long standing" and as an "engineer (electrical) by education." He argues that the term "Software Engineering", as it is commonly used today, describes what is really a management activity rather than an engineering activity and suggests that we start using another term so as to not confuse it with what software engineering ought really to be. He suggests the term "Integrated Software Life Cycle Management (ISLCM)" as suitably impressive to satisfy our desire for pomposity. He describes what he terms engineering as: "The application of scientific knowledge and principles to the task of designing and constructing a device, machine, or system of economic value . . . Especially noteworthy is that the engineer employs a scientific, theoretical foundation to verify -- by systematic calculation and before the object is actually built -- that a proposed design will satisfy the specifications." Though I am not an engineer, I've had occasion to work in several "engineering departments", so to speak, and find this article fits with my experience. I think it is important to keep in mind that someone employed as an engineer is often called upon to be a manager and designer as well as an engineer and the "get the project out on schedule and under budget" aspect of the job is clearly part of the management side of the job. For example, in construction work project management is often handled by non-engineers (the contractor's staff) and while an engineer is called upon to verify that a design (by an architect) will not fall down and meets code, he may never even visit the site or see a schedule. So if "Software Engineering" isn't really software engineering, what is? I have yet to see a software shop where anything comparable to the "systematic calculation" mentioned in the article goes on (if you don't believe me, go watch a consulting structural engineer at work), and I think it will be a while before a true software engineering discipline is practiced on a wide scale in this industry, at least my part of it. When it happens I think it will be based on the sort of rigorous proof-of-correctness and algorithm performance analysis taught and developed in the more mathematically inclined CS departments. The trouble is, I think the theory needs to be distilled down to something we ordinary mortals can handle before it will be usefull. We need our own Oliver Heavyside.