Maker Pro
Maker Pro

So what is the difference between a software engineer and computerscientist?

E

Ed Prochak

On 10 Mar 2007 18:32:23 -0800, "Ed Prochak" <[email protected]>
wrote:
[]
It is an issue of teahing students how to THINK. Maybe that's why some
of the better ones come from non-programming backgrounds. (I may be
biased here. My undergraduate degree was in Physics. My Masters was in
Electrical Engineering but it was a software concentration option.)
Ed Prochak

Well, something is sure broken. Big, gigabuck-scale software projects
are almost always late and over budget, and some fraction, a third
maybe, are absolute failures. Eveything more complex than a toaster
oven is usually littered with bugs, sometimes thousands of bugs.
Performance like that deserves to be called neither Science nor
Engineering.

Imagine if a third of our bridges, buildings, and airplanes fell down.

What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

That is not a Computer science problem. That is a management problem.
When the best programmers never studied programming, something is
wrong with CS/CE education. Reminds me of the experiment where they
found that graduates of the Cooks and Bakers school were better aerial
gunners than graduates of the Aerial Gunnery school.

John

I said SOME of the better ones. I guess I have been lucky to work with
a lot of good developers. Some had CS degrees, some EE's, some others
(including Biology and philosophy). The problem may not be due to the
developers. Management is the place to start looking! Haven't you
worked for a pointy haired manager sometime in your experience?
Ed
 
J

John Larkin

On 10 Mar 2007 18:32:23 -0800, "Ed Prochak" <[email protected]>
wrote:
[]
It is an issue of teahing students how to THINK. Maybe that's why some
of the better ones come from non-programming backgrounds. (I may be
biased here. My undergraduate degree was in Physics. My Masters was in
Electrical Engineering but it was a software concentration option.)
Ed Prochak

Well, something is sure broken. Big, gigabuck-scale software projects
are almost always late and over budget, and some fraction, a third
maybe, are absolute failures. Eveything more complex than a toaster
oven is usually littered with bugs, sometimes thousands of bugs.
Performance like that deserves to be called neither Science nor
Engineering.

Imagine if a third of our bridges, buildings, and airplanes fell down.

What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

That is not a Computer science problem. That is a management problem.

So who is teaching Programming Management?

John
 
C

Colin Paul Gloster

John Larkin had written:
"[..]

What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

[..]"

Ed Prochak has responded:

"[..]

That is not a Computer science problem. That is a management problem.
[..]"



I am not convinced that it is fair to blame those involved in
management: even if they intend well and are good, if they are not the
implementers and if they are not competent to be the implementers,
they might not be able to manage perfectly.



In timestamped Sun, 11
Mar 2007 21:16:51 -0800, John Larkin
<[email protected]> replied to Ed Prochak's
:"So who is teaching Programming Management?"


I am not certain, but I suspect that the discipline called Information
Systems is more managerial than other degrees related to
computers. However, I was acquainted with someone who deliberately
selected courses with as little programming content as possible and
who as a result of that, graduated with a first class honors degree in
Information Systems.

Regards,
Colin Paul Gloster
 
C

CBFalconer

John said:
.... snip ...

Then we need a new level, the technical programming manager. This
person would have to be a good programmer, but his main function
would be to make sure modules are correct and that their interfaces
are fully and accurately documented. And to make sure modules call
each other correctly. They would have to actually *read* the code
their people produce, and enforce standards. Hell, most code is
never read by anybody, including the author.

Generally known as a 'lead programmer'. Programming team size
should never exceed 5, after which d(productivity)/dN turns
negative.
 
J

Joerg

John said:
I did a multiplexed fire alarm/hvac control remote with a 6802 uP. It
did software single-slope a/d conversion (4 channels at a time),
remote contact supervision, relay drivers, stuff like that. Binary
comm protocol with CRC. Software UART in the receive direction,
software UART and FSK generation for transmit. Ran with 128 bytes of
ram and 1024 bytes of eprom. There are still jillions of them running
in buildings in Manhattan.

Ain't that nice to occasionally see a gadget and knowing "Ah, I designed
this". Sometimes happens to me when I visit at a hospital. Those
machines have an amazing service life. The front bezel paint might be
completely gone but they still use the thing.
 
J

John Larkin

