From On Bullshit by Harry G Frankfurt:
In the old days, craftsmen did not cut corners, They worked carefully, and they took care with every aspect of their work. Every part of the product was considered, and each was designed and made to be exactly as it should be. These craftsmen did not relax their thoughtful self-discipline even with respect to features of their work that would ordinarily not be visible. Although no one would notice if those features were not quite right, the craftsmen would be bothered by their consciences. So nothing was swept under the rug. [pp 20-21]
Some interesting parallels to Software Craftsmanship in Shop Class as Soulcraft. Focus is on working in the so called craft trades, specifically as Electrician and Motorcycle Mechanic.
Parallels are uncanny in the way that both books address Scientific Management, but Soulcraft found a very interesting quote from one of Ford’s biographers
So great was labor’s distaste for the new machine system that toward the close of 1913 every time the company wanted to add 100 men to its factory personnel, it was necessary to hire 963. (pg 42)
Small wonder then that Ford was forced to double the wages of the factory staff in order to retain workers. Of course this has since been spun as Ford wanting the workers to be able to afford the cars they were making, but it sure seems like it was a defensive move based on turnover.
Why Software Development Will Never be Engineering
Basic idea in the article is that things like bridge building are now fairly static. The types of bridges we know how to build are well codified and replicable. Not mentioned in the article is that novel bridges still have novel problems, but after a few mistakes the construction engineers seem to resolve most of the issues.
Software development is different because it keeps on changing. The article argues that 10 years ago the future seemed to involve UML and CASE tools, but that the current state of the art of software development (Agile) does not use either of them.
There is a constant refrain that occurs whenever people try to achieve anything
There must be an easier way
We learn this lesson at an early age and never forget it. The toy problems we are “challenged” with while learning always have an easy solution. Sometimes the easy solution is non-obvious and hard to find, but there is always a trick that makes solving the problem easy.
Unfortunately the world does not work this way — but we want to be tricked into thinking that it does.
- Finding the one food that will help the pounds melt away
- A pill that will cure all diseases
- The invisible hand of the market
- Buying a CASE tool to improve code quality
- Adopting Extreme Programming
- Thinking that Requirements Traceability makes systems better
Whether we think of these as “Silver Bullets” or a “Technological Fix”, it seems that we are hardwired to seek out simple solutions. In part this could be because we are so good at pattern recognition that we see a pattern where none exists.
All of this makes progress in software development difficult, because collectively we don’t want to believe how hard it is to deliver reliable systems. There has to be an easier way …
Is there a Mathematics Generation Gap
Calculators became affordable in the mid- to late-1970s. Students in the 1980s were taught by teachers who had learned mathematics without calculators, and could do basic mental arithmetic. Students today might be taught by a teacher who is himself unable to work out 37+16 without help. The consequences are neatly described in an “Alex” cartoon I have on my fridge about a proposal to ban the use of calculators in school. “Faced with home work which requires him to work out simple sums in his head today’s lazy seven-year-old will instinctively turn to the quick and easy method of arriving at the answer… i.e. asking his dad, who, embarrassingly also wouldn’t have a clue without a calculator.”
Implications of this could be interesting for software development. When there is a large part of the workforce unable to do simple calculations without the use of a “Guessing Box” I expect there will be a lot more errors in software. Or at least errors that can be attributed to the Garbage In, Garbage Out problem of the users (and developers) not having the basic skills to detect implausible answers from systems.
An older article from The Atlantic, on
Management Myths. Telling comment from the viewpoint of Scientific Management
the science of handling pig iron is so great and amounts to so much that it is impossible for the man who is best suited to this type of work to understand the principles of this science, or even to work in accordance with these principles, without the aid of a man better educated than he is.
Worth a read if only for the historical perspective.
After installing Ruby 1.9.2 from source on Centos, a few days later got a strange error from rake and gem commands
# gem list
<internal:lib/rubygems/custom_require>:29:in `require': No such file or directory - ?? (Errno::ENOENT)
from <internal:lib/rubygems/custom_require>:29:in `require'
from /usr/bin/gem:8:in `<main>'
Found a fix for this at Ruby Forum Beware prelink and compiling ruby from source. The problem seems to be prelink corrupts ruby, so just need to ban prelink from touching the ruby executables and libraries. Need to ban
/etc/prelink.conf. by adding the line
to the conf file. Hopefully someone else will find this in the search engines and not have to reinstall ruby too many times (but once it has occurred you will need to reinstall to fix the corruption).
A fascinating one hour videos of a talk by Douglas Crockford on Open source Heresy. The talk includes some humor around the JDON license
The Software shall be used for Good, not Evil.
Interesting to hear the idea that open source dates back to the very early days of Univac …
TL;DR If you let other people tell you what you should think, don’t be surprised if you end up doing things that are not in your own long term interest.
Niel Postman was right, we are Amusing Ourselves to Death.
Soundbites cannot communicate nuances of ideas
For whatever reason, few people take the time to really find out what is going on in the world, being happy to be few a soundbite by a politicain or demagogue. Since I have the CO2 level shown in the sidebar, a good soundbite to use as an example is “CO2 is Plant Food”. Yes, CO2 is required by photosynthesis in plants, but the role of CO2 is much much more complicated than that.
Television and Radio news rely on soundbites, and as such are destroying public discourse about important matters that as a society we need to deal with. And yes, I know that TV and Radio news have some value, but that value needs to be considered in the light of what it also does to our understanding of science, technology, economics and the political choices facing us in the 21st Century.
A parallel to the outsourcing debacles is what is currently happening in the supply of Rare Earths (mainly the transition metals if you remember your periodic table). The rare earth metals are commonly used in high tech components, often for the super strong magnets, but also for lots of other electronic components.
China used to be such a low cost provider that it managed to capture most of the market, all of the other suppliers basically closing their mines. Now China, which produces 97% of the world’s supply of rare earths, slashed its exports to a trickle to feed its growing domestic needs. The link goes to a feel good story about a mine that is trying to ramp up production quickly, but there is still a measure of reality in the storyline
“Bottom line, we fell asleep as a country and as an industry,” Smith said. “We got very used to these really low prices coming out of Asia and never really thought about it from a supply chain standpoint.”
In more and more areas we seem to be bumping up against problems when demand starts to exceed easily available supply. It is not that we are running out, it is just that demand is larger than expected so there is not the production capacity, so the price in the market becomes unstable, with large spikes and then resulting drops as some customers leave the market for alternatives.