The Artima Developer Community
Sponsored Link

Weblogs Forum
The Holistic Approach to Software Engineering as a Way to Handle Complexity

74 replies on 5 pages. Most recent reply: Dec 9, 2010 12:28 PM by Mike Swaim

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 74 replies on 5 pages [ « | 1 ... 2 3 4 5 ]
robert young

Posts: 361
Nickname: funbunny
Registered: Sep, 2003

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 1, 2010 3:14 PM
Reply to this message Reply
Advertisement
> >I don't see many Intel cpu's being moved to the desktop
> to mimic Crays
>
> Agreed. However, one can easily buy a graphics card with
> ~1000 GPUs for ~$100. That's 10 cents a GPU, even less if
> the card is on sale at Fry's. :-)
>
> The availability of such incredibly cheap computing power
> will drive demand for parallel processing, and
> applications will arrive.

I don't read the, albeit short, history of multi-core desktop cpu's as *demand* for parallel processing; rather as cod liver oil, it's good for you, drink it, and shut up. No, there's been no demand for these cpu's that I've seen. Quite the opposite: lots o hand wringing about what to do with the darn things. Yes, graphics cards have gotten beefy on GPU's, but who beyond a hardcore gamer wants one? And the enthusiasm for parallel/concurrent languages has been in the various server sectors. Again, by volume, small potatoes. Taken together they won't drive demand for the cpu's the way Windows/Office did for 486s, Pentiums, and beyond.

Some Killer App (the Lotus 1-2-3 of the 20teens) which: requires heavy parallelism and mass market, is needed. The next Bill Gates is the guy who figures that out, and he won't need a wussy IBM to pull it off.

Whether languages and
> programmers can satisfy the demand is a good question.

Whether any demand, beyond that generated by O'Reilly et al, materializes is the question. Hasn't happened yet, that I've seen.

Mike Swaim

Posts: 13
Nickname: swami
Registered: Apr, 2004

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 1, 2010 3:47 PM
Reply to this message Reply
> That old canard, the three main applications for the
> desktop: spreadsheets, word processing, spreadsheets.
> There are small opportunities for multi-threading, but
> t I've seen no evidence that there's a major win there for
> multi-core. The archetypal desktop application is single
> threaded because the user has only one brain and two
> hands. The OS can benefit, but the number of OS writers
> is even smaller than game or database engine or web server
> writers.

Excel 2007+ will do multithreaded recalcs, if it can detect that they're safe. (Assuming that a recalc takes more than a couple of seconds on your spreadsheet.)

> "C/S desktop apps" is, I'd say, a synonym for Engineering
> Workstation. Important to those that do that sort of
> thing, but it won't keep the lights on at Intel or AMD
> (certainly not both).

No, that'd be people doing data entry or analysis not using a web app. If the client deals with a lot of data, or bursts of data, you're better off moving data I/O off the same thread as the user interface.

Mike Swaim

Posts: 13
Nickname: swami
Registered: Apr, 2004

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 1, 2010 4:37 PM
Reply to this message Reply
> I don't read the, albeit short, history of multi-core
> desktop cpu's as *demand* for parallel processing; rather
> as cod liver oil, it's good for you, drink it, and shut
> up.

Not quite. It's more that Intel hit the thermal wall with the P4, and chip space has gotten cheap. It doesn't cost much to go from 1 core to 2 (Heck the P4 was effectively a 1.5 core chip), and most of the desktop apps where performance matters are already multithreaded. Dual core is a lot cheaper than dual processor, and not that much more expensive than single core.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 2, 2010 3:54 AM
Reply to this message Reply
> No one, and I repeat
> NO ONE, has found a class of client/standalone problems
> which benefit from these processors.

Seeing all the responses to this sweeping statement reminds me very much of the "Spanish Inquisition" sketch. :)

robert young

Posts: 361
Nickname: funbunny
Registered: Sep, 2003

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 2, 2010 8:09 AM
Reply to this message Reply
> > No one, and I repeat
> > NO ONE, has found a class of client/standalone problems
> > which benefit from these processors.
>
> Seeing all the responses to this sweeping statement
> reminds me very much of the "Spanish Inquisition" sketch.
> :)

