This blog has been moved to

Thursday, February 22, 2007

Book Review - The Four Steps to the Epiphany

Book: The Four Steps to the Epiphany: Successful Strategies for Products that Win.

Author: Steven Gary Blank

Rating*: Recommended

Review: Perhaps one of the worst edited books I've read, but it's got great content. This book outlines how to develop a business that focuses on the customer. It defines what strategies to use at each stage of a business based on the type of market the business is in. Blank uses business that have failed as warnings to others (reminds me of a great demotivational poster).


My favorite example was Webvan and how it grew too fast, too quickly and spent too much money before proving that they had a product that could support such growth.

This book breaks down the process of building a business into many steps, each with it's own set of deliverables. The process actually reminds me a bit of agile development applied to a business process. Basically, take small bites and iterate until you are ready to move to the next stage. It's difficult to predict where the market might take you so be flexible, preserve capital, and don't jump ahead of the market (spending millions on branding is not always the best use of capital before the product is even available as is pointed out in a couple examples in the book).

What I like most about this book is the focus on the customer and market type. These are very important concepts when starting a business but are often times overlooked, especially by entrepreneurs that have a technical background. If you're starting a business and you want to succeed, you should definitely read this book.

*NOTE: The book reviews on my blog are written for developers considering starting a Micro ISV. The rating (recommended, not recommended, etc) is based on content from that perspective only.

Tuesday, February 20, 2007

Fog Creek Copilot

I had the chance to use Copilot this evening. According to the website, Copilot is remote assistance software that is easy to install and use and works through most firewalls. Of course, I put this to the test this evening.

My uncle was having some computer problems. He's fairly new to computers and has a hard time understanding the basic concepts of the Windows (every software engineer needs to talk to somebody like my uncle in order to understand how bad software usability truly is). He's been trying to install a Hewlett Packard printer and it refused to install. He didn't get anywhere with Hewitt Packard phone support, which they offshored to India (see my earlier post today, and yes, the article mentioned is written by the co-founder of Fog Creek software who makes the Copilot software I'm reviewing), so he called me.

I quickly realized that I was not going to be able to help him over the phone and he lives a few states away from me so I couldn't exactly drive to his house. I needed a remote solution. There are several to choose from and some of them are free, but the one I picked was Fog Creek Copilot. I picked it because I enjoy reading Joel on Software and they seem like a good company to do business with. They also claim that their Copilot software is really easy to use which was very important in this case.

I was happy to find they had a test drive that would allow me to control his computer for a couple minutes in order to make sure it would really work before I had to give up any credit card information (that really helped put my mind at ease about the software). I also found it ridiculously easy to install the software and get it running on my machine. Now comes the difficult part, getting the software to run on my uncle's machine.

He was having some trouble with his email and so I didn't want to send him an email about the service so I had him open up his browser and type in the URL. He had some difficulty spelling it, but he finally was able to get to the webpage. Once there he had a very difficult time finding the textbox to enter the code in. I explained to him about the green box and the white box to enter text in it, but that didn't seem to help. After several minutes, he finally figured out where to put the code I gave him. He was able to figure out how to hit Go after a couple of minutes and then he had trouble figuring out how to download the software. Several dialog boxes popped up warning him of the software (I know Fog Creek doesn't control this, this is Microsoft's bad) and I had to walk him through each one. He was finally able to connect and it worked great, for 2 minutes, the length of the test drive.

