Software engineers, real and otherwise

Hi.

Rather than go off-topic in http://www.unix.com/unix-dummies-questions-answers/45122-comparison-2-files-unix-2.html\#post302145451I I started this thread.

In addition to continuing the discussion here, there are related threads on this topic at: How do you "get into" the programming mentality? - LinuxQuestions.org and Soapbox: The "Artisan Mentality" - LinuxQuestions.org

Best wishes ... cheers, drl

Hi.

I think one part of this is the marketplace. Employers seek to lower costs. One large cost is salaries. If you can hire people who can use GUI tools to produce applications that solve problems and do it in a short time, then you might decrease costs.

Indeed, hardware resources are extraordinarily low-cost these days, so the idea of optimized user-applications is not as important as producing tools to create quickly the end-user applications.

Is this good for the long-run? I think the experiment is not yet finished ... cheers, drl

I think the character and virtues of a person also play some role in this. For example, my brother, who is a Gemini, is sometimes faster and creative than me. This results in a personality that is more suitable towards development works. I tend to be highly organized, but more of a jack-of-all type. I have dipped my fingers in many areas, rather than sticking to one.

One of my friends in college used to take 10% of the time I took to make the same programs, but he was a lot messier than me.

I have observed that such traits of a person appear in the work they do, and tends to have some impact on it. Of course, by certain effort, one can acquire the required qualities and give up the unwanted ones. Everybody has free will.

postscript: I am a believer that programming is an art, rather than science. Software Engineering is not merely programming, though.

Nobody has made the Mona Lisa run a power station.

Let me tell you a story to emphasize what i have written:

For 2 years i worked in a data-warehouse project for a large bank. I was the systems administrator for a software development platform for ~120 developers: 1 IBM p595 in several LPARs, a DS8000 as storage subsystem and several small systems. Several DB/2 UDB instances. The "software developers" where of course not programming - they used a Meta-Data-Analysis-Tool to feed some other "Object oriented Meta-SQL generator" (or something such, may i have left out some buzzwords here) to finally generate SQL code. Most of the times the were in meetings discussing how they would click on icons if they were ever to find time between the strategy talks, the review meetings and the customer fulfilment presentations.

One day i was asked to do a performance review for one of the database machines (LPAR, 22GB RAM, 5 physical POWER5+-CPUs). It turned out someone had effectively managed to create a "left outer join" of almost the whole database onto itself, fed that into a shell script line for line, manipulated these lines there with some awk and fed that back into the database.

Clever solution, yes? Why use outdated non-OO, non-CRE, no-nothing SQL-statements like "select for update" when a streamlined process of clicking on a icon created that wonderful masterpiece of generator-output? It turned out the generator "thought" it was a really clever solution and on the test dataset with its 10 records it "worked well" - it just had to be cancelled after 36 hours, because shell script loops manipulating 160 millions of records tend to be somewhat slow....

Another day: "developer" (no, not one of the real ones) walks up to me and asks where the command lines size limit is defined in AIX. I point him to /usr/sys/include/limits.h and tell him that it is 4096 characters.

"Developer": "Can you make that bigger?"
Me: "What for?"
"Developer": "my SQL generator has created this statement, but it is 12k characters long and i always get an input line too long' error. You have to optimize the OS to.."
Me: "no."
"Developer": "why not?"
Me: "Because I am not here to make arbitrarily bad design possible."

The DBA and me then worked together and created an analogous code in old-fashioned, very non-streamlined SQL-code in about 300 characters. True, we did that using incomprehensible low-level techniques (like an "editor") instead of modern and reliable methods ("click on an icon"), but somehow we managed to create some readable statement instead of the blather the generator had come up with and our code even ran in about 5% of the time.

bakunin