Well, I did correct/clarify/narrow the scope a few posts later. My point, which I've made in earlier threads here and other places (and well documented by Denning and Dennis), is that we're not in new territory with these machines, and that we've not had much luck leveraging them in the past when the attempt was to use them in the niche venues to which they are suited. Assuming that we can leverage them in the "most user" common desktop, in a way that the "most user" will notice favorably, through some magic new language is a bold assumption.

Some have described uses (often functions within applications), well known, none of which amount to a hill of beans in terms of justifying the millions of common desktop cpu's that Intel/AMD need to ship. The next Win/Office release tap dance no longer does it. The "most user" class of user has seen, and will continue to see, only marginal benefit from this variant of Moore's Law. There needs to be a Killer App for these processors, relevant to the "most user" space. Ain't happenin'.

Hoping/believing that some new language/compiler will be created which leverages existing procedural source (Office, for instance), or even new code, onto these chips, with an attendant burst in performance, is kind of like believing in the Tooth Fairy. That ain't happenin' either.

For those who wish to embrace multi-core coding and parallel/concurrent languages, yes there are known venues where it is happenin'. And it's server/OS stuff and number crunching. The "most user" won't be doing hurricane simulations, nuke development, or playing the latest shoot 'em up in CubeLand (not without penalty for that last, anyway).

I wonder how many posters actually read the Denning/Dennis essay?

Mike Swaim

Posts: 13
Nickname: swami
Registered: Apr, 2004

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 2, 2010 9:46 AM
Reply to this message Reply
> Well, I did correct/clarify/narrow the scope a few posts
> later. My point, which I've made in earlier threads here
> and other places (and well documented by Denning and
> Dennis), is that we're not in new territory with these
> machines, and that we've not had much luck leveraging them
> in the past when the attempt was to use them in the niche
> venues to which they are suited.

Sure. Parallel architectures have been around since the 60s. Parallel desktop computers have probably been around since the late 80's.
As for leveraging parallelism, I know of a couple of success stories back in the 80s and early 90s.

> Assuming that we can
> leverage them in the "most user" common desktop, in a way
> that the "most user" will notice favorably, through some
> magic new language is a bold assumption.

I think that this is true for several reasons.
1) Most users aren't taxing their hardware anyway.
2) Many problems don't lend themselves to easy parallelization.

> Some have described uses (often functions within
> applications), well known, none of which amount to a hill
> of beans in terms of justifying the millions of common
> desktop cpu's that Intel/AMD need to ship. The next
> Win/Office release tap dance no longer does it.

Doesn't matter. They're already shipping it as pretty much the "standard" hardware. You're going to pick it up on the next hardware refresh, if you haven't already.

> The "most
> user" class of user has seen, and will continue to see,
> only marginal benefit from this variant of Moore's Law.
> There needs to be a Killer App for these processors,
> , relevant to the "most user" space. Ain't happenin'.

Once again, it doesn't matter. They're already shipping it. Even the i3 processor is dual core. I would like to point out that it does provide more of a benefit than the handful of new instructions that Intel/AMD add every couple of years that require new compilers (or programming in assembly) to even use.

> Hoping/believing that some new language/compiler will be
> created which leverages existing procedural source
> (Office, for instance), or even new code, onto these
> chips, with an attendant burst in performance, is kind of
> like believing in the Tooth Fairy. That ain't happenin'
> either.
I don't think that anyone's making that claim. (At least I'm not.) What I have seen is approaches to make parallizing code easier.

> For those who wish to embrace multi-core coding and
> parallel/concurrent languages, yes there are known venues
> where it is happenin'. And it's server/OS stuff and
> number crunching.

Here I disagree. Desktop apps can (but not always will) benefit from parallel design, even on single core machines.

> I wonder how many posters actually read the Denning/Dennis
> essay?

I had read it a while ago, and found the Burroughs design interesting. Unfortunately, I suspect that it's largely irrelevant, thanks to the current state of the industry.

art src

Posts: 33
Nickname: articulate
Registered: Sep, 2005

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 8, 2010 1:23 AM
Reply to this message Reply
The evidence is that software developers differ in productivity by a couple of orders of magnitude. What about a well respected course and certification that put me at the top of that distribution.

A flat certification seems very 20th century to me. People are different in focus and capability. This certification seems to focus on the bureaucracy rather than capability. I think we should relish the colour of our profession. We should have a certification that says we are all different.

I agree with those that point to the need for a motivation to do this stuff. I don't want a certification that puts all developers on the same level. We would all get the same pay we get now, but would have extra crap to do to get it.

Not all software is the same. Just as journalists are not great novelists, not all software developers are great at everything. What about a certification that says I can do say, iPhone applications, really well. People who need iPhone applications could find me and pay me lots of money.

John Wellbelove

Posts: 72
Nickname: garibaldi
Registered: Mar, 2008

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 8, 2010 4:04 AM
Reply to this message Reply
> A flat certification seems very 20th century to me.
> People are different in focus and capability.
...
> Not all software is the same.

I agree. A common certification would probably only be able to cover broad, abstract areas of the software profession.
To take my world, for instance, all of my experience is in embedded machine control, involving real-time threading, hardware interfaces, lock-free synchronisation and a whole lot of other things people in my field would be familiar with. Enterprise software is way outside my realm of experience and any test that graded me on knowledge of CORBA, SOAP, AJAX, distributed systems etc would have me down as a class A dunce! Similarly, we find it incredibly hard to recruit suitable staff here, as most candidates interviewed do not seem to have appropriate background. Some ,from enterprise backgrounds, never seem to 'get it'.

Ervin Varga

Posts: 18
Nickname: evarga
Registered: Feb, 2006

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 4:34 AM
Reply to this message Reply
>
> We should have a certification that says we are all different.
>

Why future tense here? :-)

