Great comic sent to me by one of my co-workers:

This morning I’m pondering the power of inefficiency. Do we always need to be the most efficient? Or sometimes does it really not matter?
I started thinking about this after my recent FedEx shipment:

Map of recent FedEx Shipment
This is a map of a recent FedEx package I shipped. This document was shipped from my office in Santa Barbara, California to the nearby suburb of Goleta, California. It was shipped overnight and was delivered on time at 9:41am the next day. From a perspective of shear performance, FedEx did quite well. However, the irony is that in night time hours my package took a journey around the state of California.
My package went as follows:
- From my office in Santa Barbara to the Goleta sorting center via truck [10 miles]
- From the Goleta sorting center to Oakland, California via truck [325 miles]
- From Oakland to Ontario, California via plane [425 miles]
- From Ontario to the Goleta sorting center via truck [150 miles]
- From the Goleta sorting center to my bank in Goleta via truck [5 miles]
The package traveled a total of 915 miles. The odd thing is the place I was sending the shipment was only 10 miles away! Weirder still, the package traveled through the Goleta sorting center twice. This was clearly inefficient.
However, when I get off my logistical high horse I realize the most important fact: my package was delivered early. Although it’s funny to watch, actually I don’t at the end of the day care how it was done, just that at 9:41am my package was at it’s destination, my bank. That’s all I care about, the fact that my package visited the whole state of California in the waking hours ultimately doesn’t bother me that much.
In life and in business I think we put too much effort on doing things in the most efficient manner. However, this week FedEx reminded me that sometimes efficiency isn’t the most important thing. Sometimes I need to do what I know works and work hard at it. I may not be the most efficient, but I will get the job done relatively efficiently and ahead of schedule.
Food for thought.
I enjoy this clip of Rod Blagojevich on The Celebrity Apprentice:
On the one hand I can understand how Rob has had administrative assistants who have handled technology for him, I still think this does reflect badly on him. In stark contrast is Barack Obama who refused to give up his BlackBerry when he was made President of the United States. Rob’s computer blunders illustrate a greater problem: there are important skills that our jobs specifically don’t require us to do.
For example, to be a software engineer is to live, breath, and sleep code. Anything that’s not code is auxiliary. Therefore we need not to know the business or political side of the organization. However we live in the organization. The success of our code is a commerical equation consisting of marketing, sales, accounting, and executive decisions. If we just keep to our job description we’ll find ourselves affected by these forces.
Anyway, I think I’m going to go off and review my company’s financials….
My blog has been dormant for the past six months, as I have embarked on a series of new management adventures. However as things are thawing out, I’m back to reflect on the technical management world that is my work life.
I’m guilty of using this phrase:

Which leaves the question: can I be trusted as an engineer? I hope so…
In software development it’s often more important to figure out what people actually want, rather than how best to “engineer it.” According to Drucker:
There is only one valid definition of business purpose: to create a customer.
…
Because its purpose is to create a customer, the business enterprise has two – and only these two – base functions: marketing and innovation. (p. 19, The Essential Drucker)
Although, I suspect Drucker could easily be accused of over-simplification, I love the simplicity. There are only two things, not twelve or twenty things as might be found in other business best-sellers. There are simply two functions: marketing and innovation.
Drucker does define these functions differently than one might think:
- Marketing: “The aim of marketing is to know and understand the customer so well that the product or services fits him and sells itself.” Marketing in Drucker’s definition has little to do with advertising, but rather focuses more on understanding the market.
- Innovation: Drucker does not just mean just research and development, but also innovation in how the product is built, advertised, and sold. Innovation, therefore, is not just a term for engineering, but it also what the rest of the organization does to built a product efficiently and run the very same organization efficiently.
As an software engineer, it is easy to concentrate on innovation. After all, making the whole process computerized and optimized is second nature to engineers. However, we have to remember that there is this other function: understanding the needs and desires of the market.
Marketing is important, but is not trivial. It is challenging. Sometimes customers and sales people can offer substantial amount of information about market demands. This information is extremely important, but it is not enough. Customers and their salespeople are often blinded by their own current perception of needs. It is like Ford’s famous quote: “if I asked the customer what he wanted, he would have said a faster horse.” We need to anticipate beyond the customer’s stated needs rather than simply looking at feature lists and requests.
xkcd explains how computer people actually solve computer problems:
Another voting machine hack courtesy of ArsTechnica. The researchers were able to hack a Sequoia AVC Advantage voting machine by a sneaky buffer overflow attack:
The AVC Advantage has several characteristics that make it more secure than many other voting machines. It has hardware mechanisms that prevent it from running code from RAM. This effectively protects against attacks that involve arbitrary code injection. To circumvent this security measure, the researchers used a technique called return-oriented programming that involves co-opting bits of code that are already in the system.
By chaining together small snippets of regular code from the system ROM, it becomes possible to perform more sophisticated and specialized operations—such as redirecting votes—without having to inject malicious code. …
The cost of this effort, is scary low:
The researchers were able to devise and implement this hack in roughly 16 man-months of labor without having any access to the actual source code or non-public documentation. It worked flawlessly on actual devices during tests and could be used by a sufficiently motivated individual to manipulate the outcome of a real election. The team estimates that a comparable hack could be funded in the private market for as little as $100,000.
This is amazing research with a scary result. Sequoia is obviously trying to do the right thing by restricting execution to ROM. However, it appears that this is not even close to enough for two reasons.
Reason one: attacks only get better. If these voting machines have a shelf life of ten years, then they need to be designed to be resiliant for those ten years.
Reason two: security is an economic proposition. An election is probably worth at least billions of dollars if it could even be monetized. The hack costs only $100,000 which is quite cheap for this kind of exploit.
I blogged a few times about downturn silence. However, I was thinking about managers not talking less to directs. Manager Tools’ Podcast has a facinating podcast on the other direction, directs talking less to managers. From the summary:
During economic downturns, directs communicate less to us, their bosses. They’re more afraid to disagree, they’re more afraid to suggest different ways of doing things. This is a natural human response to the known and unknown stresses both internal and external. Look, if someone fears the changes they don’t know are coming . . . they’re not going to introduce MORE change into their portion of the universe. They’re going to hunker down or panic, frankly, in our experience.
The audio is here and is around thirty minutes in length. I think it’s good to remember that the downturn silence can go both ways and we should try to keep communication paths open.
There is a odd thing that happens when you have 23 students in a classroom. It is quite possible that at least one of them has the same birthday as another (in fact the probability is about 50%). This is called the Birthday Paradox.
This concept has parallels in cryptography, where you are counting on two people to not hold the same random numbers. I ran across a a little calculator for these kind of events:
Perhaps this is a little too “Number Theory geeky,” but I find this calculator quite cool and useful.