Ain't that nice to occasionally see a gadget and knowing "Ah, I designed
this". Sometimes happens to me when I visit at a hospital. Those
machines have an amazing service life. The front bezel paint might be
completely gone but they still use the thing.

And then it shows up on ebay for 0.5% of what you sold it for.

John
 
J

John Larkin

John Larkin had written:
"[..]

What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

[..]"

Ed Prochak has responded:

"[..]

That is not a Computer science problem. That is a management problem.
[..]"



I am not convinced that it is fair to blame those involved in
management: even if they intend well and are good, if they are not the
implementers and if they are not competent to be the implementers,
they might not be able to manage perfectly.

Then we need a new level, the technical programming manager. This
person would have to be a good programmer, but his main function would
be to make sure modules are correct and that their interfaces are
fully and accurately documented. And to make sure modules call each
other correctly. They would have to actually *read* the code their
people produce, and enforce standards. Hell, most code is never read
by anybody, including the author.

Programmers wouldn't generally like this. Herding cats and such.

John
 
L

Lanarcam

John Larkin a écrit :
On 12 Mar 2007 10:17:03 GMT, Colin Paul Gloster
That is not a Computer science problem. That is a management problem.
[..]"



I am not convinced that it is fair to blame those involved in
management: even if they intend well and are good, if they are not the
implementers and if they are not competent to be the implementers,
they might not be able to manage perfectly.

Then we need a new level, the technical programming manager. This
person would have to be a good programmer, but his main function would
be to make sure modules are correct and that their interfaces are
fully and accurately documented. And to make sure modules call each
other correctly. They would have to actually *read* the code their
people produce, and enforce standards. Hell, most code is never read
by anybody, including the author.

How could you describe so exactly what I did for years?

You end up dealing with the most difficult bugs that
nobody wants to be bothered about. Once I found a defect
in a module and since it involved interface and not
internal behaviour, the programmer said it was
a realtime bug meaning that was not his business.
Programmers wouldn't generally like this.

They only liked the part where I found the bugs and corrected them
without telling anybody.
Herding cats and such.

Cats are ok.
 
M

Mark Borgerson

Appropos to this topic, an article just appeared in the
online version of EETimes bemoaning the lack of PhD computer
scientists to attack the problems of effectively using multicore
computers. The title of the article: "Where are the programmers"


http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=197801653

Part of the problem with the article is that it is really about
the problems of finding PhD-level people for theoretical CS
research. It isn't really about the difficulties of finding
undergrads for the CS departments or programmers for the forestry or
chemistry departments, or for businesses small and large. The problem
with CS is that the jobs for BSc grads in CS are just not very
attractive to students. Perhaps those kids have been reading Dilbert
and aren't thrilled with the idea of a cubicle and a PHB.

Mark Borgerson
 
E

Ed Prochak

John Larkin had written:
"[..]
What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

Ed Prochak has responded:

That is not a Computer science problem. That is a management problem.
[..]"
I am not convinced that it is fair to blame those involved in
management: even if they intend well and are good, if they are not the
implementers and if they are not competent to be the implementers,
they might not be able to manage perfectly.

Then we need a new level, the technical programming manager. This
person would have to be a good programmer, but his main function would
be to make sure modules are correct and that their interfaces are
fully and accurately documented. And to make sure modules call each
other correctly. They would have to actually *read* the code their
people produce, and enforce standards. Hell, most code is never read
by anybody, including the author.

Programmers wouldn't generally like this. Herding cats and such.

John


I have worked for such good managers. One did not read the code
(though he could), but made sure the development process was followed.
Beyond that he made a point of saying his job was to remove obstacles
from the way of developers. This included finding out what the
requirements really were (not just the market-speak features list),
getting the right people doing the right assignments, getting training
for people as needed, and a lot more. Of course that was in an
engineering company where we build products, not just business
applications.

If you try to herd cats the same way you do cattle, you are doomed to
fail. That doesn't prove cats cannot be herded.
If you try to manage programmers the same way you do assembly line
workers, ...

Ed
 
J

Joerg

John said:
And then it shows up on ebay for 0.5% of what you sold it for.

Not those, at least most of them don't. Often you need to buy sterile
disposables such as single-use catheters and that will become a minor
inconvenience when you aren't registered.
 
J

John Larkin

