Every question you ask is expensive. (Expensive in terms of loyalty and goodwill). Don’t ask a question unless you truly care about the answer.
My survey has exactly one question. It’s a multiple choice question. It asks for a fact, not an opinion. One click and you are done.
Roughly 90% of my customers complete the survey. The results have helped me focus my marketing.
If I asked more questions, less people would answer. I’d have worse data. If I had another question to ask my customers I’d ask them the new question instead of the current question. Not additionally to the current question.
I had never heard of “Uncle Bob Martin” and his SOLID principles. I had heard of Joel Spolsky. Joel dissed Uncle Bob’s SOLID principles on his blog and on his Stack Overflow podcast. Both the blog and the podcast have a huge audience amongst geeks (and God help me, I am one).
Consequently, Uncle Bob featured on a later Stack Overflow podcast. Consequently, I found myself learning a little about the SOLID principles.
So, being dissed made Uncle Bob more famous.
Remember this when your software product gets a not-so-hot review.
(Feel free to add Oscar Wilde quotes as comments.)
Years ago I flew from Mt Gambier, a town of 25,000, to Melbourne on a 14-seat plane. I was the last to board, so I had to take the only seat left – the copilot’s seat. Best. Flight. Ever. You haven’t flown until you’ve had the cockpit view the entire flight.
Two things still stand out today about the flight:
At one stage I rested my long legs on what I thought was a footrest. It wasn’t. The pilot asked me politely to take my feet off the co-pilot’s flight pedals.
The pilot had many checklists. Before taking off, the pilot went through a long checklist, checking off each item as he performed what was listed. After take-off, he went through another checklist. Before landing and after landing, he went through two more checklists.
This checklist approach fascinated me. The pilot didn’t rely on memory to do things right. He was required to specifically perform a series of steps, in a certain order, and indicate that he had performed each step.
My first few Poker Copilot releases were a haphazard affair. To put some order into the release process, I followed the flight industry’s example and made a checklist. Each time I make a new release I follow the list. The list is often changing. Sometimes I find a step is missing and I add it. Sometimes I realise that I can automate a step.
Question: Can’t you automate everything? Answer: Nah. One of my steps is to search for and destroy all print statements in my code, left over from debugging. Another is to do a smoke-test on Tiger, which involves rebooting my computer from another partition. Yet another is to announce the release on my blog. And so on. These things are best done manually, I think.
There’s currently nothing but economic doom and gloom in the media. How many times have I read “In these uncertain economic times…”, or “As the ecnomomy continues its death spiral…”?
Let’s get some perspective here. Some national economies have reportedly had a 10% drop in GDP. This is typically quarterly results projected to an annualised basis. In other words, it’s a forecast based on one data point, a guess, nothing more than the work of an unqualified soothsayer.
But let’s assume that whatever country you live in will have a year where GDP drops 10%. Let’s also assume that for the previous few years, GDP growth was 4%/year. What will be the result of that 10% drop? A return to feudal states? A post-apocalyptic waste land?
My calculations tell me that a 10% drop in GDP will result in total GDP being equal to the levels it had 2-and-a-half years ago. Was life really so intolerable back in 2006? Apart from there being no iPhone, I think I could cope with those oh-so-hard days of 2006 over again.
Sometimes I get support e-mails from people saying that Poker Copilot doesn’t detect Full Tilt Poker, although it is installed. This was mysterious to me. I’ve never been able to replicate this problem. Until now. Like a cartoon light-bulb blinking into existence over my head, the answer came from nowhere:
There are two Full Tilt Poker clients.
There’s the real money client, called “Full Tilt Poker”. And there’s the play money client, called “FullTiltPoker.Net”. Poker Copilot only knows about the real money client.
Now having identifiied the source of the problem, I can start concocting a solution.
I’ve stumbled upon a couple of online discussions on the theme of programmers reducing their environmental impact. The answers tend to be: print less, shut down computers before leaving the office, use compact flourescent light bulbs. I find these suggestions akin to treating a shark bite with a bandaid.
Here’s what bio-ethicist extraordinaire Peter Singer, recommends for people wanting to make a difference:
Reduce your greenhouse gas emissions. Use public transport, walk or ride a bike whenever you can. If you must drive, get a fuel-efficient car, perhaps a hybrid. And remember, factory farming is a wasteful form of production that requires a lot of fossil fuel, so eating fewer – or no – animal products will cut the amount of emissions for which you are responsible.
I suspect that as a vegetarian programmer you could leave your monitor on 24 hours a day and print out every e-mail you get, and still have far less negative impact on the wider environment that your omnivore colleague who follows the bandaid tips above.