There are two major categories of certificates: product/technology-specific and knowledge-based.

Product/technology-specific certifications (Microsoft, Cisco, Oracle, just to name a few) do not address the need for establishing and assessing fundamental software practices. I have explained this in the Webinar. There are many product/technology-specific certificates available today.

IEEE CSDP is regarding software engineering, and it needs to be broad, since the whole software engineering is broad and complex.

>
> What about a certification that says I can do
> say, iPhone applications, really well. People who need
> iPhone applications could find me and pay me lots of money.
>

Apple already offers various training courses and certificates for their stuff. Just visit their Web site at http://training.apple.com/#certification, and choose what is appropriate for you.

Heinz Kabutz

Posts: 4
Nickname: kabutz
Registered: Jun, 2009

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 4:37 AM
Reply to this message Reply
> > A flat certification seems very 20th century to me.
> > People are different in focus and capability.
> ...
> > Not all software is the same.
>
> I agree. A common certification would probably only be
> able to cover broad, abstract areas of the software
> profession.

Right, it is looking at the software *engineering* aspect of our profession. Things we should know about, such as testing, a bit about the roles of various people in your team. It is not at all about your specific environment.

Of course, in the real world, I have worn many of the hats at the same time. I've been Developer, Designer, Tester, Architect, Analyst all in the same project. But it is still interesting to see the responsibilities of each role.

There are lots of product specific certifications. I don't think anyone is going to offer you oodles of cash just because you are CSDP or CSDA.

I don't think anyone would consider two architects the same solely based on their professional certifications. They would look at the buildings they have constructed and judge based on that. In the same way, you will be judged by what you produce, not by some letters behind (or in front) of your name.

I am still not convinced that CSDP is a good idea. I also mentioned this in the recording. It is currently far too focused on academia. I think anyone who has been working as a software engineer for the last 10 years should be able to be certified without much fanfare, and also keep his certification without having to resit the exam every three years. So far I have not found one person in industry who disagrees with me.

There are millions of chartered accountants in the world. Their professional certifications mean something, because it is a brand that is recognized. Currently there are about 1000 CSDP software engineers. Unless that number increases to at least 100.000, which it won't with the current setup, the letters will be completely meaningless.

Kind regards from Crete

Heinz

art src

Posts: 33
Nickname: articulate
Registered: Sep, 2005

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 5:33 AM
Reply to this message Reply
> There are two major categories of certificates:
> product/technology-specific and
> knowledge-based.
>
> Product/technology-specific certifications (Microsoft,
> Cisco, Oracle, just to name a few) do not address the need
> for establishing and assessing fundamental software
> practices.

There are no established fundamental software practices. Software development is not based on science, is not practiced universally and this is a good thing. Practices and orderings are project/domain dependent. And some of the one in the certification are especially odd, - from the sample exam questions:


3. In Modern Structured Analysis, the ?event list? is used to:

a improve requirements traceability.
b build an Entity-Life History diagram.
c document the data transactions in the Entity-Relationship Diagram.
d build a preliminary Data Flow Diagram for the system



