An article in the Communications of the ACM (March 2009, vol 52 #3) makes software engineering sound just slightly better than a voodoo ritual (no disrespect to voodoo intended). I would also ask a related question, “does computer science have anything to do with software engineering?”. For example, objected oriented design is the accepted software design methodology today, but what science exactly is behind this? CS seems to deal with the logic and complexity of algorithms, but that’s really a very small part of software engineering.
Anyway, here are some quotes from the article:
In its most general form, the “engineering process” consists of a repeated cycle through requirements, specifications, prototypes, and testing. In software engineering, the process models have evolved into several forms that range from highly structured preplanning (waterfalls, spirals, Vs, and CMM) to relatively unstructured agile (XP, SCRUM, Crystal, and evolutionary). No one process is best for every problem.
Despite long experience with these processes, none consistently delivers reliable, dependable, and affordable software systems. Approximately one-third of software projects fail to deliver anything, and another third deliver something workable but not satisfactory. Often, even successful projects took longer than expected and had significant cost overruns. Large systems, which rely on careful preplanning, are routinely obsolescent by the time of delivery years after the design started. Faithful following of a process, by itself, is not enough to achieve the results sought by engineering…
software engineering literature … relies heavily on software anecdotes and draws very lightly from other engineering fields. Walter Tichy found that fewer than 50% of the published software engineering papers tested their hypotheses, compared to 90% in most other fields.
This article makes the point that the consensus on the health benefits of fat reduction in the diet are not scientifically born out. Instead it’s the result of the moral equivalent of the herding instinct for scientists.
Could this be true? A basic dietary assumption of the past 40 years was a whoops? And if scientists were wrong about something this fundamental, what else could they be wrong about.
Maybe Woody Allen’s predictions in the movie “Sleeper” really will come true (Ie., in the future, steak and cigarettes are determined to be healthy)
Continue reading “Diet and Fat: A Severe Case of Mistaken Consensus (NYTimes.com)”
In the article Why Can’t A Computer Be More Like A Brain? (spectrum.ieee.org) author Jeff Hawkins proposes a theory of how the brain works and how it could be implemented in computers:
“Memory of what a dog looks like is not stored in one location. Low-level visual details such as fur, ears, and eyes are stored in low-level nodes, and high-level structure, such as head or torso, are stored in higher-level nodes.the low-level nodes learn first. Representations in high-level nodes then share what was previously learned in low-level nodes.
each node in the hierarchy learns common, sequential patterns, analogous to learning a melody. When a new sequence comes along, the [lower level] node matches the input to previously learned patterns, analogous to recognizing a melody. Then the [lower level] node outputs a constant pattern representing the best matched sequences, analogous to naming a melody. Given that the output of nodes at one [lower] level becomes input to nodes at the next [higher] level, the hierarchy learns sequences of sequences of sequences.”
A graphic (PDF) from the article demonstrates the point:
What the article sort of talks about is the intrinsic role of time based feedback loops as part of how a node recognizes a pattern. I’m guessing that rather than process a wide bit pattern directly, “nodes” process the wide bit pattern in chunks remembering the node’s state based on the previous sequence of chunks and determining the new state based on the previous state and the current new chunk (and maybe neighboring/parent node states)
An article by Steve McConnell from IEEESoftware.com notes that, surprisingly, software development process maturity (ie., rigorous technical management procedures) doesn’t seem to matter as much as “soft” factors like: seniority of personnel, good communication, motivation, analyst experience, etc.
The unstated implication is that the academics and big corporations concentrate too much on process maturity (eg. ISO 9001 & CMMI), because that’s easy to quantify, rather than actually being important.
In the London Review of Books personal ads, self deprecating humor is apparently the fashion. My favorite is:
I like my women the way I like my kebab. Found by surprise after a drunken night out, and covered in too much tahini. Before long I’ll have discarded you on the pavement of life, but until then you’re the perfect complement to a perfect evening. Man, 32. Rarely produces winning metaphors.
The title comes from the personals ad:
They call me Naughty Lola. Run of the mill beardy physicist — male, 46.
Continue reading “Bizarre humorous personal ads from London Review of Books”
From my letter to the editor in the 10/30/06 Washington Post, in response to the editorial Insult to Injury in Iraq by Frederick W. Kagan (resident scholar/conservative hack at the American Enterprise Institute):
In his op-ed, Insult to Injury in Iraq, Frederick W. Kagan blames the U.S. military for the Iraq fiasco, saying that Central Command “never actually made establishing order and security a priority.”But wasn’t it Defense Secretary Donald H. Rumsfeld who threatened to fire anyone who brought up the subject of “post-invasion operations” (also known as nation building) in Iraq? And wasn’t it the Bush administration’s aversion to nation building that limited our postwar options?
Mr. Kagan shouldn’t blame the military for following orders.
I wrote this because nobody in the Washington Post seemed to be making a distinction between the military and the ideologically driven agenda of the Bush administration. More people need to do so.
From The Atlantic Monthly: A chart which breaks the 2004 electorate into twelve politically relevant “tribes” based on their values, behaviors, and religious affiliation. Each circle corresponds in relative size to the group it represents. The chart reveals some polarization of the electorate. But it also shows that voting preferences do not sort as neatly by cultural values or religious affiliation as people might expect:
From an article in the journal IEEE Software, May 1996, page 37. Unfortunately, I don’t have the author or title of the article and searches for the content on ieee.org don’t seem to find it, so I’ve scanned it in below.
Although most of the software world doesn’t seem to talk about OOD this way, the “lesson” below seems reasonable based on my experiences.
If the control flow is partitioned into a “separate dynamic control flow object” as mentioned below, isn’t that object really not an object at all, based on the definition of an object containing data and actions modelling an entity? Stated another way, object oriented design only makes sense when the actions are centered around a piece of data. In this case, the actions are centered around coordinating control flow.
Could the whole computer science industry be so wrong about something for so long? I seems similar to the repudiation of psychoanalysis after 60 years of the dominance of the theory:
Continue reading “Object oriented design lesson: Control flow should not be a class behavior”