Path: utzoo!utgpu!watserv1!watmath!att!bellcore!dduck!duncan From: duncan@dduck.ctt.bellcore.com (Scott Duncan) Newsgroups: comp.software-eng Subject: Re: some advice to a software engineer Message-ID: <27100@bellcore.bellcore.com> Date: 21 Sep 90 18:00:00 GMT References: <126@ctbilbo.UUCP> Sender: news@bellcore.bellcore.com Reply-To: duncan@ctt.bellcore.com (Scott Duncan) Organization: Computer Technology Transfer Division Lines: 138 In article <126@ctbilbo.UUCP> ray@ctbilbo.UUCP (Ray Ward) writes: > >IMHO, this comes from two causes. First, the structure of the organization >is incompatible with serious intellectual work, which is what most software >development is ( at least most systems software -- sometimes I have my >doubts about applications software ). Where would you place word processors, spreadsheets, CASE tools, etc.: systems software or applications software? What about libraries of software functions? If you have to be a "programmer" to directly use the product, does that make it systems software? It's just that I've seen some mighty "intellectual" work done in software for applications database design, transaction processing, etc. > The nature of the task would seem >to indicate an organization along the lines of a law office, for example. >There should be senior partners, partners, clerks, etc., based on the >skills, product revenues, client base, etc., of the individual software >engineers. Some of what you say later does not make this distinction and seems to me to lump all people in software into one category. Would you care to say what tasks/job descriptions in typical development would be filled by "senior part- ners" vs "partners" vs "clerks"? Are "clerks" those who code? Do "senior partners" do architecture? Or do "sernior partners" do soup-to-nuts for the hard software projects and "clerks" get the easy projects? > This organization has evolved to meet the needs of applying >general laws and regulations ( read: standards and accepted practices ) >to specific requirements of individual cases ( read: individual >software development efforts ). It also handles the needs of developing >the younger attorneys through a sort of apprenticeship. > >In this organization, the intellectual prowess of the individual is >respected: cheap lawyers can be very expensive and good -- high-priced >-- lawyers can be very profitable. A cheap programmer is about as >useful as a cheap lawyer. I suggest that a law office (like a medical office) is made up of independent professionals who, for business reasons, choose to band together. A lawyer or a doctor can set up individual private practice as well. And they can also choose to associate themselves with a University (teaching) or, in the case of doctors, a large hospital. I think when one tries to apply the analogy to software, it is not clear that each individual programmer would have similar options given the nature of large software systems. But more on that below... > Which brings me to the second cause. >Software engineers are told what to do because software engineers are >not respected as professionals. We have not organized as professionals, >we have no professional certification requirements or minimum standards, Aren't you saying, therefore, that we aren't professionals then? Why expect to be treated like one when your statements make it clear that we do not share many attributes of professionals? The mere use of the word "engineer" in rela- tion to software is a question that has been debated often since most people involved in software do not have engineering certification. >we do not act like professionals ( What self-respecting doctor would >meekly accept being told by a patient, "You will perform this surgery >using this technique because I'm paying you"? Clear? ). We are >treated like servants because we are employees or act like employees >even if we are "consultants" -- with some exceptions, of course. I think this reinforces the point that we deserve what we get, at least by the standards you suggest. I do not argue that what you say about organization and certification is true, but the lack of respect you point out should not be surprising given these things, then. >We are unable to prevail in controversies over quality because we >are economically vulnerable, as well. Again, as part of the organization, >we have but a single source of income. Doctors/lawyers have many >patients/clients and are financially independent of any single one >of them. "Do as I say or I'll cut off all your income," is a potent >threat. If they are their client individually, but if you are a law clerk or internm, you are certainly economically (and otherwise) vulnerable to senior partners and heads of surgery (who really have the clients). Again, if you are a programmer doing the coding for a larger effort rather than the only person on a soup-to-nuts project, you have to expect to have some organizational risks. This is part of the point I mention above about the breakdown of the analogy. I think your points about why we "get no respect" can be valid. The analogy to independent individual professionals does not seem to hold. What about compar- ing us to engineers? Some architects may function independently like a doctor or lawyer, but most engineers have to work for some organization given the size of the projects available. When you get to putting pieces of things together, you no longer have certified professionals doing the actual assembly of the structure, vehicle, whatever. You have union labor whose structure is more like what we see in software from the perspective of craftsman, journeyman, and apprentice. No certification here, just union dues and years of seniority. And these folks are often told what to do. (This is NOT to imply whether such people do or do not perform effectively, etc. I am talking about organization and certification. It is clear nobody suggests that carpenters and bricklayers get university and pro- fessional society certification. They may have trade standards and that may apply as a better model of organization for large software projects despite the intellectual, rather than manufacturing and construction, level of the work. >Granted, there are disadvantages to "certification" and the requirements >of "professionalizing" our esoteric art and craft. But I would assert >that they are outweighed by the advantages. Indeed, as society becomes >increasingly complex and controlled by computers, there will be ever >more incidents of software failures; this will cause increasing pressure >for regulation and certification. One of the negative aspects of regulation and certification is what it does to make the profession more self-serving in some cases. Since you used the legal profession as an example, let me point out that I think there is a great deal involved in the law that exists for the lawyers and judges and not for any clients. It is by no means clear to me that the law has to be so esoteric that we are required (often by other law) to get lawyers to tell us what other law- yers have done because the lawyers (as legislators) have fashioned laws that say you must do so. If you don't get certified, you don't practice, but much of what you describe has to do with an individual client and their attorney (or doctor). Software (custom, commercial variety rather than off-the-shelf) of the size and complex- ity to which you refer is generally built by organizations, not individual practitioners. Tell me what lawyers and doctors band together in such a volume to try a single case or perform one operation? But this is what it will take to build one software system of decent complexity. > We may in the end have to organize >ourselves simply to maintain some control of the regulation, in self- >defense. Possibly true, but I do not think the individual professional example is the one that relates to software. >Ray Ward Email: uunet!ctbilbo!ray >Voice: (214) 991-8338x226, (800) 331-7032 Fax : (214) 991-8968 Speaking only for myself, of course, I am... Scott P. Duncan (duncan@ctt.bellcore.com OR ...!bellcore!ctt!duncan) (Bellcore, 444 Hoes Lane RRC 1H-210, Piscataway, NJ 08854) (908-699-3910 (w) 609-737-2945 (h))