Extended warrenties and undercoating

I've been wanting to write this rant for a while. I hate extended service warrenties. They are pure profit for the companies offering them (hence the high pressure to sell them to customers) and fundamentally communicate to customers that products are low quality.

A couple years ago a friend (Erick) and I went to our local large electronics retailer (I'll call them "Better Buyer" to protect their identity) to pickup a XBox for a friend. At the time, I would imagine that amoung my close group of friends we owned probably 10 or more XBoxes - several had more than 1. Better Buyer was actually a close partner to Microsoft, so I was shocked when the clerk at the end of the line said "Yeah, these XBox units have a hard drive, which makes them fail a lot. I've seen a bunch getting returned all the time. For an additional $50 I can sell you an extended service warrenty which will cover it."

Wait. I've never heard of any of our hard drives failing. Not once. I lugged my XBox in a back pack once or twice a week, I've taken it on a boat, hosted XBox parties, etc. To have this jerk implying that a great product (I love my XBox) is crap just to make a lousy sale really pissed me off.

Then there is the car purchase process. You buy a car and the sales dude (or dudette) tells you how great the car is, and reliable, and safe, and quite, etc. So you decide to get the car - at which point you go into the "back room" to talk with the finance dudette (or dude). They then proceed to tell you that the car needs undercoating, fabric protection, and an extended warrenty. My favorite move at this point is to throw out comments like "My salesperson told me this was a reliable car and would last for a long time, did he lie to me?"... or ask to bring your salesperson into the finance office and get the salesperson and finance person to agree - is the car quite or not? will it last or not?

I hate this game. It's business trying to rip off customers that don't know any better. When I worked retail software we were encouraged to sell "extended service programs" after being purchased by a conglomerate. I never did well on my ESP numbers because I wouldn't tell people that the products we sold were crap.

Fear

"the only thing we have to fear is fear itself" - Franklin D. Roosevelt

Fear can run your life. There are good books about this, like the Culture of Fear. There are movies about this, like Bowling for Columbine. Fear comes in many forms and many sizes. Fear can make you anxious, angry, sad, frustrated, or... well, afraid. People fear being late, missing a meeting, loosing an opportunity, having their house be flooded, not having a good party, having people not like them - it all boils down to basic fear.

I went to the skate park on Tuesday night. I stood at the top of a short (less than four feet) tall ramp (less than 45 degrees) and was unable to convince my body to go down the ramp. Eventually, by the end of the night, I had convinced myself to go down a lesser incline, which let me convince myself to go down that incline. I had a blast. It was fun. I managed to conquer my irrational fear.

Tonight I drove home from a friend's house thinking about my sump pump. What happened? Did the sump pump fail and is there 4 feet of water under the house? Of course, I was on my way home from Erick's house - will Randy be upset that I ended up at Erick's even though I was originally planning on going over to Randy's place? (of course, I called Randy at 8pm, but there was no answer)...

The sump pump is still working fine. I sustained no serious injuries at the skate park. I'm sure Randy won't be upset in the morning.

Fear.

What is the worst possible thing that could have happened? There could have been water in the crawlspace (there was over 3 feet of water in there before!). I could have broken an arm at the skate park (I've had two broken at the same time before!). Randy could be angry with me (I'm sure it's not the first or last time!). Fear is not productive. Fear is not helpful.

Respect is the key.

Respect the power of the elements on your house. Water can do damage. I let myself get lax on getting the sump pump inspected after the big rain earlier this year. Respect your body. Taking needless risk is bad, however going down a minor ramp isn't a big deal. Respect your friends. I had already talked with Randy about not showing tonight, I called, I didn't casually blow him off for "something better".

While fear isn't productive, having a healthy respect for the consequence of any action is a good thing. It isn't healthy to be afraid of driving through any neighborhood in Seattle. There just aren't scary enough places to truly be afraid of. At worst you have to give someone your car. That just isn't a big deal. Possessions are not worth your fear.

Live a life free from fear.

This doesn't mean to do stupid things. You must respect the scarce resources that we all get - friends, family, health, life. My friend Erick often talks about "prepaying" for bad things. For example, when you buy an alarm system for your house your are effectively prepaying for someone trying to steal from you. You shouldn't have to set an alarm when you leave the house, and you certaintly shouldn't have to pay a company to monitor the alarm for your house. Assume that people are good. I drive a convertible. I often leave the top down. I have yet to have anyone even take the change out of the cupholder in the car.

People are actually good. The neighborhood you live in is actually safe. Your friends actually like you. Your family actually loves you. You possessions aren't actually important.

Beyond fear is freedom.

Education and teaching

Joshua's post got me thinking...

Note My wife is a teacher, so I obviously have some prejudices...

What do we ask our schools to do? Do you want a school to babysit children while they get old enough to start working? Do you want schools to be responsible for the moral upbringing of our children?

I believe that education is a priveledge, not a burden. I believe that schools are their to provide the opportunity for students to learn. Learning is an active task, you cannot force someone to learn something. You can make them memorize and parot back facts, but they have to want to learn.

Fundamentally I believe that most of the "problems" we have in schools todays are due to parents - not teachers or administrators or politicians. Parents treat schools as a dumping ground. They continually demand more and more special treatement for their children. The number of "Individual Education Plans" (IEP) seems to be skyrocketting (I don't have data on this, so I welcome any corrections).

Basically an IEP gives the parent the chance to tell the teacher the right way to "teach" their children. Give me a break! The problem is that students that refuse to learn, and the parents that don't value education enough. They either see education as some sort of right of passage or a tax to pay before getting into a high paying job. When you show up for work on your first day in a "real" company, I would love to see you give an "Individual Work Plan" (IWP) that specifies how many hours you will work and under what conditions.

Giving kids the unreasonable expectation that they will be catered to and can dictate the terms and conditions of their environment does them a huge disservice. Most teachers have 140+ students that they see in a week. How can it possibly be fair to each of those students to require the teacher to have a customized learning plan for each student - it just doesn't scale.

Then you have the whole moral issue. If a student is caught cheating, the most likely response a parent will give is "Little suzzie didn't mean to cheat"... or "Little Johny didn't cheat - he just copied the text of that essay from a web site". Parents defend their children when they cheat. Parents seem to require the schools to be completely amoral - never presenting a "right" or "wrong" - however when a moral situation arrises (like cheating), the parents don't step in and set the moral compas for the children.

Life is not fair. Education is a priveledge. Parents are responsible for their children.

1,000 points of API design

Been talking with Anders Hejlsberg recently about new technologies and APIs… he made some great comments about 500 point APIs, from which I based this rant…


Why is it that technology companies feel that a new API will solve their problems? You need to look no further that Microsoft’s data stack to see examples. We went from DAO to RDO to ADO to ADO.NET. Of course, these were based on an underlying implementation of ODBC then OLEDB and finally .NET managed providers. I know that the teams had great reasons for each of these changes. You can see the same parade of technologies in almost all fields.

Before any API is obsoleted and replaced there should be a simple test. Your new API starts with a score of -1000. Once you have come up with 1000 or more positive points about the new API, then you can create the API. Today we are plagued with too many 500 point APIs. They have a lot of great features, but often they don’t justify the amount of API churn.

I would argue that .NET was a great example of a better than 1000 point API. .NET gave developers a great managed code environment with cross language support, ASP.NET, WinForms, and web services. The value of managed code justifies the new API.

Everyday technology teams are faced with tough customer problems to solve. They have continued request from developers for new APIs, features, and solutions. Probably one of the biggest problems developers face today is complexity of their developer platforms. At Borcon last year James Gosling made the comment that J2EE had become so complex that most developers should ignore pieces of it. Of course, the only problem that a new API can’t solve is the problem of too many APIs.

Everyone wants to work on new exciting clean APIs and tendency to reinvent the wheel is always present. Every new API is the one that will solve all the problems. The next new API is the one that will last for the next 20 years. Each API is the abstraction layer that other APIs can plug into. It’s like metadata for metadata for… eventually you need to have real data!

The problem with trying to fix the API proliferation is that it requires you to have a much more rigorous process for creating APIs. This process makes development take longer. With customers screaming for features, competitors constantly at your heels (or getting farther ahead), and stock holders wanting something new to drive up revenue it can be hard to take the high road and design APIs that can last. In addition it means you have to stick with the decisions you make.

There are times when your customers will ask for exactly what they don’t want. Designing high quality APIs is a balance between delivering timely customer value and producing carefully crafted long lasting systems. The challenge for anyone developing software is to walk this line carefully.

Meeting Etiquette

My frustration with meetings is increasing… I believe that on a daily basis I violate each of the issues listed below… I only hope that by publicly taking a stance against these evils, that I will be forced to fix my behavior...

Laptops at meetings...

Why do people attend meetings when they aren't going to contribute? I can understand if the entire point of the meeting is to disseminate information. All too often I see a meeting where, as everyone sits down every person opens their laptop and promptly begins browsing their email or the web. Before anyone points out the obvious - I have been guilty of this also. I recognize this is a problem, and I try to stop. The wireless network has brought us unparalleled connectivity, but (to quote spiderman) with great power comes great responsibility.

Being on time...

Being late to meetings has become so commonplace that people will only comment if you are ten minutes late - five is expected. Of course, to fill the time gap while we all wait for you we at least can check our email. :)

Scheduling meetings...

Schools long ago figured out that it actually takes humans time to travel from one location to another. They respond to this requirement by making each class 50 minutes long starting at the top of the hour. This gives each student 10 minutes to travel from one class to the next. Since no one (well, including me) has the curtsey to do the same this guarantees that you will be late for the next meeting.

What about core hours? In a company with no required schedule, people widely vary the time of meetings. Amar (sorry, his weblog is offline) scheduled me for a meeting tonight at 6:00pm. I couldn’t understand why he would schedule a meeting so late - I started the day at 8:00am after all (and I’m trying to have a home life). Of course, for Amar (who started his day at 10:00am) a 6:00pm meeting was clearly in the middle of his day. In an industry where people can work any hours they like, how appropriate is it to limit meetings to the times when “you” are comfortable?

Meeting purpose...

People should know the goals and objectives (and hopefully agenda) of a meeting before you ask them to attend. Brainstorming, Reviewing, and Information Briefing meetings are very different and need a different audience. I have seen more meetings where someone decides that every “reviewer” needs to attend the “brainstorming” meeting - making the invite list for a brainstorm meeting be 20 people... not very productive for brainstorming.

Preparing for a meeting...

If you are going to attend, you should be prepared. If the meeting is a review - read the material before hand. If the meeting is a brainstorming meeting, try to spend at least 5 minutes before you get to the meeting (maybe in the morning, when reviewing your schedule?) to think of a few ideas. You are invited to meetings to participate, not to take up space!

Ending a meeting...

When a meeting is about to end (which should be as soon possible, not when the scheduled time is up), a few things should happen… Notes that can be read and understood by people at the meeting should be posted to a public (well, public to the organization/context that the meeting was help in) location… Tasks should be assigned to specific individuals with due dates, expected deliverables, etc... Decisions should be broadcast to all affected

Email Responsiveness

I'm not sure if this is a universal truth or not, but I suspect it is.

People can't manage their email.

This isn't a spam problem or tool problem. This is about people that don't understand how to deal with mail in a timely fashion and manage their time. I have seen people that proclaim proudly that they have 4,000 messages in their inbox with 1,000 unread items. It must make them feel important to be so popular?

It is time to take a stand. We must demand action.

Jeff Bogdan (a coworker) and I have been trying a new system. We basically compete with each other to keep our inbox as small as possible. We read mail several times a day and try to respond, file, or delete each mail as we read it. The goal - less that 20 messages in your inbox.

It's amazing - Once you get your email under control the frustration you feel when someone isn't responsive to your mail is even worse. We are hoping that we can use shame and humiliation as a tool to convince others to follow our lead on agressively managing mail.

This is such a huge deal at a company like Microsoft. We communicate almost exclusively through email. It is not uncommon for people to get 200 mails a day, with some people toping at over 500. I'm sure that many other large companies out there are the same way. People get bogged down in mail, stop responding, and next thing you know you are always walking down to someone's office asking them to read you mail right away. Or, even worse, you start tagging every mail with a !

  1. Read mail several times a day (not continuosly, but also not only in the AM or PM)
  2. When reading mail try to respond, file, or delete the mail when you first read it. The goal is to touch each mail only once.
  3. Use Outlook (or whatever program is your favorite) to auto-file large mass mailing lists into folders so that they don't pile up in your inbox and hide important mails.
  4. Keep less than 20 mails in your inbox.

Next soapbox... Meeting etiquette, but i'll save that for later.