Generally known as a 'lead programmer'. Programming team size
should never exceed 5, after which d(productivity)/dN turns
negative.

Management could be hierarchical, with a fanout of 5. That's the way
big organizations are usually structured.

You'd think with this much at stake, some management/business/CS
schools would address this issue.


John
 
C

CBFalconer

Ed said:
.... snip ...

If you try to herd cats the same way you do cattle, you are doomed
to fail. That doesn't prove cats cannot be herded. If you try to
manage programmers the same way you do assembly line workers, ...

Well, you can remove one major difference by selecting cats to herd
of the same general size as cattle. I expect other problems will
then arise :)

There must be a moral here.
 
J

joseph2k

John said:
message [...]
I had lunch last week with the Dean of Science and Engineering at a
major US university. He said that he agrees with a number of fellow
deans at other universities: Computer Science is broken.

He talked me into endowing a modest scholarship; it *was* a pretty
good lunch. I want to somehow specify that it be granted to kids who
tinker with circuits, or at least program in assembly.

Good book: "Dreaming in Code"

John

Nice one!.
I'm feeling analog(ue) may now be a lost cause but that 'assembler only'
idea would seem key to rationalis(z)ing the whole CS paradigm.
john


I'm thinking that programming should not be taught at all as a
distinct major. Everybody should study something real, and learn to
program on the side, in the way that engineers used to take a couple
of drafting courses.

Goodness knows that programming majors really can't program.

John

I have only met one or two, Physicists, EE's, and Chemists that can program
are so common that you can hardly swing a cat without hitting one. I have
even met a draftsman that was a good programmer.
 
V

Vladimir Vassilevsky

Joerg wrote:


Isn't it ridiculous to think about the old and trivial crap like that as
of great achievements or a pieces of art?

When I see a piece of equipment that I designed long ago, I feel a shame
for the crooked solutions and a pity for the amount of time that it took
me to make it to work.

VLV
 
J

Joerg

Vladimir said:
Joerg wrote:




Isn't it ridiculous to think about the old and trivial crap like that as
of great achievements or a pieces of art?

Nope. For some of them there has not been a single competitor in a
decade, despite numerous attempts to give us a good market whooping.

When I see a piece of equipment that I designed long ago, I feel a shame
for the crooked solutions and a pity for the amount of time that it took
me to make it to work.

Sure, hindsight is easy. But what counts is whether it worked for
mankind. Or in the case of medical equipment how many lives it has
ultimately helped saving.
 
E

Ed Prochak

John Larkin had written:
"[..]

What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

[..]"

Ed Prochak has responded:

"[..]

That is not a Computer science problem. That is a management problem.
[..]"

I am not convinced that it is fair to blame those involved in
management: even if they intend well and are good, if they are not the
implementers and if they are not competent to be the implementers,
they might not be able to manage perfectly.

Are you an Ayn Rand fan? Do you think that bosses must (and do) have
the skills of all their employees? No really, do you think a manager
that manages programmers MUST be a programmer first? It might help but
it is analogous to saying that to manage a truck stop you first must
be a truck mechanic. Sorry but I do not buy it as an absolute required
prerequisite for being a manager in IT. It might help but I'd rather
have a manager that understands his limits and no programming
experience than one that has programm experience but little
organizational skills.

I'm sure we'd both prefer to work for one that has both solid
progamming skills and good organizational skills. But we know there
are few of those.
InSun, 11
Mar 2007 21:16:51 -0800, John Larkin
<[email protected]> replied to Ed Prochak's:"So who is teaching Programming Management?"

I am not certain, but I suspect that the discipline called Information
Systems is more managerial than other degrees related to
computers. However, I was acquainted with someone who deliberately
selected courses with as little programming content as possible and
who as a result of that, graduated with a first class honors degree in
Information Systems.

Regards,
Colin Paul Gloster

So on the basis of one anecdotal data point you condemn an entire
degree program? Or just that person?


To get back to the nominal topic of this thread:

Computer Science is not directly about programming. In my experience
CS should include programming AND hardware (small, as in cpu
architecture and large as in systems architecture) and networking/
communications, theoritical mathematics (boolean logic, relational
algebra, information theory). It has more of a theoretical leaning (it
is Computer SCIENCE after all). Many of teh assignments would be
individual not team projects. A noticable percentage of assignments
would produce research papers rather than working code. I would not
expect to see a management class in a CS program.