> I have explained this in the Webinar. There are
> many product/technology-specific certificates available
> today.

None establish much beyond that a person can complete a two week course and do a multiple choice test. They do not establish any real competence. CSDP seems similar in this regard.

> IEEE CSDP is regarding software engineering, and it needs
> to be broad, since the whole software engineering is broad
> and complex.

The insight is that there is not a software engineering field. Using software to do something is just not enough in common to make this a worthwhile pursuit.

>
> >
> > What about a certification that says I can do
> > say, iPhone applications, really well. People who need
> > iPhone applications could find me and pay me lots of
> money.
> >
>
> Apple already offers various training courses and
> certificates for their stuff. Just visit their Web site at
> http://training.apple.com/#certification, and choose what
> is appropriate for you.

There aren't that establish that someone can build a good iPhone application, efficiently. While I agree there are some useless software development certifications in specific technologies, I just looked and there don't even to be any at that link that relate to software development at all.

John Wellbelove

Posts: 72
Nickname: garibaldi
Registered: Mar, 2008

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 5:56 AM
Reply to this message Reply
> I don't think anyone would consider two architects the
> same solely based on their professional certifications.
> They would look at the buildings they have constructed
> d and judge based on that. In the same way, you will be
> judged by what you produce, not by some letters behind (or
> in front) of your name.

I have come across recruiters that don't seem to understand that.

Q Do you have a degree?
A No.
Q We're not interested in you then.
A But I've designed hardware and software that has been sold around the world!
Q We're still not interested. Degrees only!

Ervin Varga

Posts: 18
Nickname: evarga
Registered: Feb, 2006

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 6:46 AM
Reply to this message Reply
>
> I don't think anyone would consider two architects the
> same solely based on their professional certifications.
> They would look at the buildings they have constructed
> d and judge based on that. In the same way, you will be
> judged by what you produce, not by some letters behind (or
> in front) of your name.
>

I'm not disputing this stance at all. I fully agree! I do not even remember that anyone ever in this discussion stated that someone should be judged purely based on their letters behind, or in front, of their name. The topic how to evaluate someone's performance is an extremely difficult task, and it is a subject in the academic world, as well as, in the industry since the very beginning. How to most efficiently score a student? How to choose the best candidate for a job? These are I think those neverending stories both in academia and industry what will last forever.

So, what all those degrees, titles, licenses and certificates should mean, for example, to a recruiter? Ideally, they should be just tools to help setting the initial odds regarding who should be chosen. Nothing else. Of course, problems arise when recruiters think that those initial odds are the sole ranking mechanism for selection.

Ervin Varga

Posts: 18
Nickname: evarga
Registered: Feb, 2006

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 9:04 AM
Reply to this message Reply
>
> Software development is not based on science...
>

A very good point indeed, although it does require a bit of polishing to make it unambigious. What does it mean based on science? This is the confusion, which needs to be explained.

In the Webinar, I have tried to come up with a definition of engineering, and I stated that it is a paradigm. The most important thing is to emphasize that engineering is not a synonym for science, although these two disciplines are related and interconnected. The same is true for software engineering, as a sort of engineering. I recommend you to read one very good article just recently published at http://spectrum.ieee.org/at-work/tech-careers/engineering-is-not-science for a more detailed elaboration regarding this matter.

However, engineering not being a science does not automatically mean we do not (or cannot) have established fundamental principles, and order. All recognized engineering professions strive to have these at their disposal.

Mike Swaim

Posts: 13
Nickname: swami
Registered: Apr, 2004

Re: The Holistic Approach to Software Engineering as a Way to Handle Complexity Posted: Dec 9, 2010 12:28 PM
Reply to this message Reply
> I have come across recruiters that don't seem to
> understand that.
>
> Q Do you have a degree?
> A No.
> Q We're not interested in you then.
> A But I've designed hardware and software that has been
> sold around the world!
> Q We're still not interested. Degrees only!

It may not be the recruiter's fault. My boss tried hiring someone who was technically qualified, but didn't have a diploma, and was told that for that type of position, a degree was required. There's no telling where this policy came from, but I bet it was higher than our local HR.

Flat View: This topic has 74 replies on 5 pages [ « | 2  3  4  5 ]
Topic: Java Enums want to be Classes Previous Topic   Next Topic Topic: How Has Functional Programming Influenced Your Coding Style?


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us