I was happy that I could use the test drive to make sure the software was going to work, but I was disappointed that I was disconnected after the 2 minutes was up. I had to close the software, go back to the website, enter my credit card information, and then get another code. This caused my uncle to have to enter a new code in and download the software again, which I had to walk him through again :(. What's worse, the other version of Copilot was still running and without being able to see the screen, I couldn't help him close it (as I mentioned, he doesn't really understand the concept of Windows). I ended up just having him restart his computer (I knew the steps to do that) and then had to walk him through all the steps to install Copilot again.

During this process he had indicated that he was having trouble viewing the fonts on the screen (they were a bit small for him) so I installed IE7 for him (the magnification feature is great for this). This required a reboot. The reboot disconnected us from the remote session. This caused me to have to walk him through the process again (by this time he was able to do some of it on his own, but not everything). Through the process of helping him, we had to restart the machine several times, each time got easier, but I still had to walk him through a lot of it.

I didn't look at other remote software out there, but my guess is that Copilot compares favorably to most other programs out there for ease of use. This test was particularly challenging and I did find some deficiencies, but overall, I was very happy with the product. I was able to talk him through the installation process, it performed well with my DSL and his cable, and it worked without any special configuration. I will definitely be using this software again.

If Fog Creek happens to read this post, here are my suggestions for improving the software...

  1. Avoid disconnects at all costs. Allow payments to be made during a session (I should be able to enter payment information directly from the software) and automatically reestablish a connection after restarting the computer (even a shortcut on the desktop would be better than having to go through the website each time).
  2. If trying to connect and Copilot is already running, either close the previous instance or use the new code. Don't fail. It may seem obvious to anybody with some computer experience to know how to shut it down, but it wasn't to my uncle and I had no way of helping him because I didn't know what the screen looked like.
  3. Make the Receive Help page easier to use. If it only had the box for entering the code, that would be useful. A large blinking arrow pointing to the textbox would have been very useful (horribly tacky, but easy to explain over the phone). Don't change the screen. I know it seems like a nice feature to allow them to reconnect to the previous session, but as the person giving help, I didn't know what the screen looked like and couldn't help him find the correct link.
  4. Provide screenshots to the person giving help of all the different screens possible that the person receiving help will see that the person giving help won't (both on the website and in the product). This could be done in a few minutes and might help out on a few of the previous issues (like the disconnect button in #2 and the connect to previous session link in #3). Put these screenshots directly on the Help Someone page to make them very easy to find. It would be nice if the page included a script as well. Being a software engineer, I may not realize that some of the terms I use are considered advanced and probably confused my uncle. If a script was provided for me, perhaps it would use more appropriate terminology.

Monday, February 19, 2007

Seven steps to remarkable customer service

Joel (from Joel on Software) had another great post today (Seven steps to remarkable customer service). In today's post he talks about how to provide great customer service and how great service with highly qualified and compensated employees can actually save a company money in the long term.

As a consumer, I know that I would rather pay more for something (within reason of course) if the company is one I trust. The company's I trust are the ones that provide great service. I define great service as a company that returns phone calls, is on time, honest, listens to my issues, and attempts to address my issues in a reasonable fashion. It seems like most service companies (at least in my area) seem to fail the first test (I can't get any landscapers to return my calls, grrr).

The company I work for has off-shored some of the development work to India, but they kept the technical support in the United States (where the majority of our customers are). This seems to make a lot of sense to me. I know I grow frustrated when I get a technical support person with a heavy accent. I always feel bad when I have to ask them to repeat something because I don't understand what they said.

I've contacted Microsoft developer support a few times in the last couple of years. I've been happy with the level of service that they have provided. They seem very committed to resolving whatever issue I may be having and will go to great lengths to resolve it. However, the support call usually starts off in India (I assume the support person is in India due to their heavy accent). The person is usually very helpful, but I often times have trouble understanding them. Of course, overall I'm satisfied with the level of support, but I would be happier if I didn't have to deal with the accent as well.

My prediction for the next big movement in customer service will be home-based customer service representatives providing support for their local region (I have heard of some companies doing this already, but it isn't wide-spread yet and the infrastructure to support it doesn't seem to be quite there yet). With telephony services the next big thing in the Internet, it's only a matter of time before some large organization has figured out how to provide this type of customer service in a cost-effective way that maximizes customer satisfaction.

Of course, based on Joel's article, this approach may not be very practical when taking a long-term approach to customer service (at least for the software industry). Having a strong feedback loop from customer service to product development is very important in improving the quality of the product which reduces the amount of customer service that is required to support the product.

Wednesday, February 14, 2007

NLog, NUnit, NDoc, NAnt. DotNet development tools brought to you by the letter N.

Do all developer tools that target the .Net platform need to start with N? Ok, I have to admit that it makes it easy to identify .Net developer tools and that I might be influenced by the naming convention when looking for such tools.

For instance, the other day I was looking for a good .Net library for logging and found a few that looked interesting. The one I decided to download and install was NLog.

NLog Project

Although I don't have much experience with NLog yet (or experience with other logging libraries for that matter), I like what I've seen so far. Within a few minutes of installing it, I was logging simple messages. I was able to figure out how to log different levels of messages (simply call different methods on the logger) and how to change what gets logged.

NLog uses a XML config file that is separate from the application config file which is very convenient for portability reasons (I can send somebody a NLog config file and not have it mess up their app settings). It also has a XSD file that makes it very easy to discover the elements and attributes that are available.

According to the website, NLog claims that their interface is similar to Log4Net (a port of the log4j framework for java by the Apache Software Foundation), but simpler to configure and use.

The main gripe I have with it is the documentation. Perhaps I just haven't spent enough time with it to understand how it's put together, but for the most part, the documentation seems to be comprised of a dump of the code comments with a couple of incomplete tutorials thrown in. Of course, lack of good documentation for development tools is as common as development tools that start with the letter N.

Friday, February 02, 2007

Beware sports fans, watching a certain game this weekend might make you a criminal

According to the NFL, watching the Game-That-Shall-Not-Be-Named (sounds like stupor troll) this Sunday might make you a violator of copyright law.

According to numerous news articles I've read lately, the NFL has asked the Fall Creek Baptist Church to halt their plans for watching the game by citing violations in copyright law. According to these articles, the NFL has stated that watching the game on a television larger than 55 inches is a violation of copyright law. I hope you kept your small screen TV around :). Apparently it's against copyright law to use the name in a promotion as well. I'm sure there is more to the story than what is reported, but I was unable to find a copy of this policy on the website for the Game-That-Shall-Not-Be-Named.

I can understand them getting upset at people that charge admission to watch the game, but it seems that this is a bit ridiculous. Does this mean you can't have your neighbors over to watch the game? You can't watch the game if you bought that 61 inch TV? I would like to see them try to enforce something like this. It would be interesting to see if a court would uphold the screen size or limit the number of guests for a party that included showing the game. Does all copyrighted material have similar restrictions?

It will be interesting to see if angering Christians just before the big game will effect the ratings. I've already received emails from people asking me to boycott the game. I certainly won't be watching the game on Sunday. Of course, I don't watch sports anyway so it's not much of a threat :).

If you do watch the game, let me know if the Go Daddy commercials are any good. I am all for the "sex sells" philosophy of advertising :). Their website includes commercials that have been rejected by whoever it is that approves the commercials (thank Gore for the Internet).