Software Engineering also deals with about the same areas, but the
emphasis is more practical in putting the CS theory into practice. The
Engineering part comes from balancing the need to find the optimal
solution and meeting the requirements. Mathematical courses might
cover things like Numeric analysis or control theory. Architecture
courses would lean more toward issues of how to select the right CPU
to meet the performance requirements. More of the assignments would be
team projects than in a CS degree. More of the assignments would be to
produce working systems rather than just theoritical models. I would
not be surprised to see a management related course in a SE degree
program. (I would not expect it to be a core course for the degree.)
If a school offers both SE and EE, I would expect a close relationship
between the two departments on some classes.

And in my mind Information systems is like Software engineering in
that it leans more toward practical solutions. But I would expect it
to have a heavy emphasis on business type applications. I would not
expect a Process Control or Robotics class in an IT degree program.
There might be a Numeric analysis class, but a a shallower depth than
covered in SE curriculum. Both IT and SE might share a Human Factors
course (covers design of Human-Machine interfaces). That might be one
course that many developers should find useful, but few if any ever
take it (AFAIK). Team assignments would also form a significant
percentage of the IT degree program.

This was all kind of off-the-cuff thoughts, but I am actually
surprised how much I must have thought about it over the years. They
seem to make sense to me at the moment. I hope they make sense to
others.
Ed
 
C

Chris Hills

In news:[email protected] timestamped Sun, 11
Mar 2007 21:16:51 -0800, John Larkin
<[email protected]> replied to Ed Prochak's
:"So who is teaching Programming Management?"


I am not certain, but I suspect that the discipline called Information
Systems is more managerial than other degrees related to
computers. However, I was acquainted with someone who deliberately
selected courses with as little programming content as possible and
who as a result of that, graduated with a first class honors degree in
Information Systems.

I can't see what is wrong with that? I know several IT people who work
in information system who never need to write source code.

The do need to set up servers, networks, distributed systems, back up
systems and software, power control, system configuration (both Os and
apps) many other things but never do they have top write a program as
such.

When I have problems with my Pc's (plural) the network or the back up
systems the person I call is an Information Systems specialist but as he
says he would not know where to start writing C code.

A computing and IT/IS is a VERY wide subject. As we have discussed here
many many times the average computer graduate can program in C#' or VC++
but has no idea of programming an 8 bit embedded system. So why should
an IS person be able to program?
 
C

Colin Paul Gloster

In timestamped Mon, 19 Mar
2007 10:10:30 +0000 said:
Mar 2007 21:16:51 -0800, John Larkin
<[email protected]> replied to Ed Prochak's
:"So who is teaching Programming Management?"


I am not certain, but I suspect that the discipline called Information
Systems is more managerial than other degrees related to
computers. However, I was acquainted with someone who deliberately
selected courses with as little programming content as possible and
who as a result of that, graduated with a first class honors degree in
Information Systems.

I can't see what is wrong with that? I know several IT people who work
in information system who never need to write source code."


Fair enough for them then. I think that the following quotation from
page 93 of Gerald's and Wheatley's sixth edition of "Applied Numerical
Analysis", Addison Wesley, 1999 does not entirely go astray here:
"[..]

Computer Programs

Beginning with this chapter, we conclude each chapter with example
programs that imple-ment algorithms of the chapter. We do not attempt
to include code for every algorithm; this allows students to gain
experience in writing their own programs. That skill is essential to
the budding numerical analyst, even though prewritten programs will
most often be used when doing numerical analysis
professionally. Although these professional packages can supply the
most useful algorithms, one cannot read these or decide which is best
suited for the task at hand without some background in creating at
least simple programs.
[..]"


Chris Hills wrote re "several IT people who work
in information system":

"The do need to set up servers, networks, distributed systems, back up
systems and software, power control, system configuration (both Os and
apps) many other things but never do they have top write a program as
such.

When I have problems with my Pc's (plural) the network or the back up
systems the person I call is an Information Systems specialist but as he
says he would not know where to start writing C code."


