I read Glass' Facts and Fallacies of Software Engineering a few years ago, and this list is largely a summary of that book. What's interesting is that it references the research literature for each claim it makes, which is rare for popular books about software process. This isn't an entirely good thing, because the research literature on software projects is itself so weak.
Glass has been in the software world for decades, publishing his own newsletter and books. He made a career choice to remain a technical person, foregoing the management path which is traditionally the only way for programmers to rise inside companies, because he wanted to code. He wrote a book about this called The Power of Peonage arguing that staying at the lowest level of an organization has the great advantage that no matter what you do, you can't be demoted. That sounded worth reading to me, but it was impossible to find. [~]
Glass also wrote a series of articles defending COBOL by pointing out features that are useful for business programming and shouldn't be forgotten. How's that for contrarian!
Why's it so important to not get demoted? Why not start out as high as you can, and then get demoted to peonage - getting the best of both?
On the other hand, peonage is enticing to me b/c then you don't have to care so much about red tape. If you are an awesome peon, then you pretty much have free range, though not a lot of money. But, if you're warm, fed, and have an internet connection, who cares about money?
you don't have to care so much about red tape. If you are an awesome peon, then you pretty much have free range, though not a lot of money
Right, I've always assumed that's what Glass meant. Perhaps more than not getting demoted, the power is in not caring about getting promoted, which means there are all sorts of soul-sucking games you can just ignore.
It seems like a pretty rational strategy for inside an irrational organization. Personally, I'd rather just not be there to begin with.
On a related tangent, one interesting statistic I've seen is that the Air Force has the most intelligent enlisted, but the Navy has the most intelligent officers. In line with Glass' idea, this makes sense b/c the Air Force is the one military branch where the officers are the ones put in harms way. So, the enlisted both don't have to risk their lives, and they don't have to worry about red tape. Thus, the smartest people in the Air Force are probably in the enlisted, which is why it is said the chief master sergeants (some of the smartest enlisted) run the show.
I wonder how many of the problems that plague the standardization of software engineering reduce to some form of Godel's incompleteness theorem?
My thinking is this: unlike the artifacts of other engineering disciplines, programs can be self referential. Thus, they can meet the basic criteria for Godel's theorem to hold. Godel's theorem states that for a formal system meeting these criteria, not all true statements can be generated from its rule base.
So, if we can say true statements are equivalent to use cases, and design patterns are equivalent to rule bases, then it may be demonstrable that software engineering is actually an unsolvable problem, at least in the large. Thus, there is then a rigorous argument that programming should also (but not only, since there are good software engineering insights) be considered an art in order to be accomplished effectively.
While this list is interesting, many of these so-called facts are statements of disagreement with common practices in large organisations, rather than "fundamental facts".
Perhaps this would be better labelled a list of fundamental mistakes and misunderstandings...
Glass has been in the software world for decades, publishing his own newsletter and books. He made a career choice to remain a technical person, foregoing the management path which is traditionally the only way for programmers to rise inside companies, because he wanted to code. He wrote a book about this called The Power of Peonage arguing that staying at the lowest level of an organization has the great advantage that no matter what you do, you can't be demoted. That sounded worth reading to me, but it was impossible to find. [~]
Glass also wrote a series of articles defending COBOL by pointing out features that are useful for business programming and shouldn't be forgotten. How's that for contrarian!
[~] Not impossible anymore - http://www.abebooks.com/servlet/SearchResults?an=glass&s... - but I don't care quite that much.