Fishing For Customers

December 31st, 2009

Dan Wood has picked up on something I said in Core Intuition 19, about how running a business and attracting customers can largely be seen as an exercise in extracting as many fish as possible from the proverbial customer sea.

Mac Indie Marketing Blog: Fishing For The Big Picture

Dan does a good job of summarizing my version of the metaphor, which is essentially a mental model that customers will always be swimming by your offerings. Whether they get stuck on them or not is mostly up to steps you take to make the software more attractive, functional, and engaging. If they swim away, don’t worry. A new fish will swim back around, and even that “one that got away” is likely to come back to your part of the sea eventually.

But Dan turns the metaphor around, suggesting that when customers go actively seeking for a specific solution, the products should be viewed as the fish. The software or other solution is being fished for by a customer, so you want your product to stick to the hook, instead of somebody else’s.

We’re just dealing in metaphors here. At the end of the day we’re talking about products for sale and the desires of users. We want their desires to stick to our products. To that end, while I find Dan’s inversion interesting, I think it’s simpler to continue with a single model where customers are the fish (no offense intended!).

We don’t need to invert the model: if a customer is seeking out specific solutions or styles of application, our fishing metaphor already has an answer for that. It’s called bait! To recap, at any point in time, you’ll maximize your haul of new customers by:

  1. Having a net in the water.
  2. Having as large a net as possible.
  3. Having as few holes in your net as possible.
  4. Placing attractive bait in that net.

As a vegetarian, I really should have called this metaphor “Fishing For Tofu,” but I know that most customers would be even more offended were they identified as “the tofu.”

Open Source Obligations

December 30th, 2009

One of the beautiful aspects of open source software development is that individual contributors are, generally speaking, under no obligation to contribute their work. People who find time on their hands, and an inspiration to do something great, write some code and share it with the world. End of story. Or at least, that’s the way I see it.

Jeff Atwood is pissed because John Gruber hasn’t been a “good mommy” to Markdown.

Disregarding whether the accusations are true or not, it pisses me off when somebody is criticized for giving something away, yet somehow not giving enough. What part of FREE don’t you understand? Somebody, in this case John Gruber, wrote something great, and gave it to you for free. It’s a technology you would not have access to without his generosity, and which you could not even obtain commercially, had he chosen to keep it private. A completely new, compelling solution which is available to you because one man had the community-serving idea that it should be open. Are you getting my drift?

I grew up in Santa Cruz, California. A city famous for its hippies, vagrants, and college students. (At some point in my youth I aspired to fit into each of these classes of people.) One day I was walking down the main downtown strip, Pacific Avenue, with a half-finished paper cup of coffee in my hands. A panhandler yelled out to me: “Can I have your coffee!?” Feeling generous and well-caffeinated, I surrendered my cup and strolled off. Moments later, the man shrieked after me: “There’s no whisky in this coffee!”

You can’t please everybody. In the open source community, and in the larger community that consumes open source goods, there will always be complainers. For some people, free simply isn’t good enough.

I believe that anybody who gives away the results of their hard labor for free should be praised. By no means should they be expected to contribute more than they already have, or to bend to the screeching whims of their consumers. If you don’t like all of what you’ve received, take what you do like, and modify it to make it perfect. Take the free cup of coffee, and add your own damned whisky.

FastScripts 2.5

December 29th, 2009

Today I released an updated version of FastScripts with some pretty cool features and bug fixes:

  • Now supports running plain-text .applescript files
  • The FastScripts menu icon can now be changed to a custom color
  • Alter appearance of menu so it doesn’t have rounded top corners on 10.6
  • Bug Fixes
    • Fix glitches with “Smart Switching” on Snow Leopard 10.6
    • Fix processing of shell script arguments embedded in the “shebang” line
    • Fix a possible crash when changing mouse cursor while selecting from menu
    • Fix proper display of filenames e.g. when they contain slashes

I struggled with the question of whether to allow for colorizing of the menu bar icon. I think personally that all icons in the menu bar should be monochrome and approximately black. But the chorus of feedback from people with legitimate accessibility concerns prompted me to give in and provide a preference to set the color of the icon to any color you like. Yes, you can now make FastScripts hideously ugly, with a simple preference change!

