Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I submit that the mistake which is most commonly made is to say, “the job of a software developer is to write code.”   In the last few years, the word, engineer, has quietly dropped out of this job description ...

And let me be quite blunt here:   if the word, “engineer,” is in the job-description, bean counters might feel a little ill-at-ease at “outsourcing” the work to people whose primary calling-card, to the bean-counter, is that “they’re cheap.”   The word, “engineer,” is usually preceded by words such as “licensed” and “professional.”   Even the most insipid bean-counter probably would not advocate hiring someone “who works for cheap” to build a bridge or a skyscraper.   But they would hire abjectly-unqualified people to work on critical software systems, whose consequences of failure (or even of error) might be much higher than that of an inadequate physical structure or device.

There is no such thing as “a software developer.”   The writing of computer software is always an engineering undertaking.   Even though the finished product is intangible, the effects of it are not; and, the risks of it are not.   The mere skill of “writing code” is no more a description of the task than “proficiency with a hammer” is to a professional cabinetmaker.   Yet, whereas even the simple re-paving of a surface street (or the building of a cabinet) would be routinely undertaken with scrupulous discipline, critical software projects are often undertaken by workers who are barely trained ... and with total disregard to both engineering and project-management practice.

And let me be very clear about one thing:   I have had the privilege of working with certain third-world software engineers who were, and who are, unquestionably brilliant.   I do not believe that “where you were born” is an indicator of “how good or how prepared you are.”   (The thought is obviously absurd.)   Nevertheless, people who aren’t qualified, are being hired, under conditions which clearly affirm that the people who are making those hiring decisions “know not what they do.”   People are being drawn halfway around the planet only to have their hopes (and skills) dashed on the rocks.   I do not like to see good people being thrown under a bus.   And, quite separately, I don’t like seeing any software project that has doomed itself to failure for lack of discipline, knowledge, or design.

Sometimes, I think that, as an industry, we have done this to ourselves.   The electrical and mechanical engineering disciplines ... hell, the (unionized) electrical and mechanical trades ... have done a good job of educating the public, and the bean-counters, that the things which they do are not an idle undertaking.   But, in the software industry, I don’t think we’ve done ourselves justice.   And there is a very long string of dissatisfied customers to show for this.


In reply to Re: Common Software Development Mistakes by sundialsvc4
in thread Common Software Development Mistakes by eyepopslikeamosquito

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2024-03-29 14:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found