Administration of information technology resources could be classified
as being within the domain of information systems, but it is not what
I believe the term was used as a distinguishing term for these
degrees. Things change and inaccuracies were published re the
differences of these degrees, but I will quote from the current
website anyway. From
WWW.computing.DCU.Ie/prospective/undergraduate/ca/structure.html
:"[..]

TWO DEGREE SPECIALISMS TO CHOOSE FROM

[..]

Software Engineering. This will equip you with the necessary skills to
create software [..] Software engineers are technically-oriented and
inventive. They typically find work in computing and electronics
companies [..]

Information Systems. This is concerned with how organisations can best
use computing technology to allow people to work together, and to
enable the company to compete effectively in the
marketplace. Information Systems graduates are people-oriented and
business-oriented problem-solvers. Most work outside the IT sector in
banks and insurance companies, manufacturing firms, TV companies, the
health industry, and logistics companies.

[..]"

I do not see many items from Chris Hills's list "servers, networks,
distributed systems, back up
systems and software, power control, system configuration (both Os and
apps)" for the final year on
WWW.DCU.Ie/registry/module_contents.php?programme=CAIS&function=4
:"[..]
Programme Academic Structure for 2006 - 2007, BSc in Computer
Applications (Inf.Sys.)
This information is provisional and subject to change.

[..]

Year 4 Core Modules:
Code Title Credit Semester
CA400 Project 15 Year long
CA465 Technical Communication Skills 5 Semester 1

Year 4 Optional Modules:
Code Title Credit Semester
CA417 Computer Graphics 5 Semester 1
CA419 Database 1:Relational Theory & Multidatabase 5 Semester 1
CA420 Database 2:protocols & Systems 5 Semester 2
CA421 Software Patterns & Metrics 5 Semester 1
CA422 OO Models 5 Semester 2
CA425 Artificial Intelligence 5 Semester 1
CA427 Operations Research 5 Semester 1
CA429 Operations Research/Management Science 5 Semester 2
CA437 Multimedia Information Retrieval 5 Semester 1
CA438 Multimedia Technology 5 Semester 2
CA441 Business Process Management 5 Semester 1
CA447 Software Process Improvement 5 Semester 1
CA448 Compiler Construction 1 5 Semester 1
CA449 Compiler Construction 2 5 Semester 2
CA461 Speech Processing 5 Semester 1
CA483 Supply Chain Management 5 Semester 2

[..]"

Chris Hills wrote:

"A computing and IT/IS is a VERY wide subject."

True.


"[..] the average computer graduate can program in C#' or
VC++"

Really?


"but has no idea of programming an 8 bit embedded system. So why should
an IS person be able to program?"

Practical compulsory coursework in programming is documented for the
first three years of a four year IS course. It also seems that it
would be difficult to manage to get modules for the fourth year such
that no programming whatsoever for the fourth year would be sufficient.
 
T

Too_Many_Tools

On 10 Mar 2007 18:32:23 -0800, "Ed Prochak" <[email protected]>
wrote:
[]






It is an issue of teahing students how to THINK. Maybe that's why some
of the better ones come from non-programming backgrounds. (I may be
biased here. My undergraduate degree was in Physics. My Masters was in
Electrical Engineering but it was a software concentration option.)
Ed Prochak
Well, something is sure broken. Big, gigabuck-scale software projects
are almost always late and over budget, and some fraction, a third
maybe, are absolute failures. Eveything more complex than a toaster
oven is usually littered with bugs, sometimes thousands of bugs.
Performance like that deserves to be called neither Science nor
Engineering.
Imagine if a third of our bridges, buildings, and airplanes fell down.
What Computer Science should do is figure out how to get a group of
people to produce good code in a predictable manner.

That is not a Computer science problem. That is a management problem.


When the best programmers never studied programming, something is
wrong with CS/CE education. Reminds me of the experiment where they
found that graduates of the Cooks and Bakers school were better aerial
gunners than graduates of the Aerial Gunnery school.

I said SOME of the better ones. I guess I have been lucky to work with
a lot of good developers. Some had CS degrees, some EE's, some others
(including Biology and philosophy). The problem may not be due to the
developers. Management is the place to start looking! Haven't you
worked for a pointy haired manager sometime in your experience?
Ed- Hide quoted text -

- Show quoted text -
Haven't you worked for a pointy haired manager sometime in your experience?

LOL...who hasn't?

TMT
 
Top