December 13, 2006 Simplicity in Software Simplicity and the backlash against it seems to be a big theme over the past week or two on the blogs. The one that captured my sense of simplicity the best though is this post by Nick Bradbury. See I’m not a believer in making software simple just to be simple. Even at the 1.0 stage a product still needs to accomplish it’s objectives and often that isn’t something that can be done with 3 screens and 2 forms. For example during HelpSpot development I considered not adding the portal features. Instead I would just launch with the email management and assignment. Luckily I decided against that though as it just didn’t accommodate everything that needed to be done on a modern help desk. It would have been a huge mistake and could have cost me a large percentage of my current customer base. Now what Nick is getting at though is something I definitely believe in. He’s talking about smart feature selection and knowing when to leave features out and doing so to make your product a better product. In his case it’s to reduce support and perceived bugs with the software, but in my case it’s all about reducing complexity smartly. HelpSpot is a pretty complex tool and one of the big challenges I face is getting new users up to speed. Both new potential customers and just as importantly training issues for new employees of existing clients. I also need to keep things as efficient as possible for staff as they go through answering support requests. Part of doing this was leaving out a very large feature, which is CRMish functionality. Almost all help desk solutions contain some type of customer database system. Some have full blown CRM, others just store your customer database and have some limited functions. The problem with this from my perspective is two fold. A) You have all this extra customer data stuff in the interface making things way more complex. B) Most companies already have a customer information solution. This leads to having to merge data between that system and the help desk customer database. So what I decided to do was leave out those features. By doing so I was able to devote more complexity to actually handling customer requests while still keeping overall complexity low. In my case I also added a very simple API which allows customers to hook HelpSpot with their existing CRM so they can still access all the customer data in one button push. But to me the big take away for other software vendors is that you should be using simplicity in one area to increase complexity in another. Think of your simplicity savings as credits that then allow you to devote more complexity credits to areas which are more core to your software and make for a more powerful customer experience.