Before I fell into the world of shareware, I worked in the bowels of corporate America developing client-server applications. And I hated it.
Perhaps the thing I hated the most was that I rarely talked with the people who ended up using my software. I was given a list of requirements, told what was expected, and that was it. I never found out whether my work met the needs of those using it, never got to ask them how I could improve it, never knew if my software was a blessing or a burden to them.
Apparently that was smart business, because the companies I worked for charged their clients an obscene amount for my work. But it was a lousy way to write software. The whole point of writing software is to create something useful – to create something that, even if in a small way, makes someone’s life better. And how can you know whether you’re doing that if you don’t talk with the people who use your applications?
I broke out of corporate development by getting lucky with HomeSite, which I never expected to become as successful as it was. Looking back, it’s clear that its success wasn’t because it was a "killer application," but because I opened the floodgates and directly communicated with my customers. By talking with customers I helped ensure that it met their needs, which is the best any developer can hope for.
It seems so obvious: if you want to develop software that’s useful to people, you’ve got to talk with them. But too many developers take the anti-social approach and consider customer support to be beneath their status. Besides, talking with customers would distract them from important code-slinging.
Look, I can understand that viewpoint, especially if you’re working on something that’s very popular. You can’t create anything if you spend all your time doing support. But avoiding support completely is a big mistake.
If you've never supported your own software, spending just one day doing tech support will be an eye-opening – not to mention humbling - experience. You'll have to keep your ego in check, because most people who contact tech support do so because they're having problems with your software, some of whom will use colorful language to describe the annoyances they're running into.
But that's the stuff you need to hear. You need to hear it because you're the one who can solve those annoyances. You're the one who can get rid of all the things that prevent your software from being that kick-ass program that people recommend to their friends and co-workers.
You also need to hear an unfiltered view of what people want your software to do for them. If you rely solely on your tech support team to tell you the features that customers want, chances are you'll develop those features without really knowing why people want them.
And that's not meant as a criticism of your tech support team. When NewsGator was still doing tech support for FeedDemon, they did an excellent job of answering people's questions and forwarding feature requests to me. But I would still follow-up with customers to figure out exactly why a feature was necessary, and quite often it turned out I didn't really need to add a new feature, but instead needed to change how an existing one worked. A lot of feature requests were the result of people being annoyed with how an existing feature worked, and they wanted some way to get around it.
If you really want to write useful software, stop spending all your time keeping up with technology. Don't worry if your resume isn't filled with the latest buzzwords. Instead, invest your time in talking with your customers. They don't care what programming language you use - they only care whether your software meets their needs, and the best way to ensure that is by breaking out of your cone of silence and opening the lines of communication.
wow.. never realised you developed HomeSite (I only knew of TopStyle, as it came bundled..). Just want to make the comment that whenever I do a fresh OS install, HomeSite is still on the list of apps that get installed on my dev machine.. tried many of the other text editors, but the "sitewide search and replace" with Regex just works so well in HomeSite. Thanks for a great product (even if you do hate the UI ;o)
Posted by: Sean Carnell | Saturday, June 27, 2009 at 10:05 PM
Amen to that, I'd go a stage further and suggest that it's even better practice to have your support be open, so that other potential customers can see how you treat existing customers.
Theres a particular piece of software I purchased a couple of years ago to aid me with auction listing, that despite being extremely slick, had a couple of shortcomings. I emailed the developer and effectively got short shrift. He may well have rolled my suggestions into one or other of the paid for updates that have come since, but I'll never know since I have no intention of ever purchasing from there again. If they would provide a forum for open discussion of their products I would have a great deal more confidence in them and may well have purchased a couple of their other products which look amazing and I'm definitely in the market for.
Posted by: Lee | Sunday, June 28, 2009 at 04:29 AM
I think you've massively underestimated how good Homesite was back in the 1990s. I tested every piece of Windows software I could find in 1996/7, and Homesite was by far the best. I used v1 onwards right through to the most recent versions.
The UI was outstandingly wonderful. I never ceased to be amazed by how poor the Homesite+ version that was eventually part of Dreamweaver was compared to the standalone app.
You created something in Homesite that lacked a pretty UI but had an extremely functional and practical UI, with a lot of attention to detail.
Posted by: Ian Fogg | Sunday, June 28, 2009 at 06:33 AM
Trite but true about the best advertising being word of mouth, and as we've learned over and over, the best way to keep that going is with active support. Refreshing to see that pride in craftsmanship is still out there and appreciated. The observation of trying to keep up with the technology is very interesting; I suspect all of our customers don't care if our products are made of wet spaghetti so long as they work.
Chuck Brooks
FutureWare SCG
Posted by: Chuck Brooks | Sunday, June 28, 2009 at 09:48 AM
@Sean: great to hear that you're still using HomeSite! Of course, I have to recommend that you give the new TopStyle 4 a try - it's like "HomeSite Phase II," and it's what I use for editing HTML/CSS.
Posted by: Nick Bradbury | Sunday, June 28, 2009 at 09:49 AM
@Lee: That's an excellent point about having open support forums, and it's one I should've included in my post. I've had open support forums for each of my applications, and they've been an enormously important factor in their success.
Posted by: Nick Bradbury | Sunday, June 28, 2009 at 09:50 AM
@Ian: Thanks for the nice words about HomeSite's UI :) In truth, it's not that I dislike HomeSite's workflow or layout - it's more that it looks so dated now, and also that there are so many little things I'd do differently now to make it look better. But I still like the way it worked.
Posted by: Nick Bradbury | Sunday, June 28, 2009 at 09:52 AM
I wholehartedly agree. Even though these days I have a dedicated tech support guy, I still review the customer emails almost every morning (most arrive by night due to time zone differences) to see what's causing trouble for our clients. Also, we set up a Uservoice-like feature suggestion/voting system that provides excellent feedback.
Posted by: Peter | Monday, June 29, 2009 at 05:16 AM
Nick, just FYI, Firefox displays a JavaScript popup with HTML source code after posting. The HTML is actually from our gateway that says "Host not available" - I guess it's some sort of Ajax-ish stuff that goes wrong. A bit weird way of handling errors anyway.
Query [edited] ==
http://nick.typepad.com/.services/json-rpc
POST /.services/json-rpc HTTP/1.1
[...]
X-Requested-With: XMLHttpRequest
Content-Type: text/javascript+json; charset=UTF-8
{"method":"Post.LookupByTypepadId","params":[{"typepad_id":"6a00d83451863669e2011571740939970b"}]}
Response [edited] ==
HTTP/1.x 500 ( The specified network name is no longer available. )
Via: 1.1 our-gateway-server
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
Content-Length: 4160
Posted by: Peter | Monday, June 29, 2009 at 05:55 AM
And for those of you who care about such things, HomeSite is now officially dead - thanks Adobe: http://www.adobe.com/products/homesite/
And (without any irony) thank you Nick for having produced the programme that I still use every day. I still don't think anything has bettered it.
Posted by: Roy Reed | Monday, June 29, 2009 at 09:11 PM
@Roy: Would you believe I didn't know HomeSite was discontinued until I read your comment? I'm actually very surprised they kept selling it for as long as they did , especially since nobody has worked on it for years.
Posted by: Nick Bradbury | Monday, June 29, 2009 at 11:50 PM
Just wanted to say thanks so much for the software you have provided over the years!
I still use Homesite at work, but I saw today that Ado has finally admitted its no longer being developed and is at end of life as of June 09.
Thats a pity. as they obviously don't get the idea of small downloads and small, light software.
But it looks like I need to dig into TopStyle further, with a new 4.0 release ..!
Again, thanks again for supporting your base over the years - its obvious that you get it!
Posted by: Heather | Tuesday, June 30, 2009 at 05:53 AM
HS hasn't been updated since v5.5 (released September 2003). Macromedia were working on v6 - I was on the working group - and there were some really good ideas for the new version, but then it went away and since Adobe took over - nothing. I've got the new version of TS, but I haven't really clicked with it yet.
Posted by: Roy Reed | Thursday, July 02, 2009 at 06:04 AM
I miss homesite. It was a nice, simple editor. Dreamweaver is great but it attempts to do too much (for me).
Posted by: Rick - FeedUs | Wednesday, July 15, 2009 at 11:55 AM
But too many developers take the anti-social approach and consider customer support to be beneath their status. - That may be true for a certain set of devs, but I would like to add that there are those who do want to know what their end users are doing|thinking|wanting but are blocked by the business for various reasons, including - the techy can only speak tech (apparently), the techy knows tech and has no real-world appreciation|awareness|experience|exposure of or in the business domain, etc. Not to mention the fact that if a techy shows them up | does their job equally, then..
Anyway, a good developer should understand the ins and outs of a given domain so as to model it and so forth, thus gaining a perspective difficult to achieve from the outside, which is valuable in itself. I would like to stress that of course most people can do anything | master a subject, provided they apply themselves. But if it is not part of their job description, well.. that is initiative and a whole other post for you, Nick.
Posted by: Darren | Thursday, July 23, 2009 at 09:46 AM