Tuesday, November 13, 2012

On the "end of the engineer"

After writing yesterday on science and engineering somebody attracted my attention to a (not new) very visible  posting by Tom Gillis on the Forbes Blog entitled: "The *End* of the engineer".    Gillis, who labels himself as an engineer who grew up in a family of engineers claims that in the past what the market competition was on better engineering and brings some examples of high-tech vendors who failed due to the fact that others succeeded to get better engineering.    The claim is that it is no longer the case, the differentiation is not in the engineering, but in understanding customers needs (even if the customers are not aware of them),  the ultimate example is the direction that Steve Jobs took Apple whose success was due to the market insights and not to superior engineering.    While engineers are still needed, Gillis claim that now they are not the one who will bring the crucial value, but those who can understand the customer's way of thinking, thus the heroes of the high-tech will be those who have "soft" skills, and the education system has to reflect it -- interesting perspective,  as you can imagine, also controversial, you can view the comments to the original Blog posting, some of them had strong opinions to either side (the author added prefix to the Blog in response)...   Not sure it is the end of engineering -- but I agree that the education for high-tech workers today is not technology only...


Monday, November 12, 2012

On software, engineering and computer science

Today the IBM Haifa Research Lab hosted the Programming Languages and Software Engineering whole day seminar, the keynote speaker was David Parnas,  one of the pioneers of software engineering,  Many years ago when I was in the Israeli Air-Force, I have investigated the new discipline of software engineering to see whether we can apply in a big software project that I've managed, and Parnas was one of the first names I have encountered, but this was the first time I saw him in person.  There was a panel on the term and profession of software engineering.   It reminded me one of the posts on this Blog from early this year that was entitled "Is Computer Science - science or engineering?" which was triggered by the fact that my daughter Daphna had a "science day" introducing the science classes in the high school she started to attend this year, and despite the fact that they teach "computer science" they did not include it in the science day - thus the school does not think it is a science.    

Interestingly, David Parnas, as well as other panelists, don't really think of computer science as engineering, in fact, David Parnas talked about a fight between an engineers association in Canada to forbid computer science graduates that don't really have engineering training to call themselves engineers.   I always thought that there is something pretentious in the fact that programmers (typically with computer science education) call themselves "software ENGINEERS".  As somebody said in the discussion today  -- an engineer is a person that can be sued on negligence if it will be proven that engineering rigorous principles were not met.
Until the time it will be true for software, software producers cannot call themselves software engineers.

Back to - is computer science a science -  Winton Cerf wrote in CACM an article entitled "where is the science in computer science?"   The answer according to Cerf is  that unlike physical sciences which are about modeling the world,  in computer science the science is tools for understanding complex software systems and make predictions about their behavior --  not really sure I am convinced...

It seems that computer science might be an animal of its own - neither science nor engineering, especially in the conventional terms.

Sunday, November 11, 2012

On the Internet of EVERYTHING

Cisco came out recently with the concept of  "The Internet of EVERYTHING".
While the "Internet of Things" deal with connecting anything to the Internet, the Internet of EVERYTHING deal with the things and the semantic connection among things that can make the world actionable in real-time.  A simple example is the car theft example. 

A car is connected to the Internet through its GPS sensor that reports its location, it has also semantic relations to a list of eligible drivers who are permitted to drive in this car, each of these persons is also connected to the Internet using his or her mobile phone, thus the Internet knows the person's location  (disregard the privacy issue for this scenario!),  so if the car is moving (inferred from the GPS change in location), and all the eligible drivers are not in the car - it means that the car is stolen, and it can then report to the police and have them track its location.  
This scenario is based on - things,  contexts of things, and processing events about things..   It is actually quite straightforward from technology point of view.  I wonder if the "Internet of EVERYTHING" will survive the buzzword test of time...