Motivation for Coders
Nice follow up to my 10 tips post by Coding Horror.
Nice follow up to my 10 tips post by Coding Horror.
Mark Cuban’s Share Sleuth is really and amazing service. He has a reporter who does in depth investigations on the shading dealings of companies. Cuban (and the rest of us) can then use these reports to make investing decisions, usually as a short. In an era where most investment reporting is a 2 minute clip on cnbc or 1000 words in the Wall Street Journal it’s a breath of fresh air to see real reporting. You’ll notice in the most recent post that the reporter even visited various physical locations to take pictures and so on. I hope the idea takes off and Cuban can expand it with more reporters for wider and more regular coverage. I’m also hoping they’ll start to focus on companies that may have more upside as well.
Our friends over at Joyent are going to start offering all their products in one bundle. So when you buy one product you get all the others for free at the same tier of service. So $15 gets you a 5 user TextDrive account, 5 user Strongspace, 5 user application access etc. It’s an interesting idea, I’m curious how this will turn out. As you can tell even from the blog post, describing this to customers is going to be very tricky.
I was thinking of this while reading the latest work happy post. I don’t know anything about the company he was reviewing and that’s not the point. The point is that he notes the company takes the “now common” less is more approach. I wonder if this concept has now jumped from good idea to even better excuse. The first time I really heard people pushing this in the web 2.0 sense was the 37 signals guys. They seem to do a good job with it. Perhaps something is starting to be lost in the translation?
I keep wondering if so many people have jumped on board now because it’s really just become an easy out for developers. “Oh, we’re not going to add that feature because we follow the less is more approach. Sorry, we feel it’s better to keep things simple for us”.
Isn’t the real trick not really to keep the software simple, but to make it feel simple? This is obviously much more difficult than an across the board less is more approach. Perhaps I’m wrong, but I’ve definitely been seeing a lot of pretty lame “less is more” software out there lately. Maybe some of these folks need to focus more on customers needs and a bit less on making their life simple.
Many of the people over at BarCamp are working on/struggling with the transition from programmer to entrepreneur. While I was never a truly “hard core” programmer (meaning lock me in the basement with Mountain Dew for a week and I’ll come out with 100,000 lines of code) I did have to make this transition. Also, doing the entrepreneur thing for the last few years with HelpSpot has really given me some insights into why many people fail at this transition. So here’s a few observations:
Code is 5% of your business
One of the biggest issues I see is developers getting caught up in the code. Spending countless hours making a function perfect or building features which show off the latest technology. Now you have to write code to be in the software business. It has to be high quality code that isn’t filled with bugs or is insecure. However, the best code in the world is meaningless if nobody knows about your product. Code is meaningless if the IRS comes and throws you in jail because you didn’t do your taxes. Code is meaningless if you get sued because you didn’t bother having a software license created by a lawyer.
I see way too many entrepreneurs in the forums and blogs talking about code issues when they should be discussing and learning about the business aspects. Of course that’s harder then talking about code, but nobody ever said this would be easy!
Design is everything, relative to the competition
Your product has to be nicely designed. Standard programmer square boxes with gray backgrounds don’t cut it! Remember though that your design only needs to be nicer than the competition. So if you’re building a back office IT system there’s no need to bring your design all the way up to the level of a 37 Signals type app. Of course it’s great if you do, but the goal here is simply to make it clear for your customers that you have the nicer design when they compare your product to the competition. People DO judge books by their covers.
Get used to thinking long term
There’s nothing a programmer likes better than turning code around fast. Getting bugs in and squashing them. The problem is that most non-programming related tasks in a small ISV don’t happen quickly. You really need to think long term. Things like getting your marketing and product positioning in place can take months to years. There’s no instant gratification like you get from writing code, so you must always force yourself to think long term. Where do you want the product, marketing, and sales to be 6 months from now?
Admit that you don’t understand the end user and rectify that
There’s a good chance that the software you are writing is in a domain you are not an expert in. That’s where the opportunities are and that’s great, but you have to realize that you need to do more than just research the market. You need to understand the actual customers. Talk with them. I know you don’t want to but it’s an absolute must. Without talking to the actual end users you’ll never know what features you’re wasting your time on and which ones you don’t have that are critical.
A big mistake people make here is implementing the feature set of the competition to get started. That’s a bad move. It’s like when you copy your friends homework. You both end up with the same mistakes. By talking to the customers you can avoid the mistakes your competition has already made.
Love your customers
Many software developers come from a back office IT background. In most of the IT shops I worked in there was generally disdain for the customer (internal customers). It’s not surprising since IT is often asked to do far too much with far too little.
It’s time to put all that aside though. I see a lot of ISV’s who seem to carry this over and there’s no place in commercial software for it. The only way to be successful is to love your customers. That means meeting their needs as much as possible and going to great lengths to do so. When you can’t you need to explain why. When they choose a competitors product be respectful and remind them the visit you again if that product doesn’t end up meeting their needs. I’ve found that I’ve switched lost sales back to me simply by being nice to the customer on their way out the door.
Remember to design for ease of use. Even advanced users like easy.
Your user interface is no place for fancy technology tricks. Keep is simple. Advanced users love simple just as much as newbie’s. The most important reason to keep is simple is for your trial users. A trial user is only going to give you a few minutes of their time. If you waste it by making them figure out a complex interface you can bet they’ll be off looking for another solution.
Remember to bounce your ideas off people who aren’t working on the project
Make sure to always take time to show off your latest builds to someone who’s not very involved with the project. Fresh eyes will often find big holes in your user interface. Even if the person doesn’t know much about your domain, you’ll be surprised at how many issues they’ll point out that you’ve never seen before!
Don’t be afraid to pull things out
There’s nothing I hate more as a programmer than pulling perfectly good code out of an application. Alas, you’re going to have to do it. Through the process of developing you’re going to discover features that should never have been. Ideally you’ll find this out before actually shipping. When you find these features you need to pull them before they cause any trouble.
For example, when I was half way through developing HelpSpot I discovered that one of my features just wasn’t working. I had built this tool for importing customer information into HelpSpot. This was a bad idea because it basically turned HelpSpot into a half baked CRM. It meant my customers would have to keep HelpSpot in sync with their real CRM and generally made the UI more complicated. So I scrapped a few weeks of work and pulled it out.
It turns out to be one of the best decisions I made. Rather than the syncing I came up with the Live Lookup system which allows customers to run queries against their existing CRM from within HelpSpot. It’s turned out to be a unique feature which is used by the majority of HelpSpot installations very successfully.
Patience is a virtue
There’s invariably a lack of time to get all the things done you need to. What would normally take a day takes weeks. Try to learn patience. I’ve found that I have to actively work at this or I get frustrated that I’m not making enough progress. Avoid setting up dates and expectations with your customers when possible. Don’t promise something in a month if it might take 3. I’m still working on that one myself 🙂
Treat it like you are learning to program all over
Remember when you first learned to program and you read every book. You bought 8 different books on that first language all of which basically said the same things but you read them all anyway because you couldn’t get enough. That’s how you have to treat the transition from programmer to entrepreneur. Read everything you can get your hands on about your target market, running a small business, marketing, general management, time management. Ideally you should read it before you even start coding. The mistakes you’ll be able to avoid by doing so are well worth the time commitment.
As always I look forward to your feedback. If you have made this transition yourself, please add your tips for others to learn from.
For a long time I’ve wanted to experiment with mini sites, basically a one page site on something. It seems like if you can pick the right niche that the site could be useful in driving sales. The trick is to pick the right topic which intersects with your product, but covers a slightly different group. You don’t want something which will compete with your main sites rankings in the search engines. The mini site should reach someplace new. So for months I’ve been looking for the right topic. Something that would be static to keep the maintenance down but could still produce results.
While taking a look at my logs and their relation to my sales I noticed an interesting trend. I received a lot of traffic and in turn sales from searches for open source help desk software. This is kind of curious because HelpSpot isn’t open source, in addition my blog topics on the matter are relatively few and generally very off topic. Few of the posts have open source help desk software as a primary part of the post.
So I go to thinking about this and did a little research. It turns out there aren’t really any good lists of open source help desk packages. Most are very outdated. Almost all are little more than spam sites with dozens of ads in and around the few measly real links.
Another thing that intrigued me was how many people who started out searching for open source ended up buying HelpSpot. Also by looking at who purchased I could get a feel for their intentions. With that data I came to the conclusion that many of these searchers weren’t really looking for an open source solution at all. They were settling for one. They had likely searched on just ‘help desk software’ and found that all the ads and top listings are for products in the $50,000+ range (remember it’s as high as $35 a click for those homepage ads, lots of competition).
Finding the middle tier market is hard. What do you type, medium priced help desk software? Not going to work. So they fall back on searching for open source and are so desperate to find any decent information that they end up clicking on my relatively unrelated blog posts.
Hence, I’ve decided to make my first mini site a very clean simply directory of the primary open source help desk applications. I see this as a win win for everyone. Here’s why:
Searchers can find a site with real information and clear links to the resources.
Open source applications get a site that actually links to them rather than simply using them as bait to trick searchers into clicking on links
I get to place a few simple clean ads on the site that lets people know I exist and that there are mid price products available.
Without further ado I give you the
Open Source Help Desk List.
I’m still tweaking the content and as always suggestions are greatly appreciated. I’m not sure I like the help desk articles on the right. Also if you see any major applications I’ve missed please let me know.
Finally, I’d love to get a few links to this new resource to kick start it. If you like the idea please say so with a link!
Charlene Li of Forrester is working on Calculating the ROI of blogging. He’s focused on medium to large companies, but I thought I’d put my 2 cents in anyway with some hard numbers. I’m just going to show direct sales of a few popular posts, I’m not digging into the long tail (yack) of all my posts.
One example of a great ROI post is the one I did about the designing of the UserScape and HelpSpot logo’s. This post created lot of beta testers for HelpSpot, who eventually turned into customers. More to the point though, this post created lots of business for Mike, the fellow who designed them. Conservatively I’d guess he made sales of $10,000 – $15,000 directly attributable to that post.
As for my own sales, the top 5 sale creating blog posts on this blog generated the following revenue numbers:
That’s $20,446 in sales directly attributable to just those 5 posts. I’d also mention that none of the posts are articles, just average posts. So a moderately successful blog can create lots of value for a business just in direct sales. Of course beyond the money you have the general good will blogging creates, new contacts, and word of mouth all of which are much harder to calculate.
Nick Bradbury points over to Steve Gillmor today and notes that Steve has been on a roll and points specifically to the article, “No Prisoners” as being one of his best pieces in a long time. Citing it as “some of his most coherent posts in ages”. Now, I’ve tried to follow all this attention stuff (apparently now called Gestures?) and I’m sorry but I just don’t get it. I don’t see the revolution. The article linked above makes no sense at all to me, I find it barely readable. Perhaps if I understood the point of attention/gestures it would make sense?
So can anyone out there help me out with why my RSS reader tracking what I read is so cool? Is that all this really is? Doesn’t this system seem to wrongly equate attention with enjoyment? Help…..