Most of the other changes should be obvious from the outline what they imply. The “smart switching” fix will be a welcome change for anybody who started noticing on 10.6 that FastScripts would no longer always become active to make sure a dialog is presented in front of all other windows. I think I’ve come up with a solution that will now withstand the test of time. Special thanks to Mike Ash for a giving me a very helpful clue for solving this issue.

The biggest change from a development point of view is one of the most subtle to the user. Here is the FastScripts 2.5 menu:

And here is the old FastScripts 2.4 one:

The rounded corners in the old version weren’t too terrible, but there was clearly something wrong. Small blemishes such as this are like a dent in the side of a used car. Is it the only thing wrong with the car, or does it reflect an owner who has not taken care of it, inside or out? Now the FastScripts menu projects solidity and reliability, reflecting its core functionality. Thanks to Nicholas Riley for pointing out this issue and inspiring me to finally fix it. He also reported the issue with script names not being displayed correctly.

An interesting developer side-note: the explanation for the rounded corners are that up until FastScripts 2.5, the menu was entirely Carbon-based. So what you are seeing is a Carbon “pop-up menu” cleverly positioned so that it shows up exactly in the spot where a real menu would appear if I were using one!

When I first developed FastScripts, Cocoa’s menus were not sophisticated enough to handle all of the functionality I needed. So I used Carbon menus inside what is otherwise a Cocoa app. Fortunately I had the foresight to develop NSMenu and NSMenuItem style wrappers for the Carbon menus. Now that Cocoa menus are suitable for my needs, I was able to essentially remove the wrappers and write directly to the Cocoa menus API for a more integrated look (and less code to maintain, down the road!).

Payback Time

December 23rd, 2009

Several weeks ago, I put together a seat-of-my-pants promotion called One Finger Discount. Over the course of a week, I facilitated the listing of software being offered at a 20% discount for a limited time. I did this because I was inspired to leverage the enthusiasm for software generated by MacHeist into something that might also benefit many other developers.

The response was so overwhelming, that a day into the promotion I realized I would not be getting much work done. I spent most of the following week keeping up with new additions to the promotion, and trying to update the web site to be more useful and attractive. I worked my butt off and didn’t take a penny from any of the participating developers. It just felt great to be doing something and getting the word out about smaller software shops.

When the promotion was over, I got a few really heartwarming notes of thanks from various developers who had taken part. I also ended up selling quite a bit more software last month than I do in ordinary months. Word from developers was that they had likewise seen significantly improved sales. We all win!

Today, with memories of One Finger Discount fading, I was busy coding away on MarsEdit, when my wife knocks on the door with an important looking envelope. Air mail from Canada? Hmm, what could it be? I recognized the name on the envelope as Dan Messing of Stunt Software, a friend of mine and fellow indie developer. Inside, I found two cards:

A thank you card? But what had I done for Dan lately? Even the tell-tale white hearts on pink didn’t clue me in that it was One Finger Discount related. It wasn’t until I opened the Thank You card, and noticed that it was in fact a 10 page booklet containing dozens and dozens of personal thank you messages from a large number of One Finger participants:

Holy cow! How touching that Dan (with help from my podcasting cohort Manton Reece, and my wife) managed to collect so many notes of thanks from so many participants. This was truly an accomplishment, and a greatly appreciated one. Thank you Dan, Manton, and Chrissa for your parts in organizing this. This alone is quite a payback for the hours I spent laboring to make One Finger Discount the success it turned out to be.

And the other card in that envelope? Each developer who had graciously agreed to send a personal note of thanks had also chipped in some cash and sent me the largest Amazon gift card I have ever seen! If you ever wondered whether $700 was enough gift to convey your heartfelt thanks, the answer is yes, yes, yes! Thank you so much to each and every developer who took part in this thrilling and inspiring gesture.

It’s great to be reminded that there are so many generous and thoughtful people in the world, and in our community. Sometimes you may feel that your deeds are going unthanked or unnoticed, but the old cliché that “what you give comes back to you” is true on many levels, and it may surprise you the ways it finds of doing so.

Thanks again, everybody!