Hiltmon

On walkabout in life and technology

TimeToCall - After One Month

TimeToCall is a simple, universal iOS application I developed to help people choose the best time to call when calling internationally. This is a follow-on to a 10 part (and growing) series I wrote about the thinking and work done. My goal is to share just how much effort it really does take to craft an iPhone app and ship it. I hope this series helps you to understand why it costs so much and takes so long to create beautiful software. Start at part 1 first.

At the one month mark, TimeToCall has a few sales, a few changes and it’s first update has just been released.

Sales & Revenue

After one month on the App Store (with no real marketing other than this blog), app sales have stagnated, as expected:

| Week 1 | Week 2 | Week 3 | Week 4 | Total :—— | :—: | :—: | :—: |:—-: | —–: Sales | 125 | 34 | 12 | 7 | 179 Revenue | $87.11 | $23.67 | $8.21 | $4.66 | $123.75

There was buzz on the first week, mostly thanks to Brett Terpstra and Gonny van der Zwaag (@gonny), but then interest tapered off as no new stories went out.

Most days there are a few trickle sales as people find this web site, read the articles and purchase the app. I am hoping the video helps, it went up a few days ago.

From what I can tell, though, this left-skewed chart, with big sales on release and buzz, followed by a sharp taper off and flattening sales seems ‘normal’ for the App Store. I guess that’s why most app developers spend a lot to get a big launch, knowing that post launch things get very quiet.

Support

One thing I am totally grateful for is the wonderful messages and emails I am getting back from some of my customers. They contain lovely ideas, some of which are in v1.0.1, others are coming soon. People seem to have adopted this product and want it to grow and get better.

Also pretty chuffed that I only had 2 bugs reported in v1.0, both have been squashed in v1.0.1.

Finally, it seems there is some network effect starting to happen. A friend in Australia sent me a message that a friend of theirs in Japan had seen the product and pointed it out to them. My Aussie friend gained kudos when she told her Japanese friend that she knew the developer.

Updates

Version 1.0.1 hit the App Store last night after a week in review. It contains bug fixes (all releases do) as well as a new way to use the slider to set the time to call. Looks like 18% of my users have already upgraded overnight, but no feedback yet whether the new slider works better for them or not.

Marketing

Now that sales have stabilized, and the video is up, time for the next experiment. I intend to create a PR style email over the next few days and send it off to some press site’s public tip lines to see if any of them will run it. This is a learning experiment for all of us, so lets see how well this works before I try something else.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Defend Your Livelihood

Adii Pienaar, of WooThemes, in Don’t Be Defensive, But Defend Your Livelihood on dealing with negative reviews:

1. Be Transparent. The honest truth about all companies (and businesses in general) is that it's impossible to please every single customer. I could've been defensive, tried to respond to the specific critique, but that would not have served any purpose. I don't try to be perfect as an individual and I don't expect Woo to be either. Striving for excellence, doesn't mean striving for perfection.

2. Defend Your Livelihood. This is something which becomes more important as a company / team becomes bigger and more mature. Woo is 27 individuals strong today and if we stopped making any money today, that'd directly affect 27 individual's livelihoods. Similarly, we have a big customer base that have built businesses on top of our products; if we can't support & maintain those products, their livelihoods are at risk. So this is a worthy cause to defend and be defensive about.

I agree, not everyone is going to like my writing, products or preferences, and that’s OK. I strive for excellence in my work, but know I will never achieve perfection.

But I, too, will defend my business and need for payment to cover my bills, as should you to cover yours.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

We Unfortunately Can’t Pay You for It

Nate Thayer, in A Day in the Life of a Freelance Journalist—2013 reports on an email conversation with The Atlantic, a news organization with 13 million subscribers, responding to their request for him to write something for them but “We unfortunately can’t pay you for it”:

I am a professional journalist who has made my living by writing for 25 years and am not in the habit of giving my services for free to for profit media outlets so they can make money by using my work and efforts by removing my ability to pay my bills and feed my children.

Right there with you, brother, just in software.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Fix Copy Address From Mail on OS X

In Apple’s Mail.app, when you right click on an email address and choose “Copy Address”, Apple decided that you would inexplicably also want the name part, so the string copied looks like this:

Hilton Lipschitz <me@hiltmon.com>

I have yet to find a single occasion when I wanted anything but the email address part.

To correct this issue, jump into a terminal session and use:

defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool NO

Quit and restart Mail.app. Copy an email address and you get an email address:

me@hiltmon.com

This is one of those simple annoyances on OS X that I wish Apple would just change the default by default.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

On Ihnatko Switching to Android

Andy Ihnatko (@ihnatko) is writing one of his usual clear and cogent articles on his choice to switch from the iPhone to Android at TechHive, see Part One and Part Two.

Good for him.

But somehow the haters have come out in droves, even though Andy himself tried to head them off at the pass:

This isn't the story about how Apple has lost its way and no longer innovates. It hasn't and it still does. This is merely the story of one dude who got a new phone. Nonetheless, my tale presents a picture of the strengths of modern Android.

Andy has made a choice that he thinks Android is better for him and is explaining why. As I wrote in my better article, “anytime someone tells you something is better, all they are doing is expressing their personal utility function on something they care about and are prepared to spend real money on”. And this is what he is doing. He is not, under any circumstances, stating that his preference is good for anyone else, or promoting some bullshit “Open is better, Apple sucks” memes.

John Gruber (@gruber), of Daring Fireball, tweeted it best:

@gedeon @dmoren Put another way, my stance is not “iPhone good, Android bad”, but rather “Truth and insight good, bullshit bad.”

I’m with John on this. I may not be an Android fan, but Andy’s article is insightful and his truth. Android works better for him, iPhone works better for me, and we both can and do respect that.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

TimeToCall Demo Video

In preparation for the massive PR campaign that will never happen, I created a demo video of TimeToCall, showing off the new “drag down slider”, and added it to the product page. I am hoping v1.0.1 gets approved soon so you can all play with time.

Why make a Video?

  • There is no trial on the App Store, so the next best thing is a quick video to help people decide whether the App does what they want. A lot more purchase decisions are made if the potential customer can see a video before they buy. The purchase seems less risky to them and they know what they are getting in to.
  • The press gets so many emails that they too have no time to read all the text written about a product. But they do have a few minutes to watch a quick video, and that helps them decide whether to keep watching and write about the product.
  • Users, unsure on how to use the app, get a quick-reference on how best to use it from the demo.
  • Videos are cool.

To make this video, I ran TimeToCall in the iOS Simulator and used ScreenFlow 4 to record the screen, record my voice-over, present my finger as a white button, add the text annotations and edit the clips. This is an amazing product, so easy to use. I also used GarageBand to create the Jazz soundtrack, using the default Apple Loops because I am not a musician. ScreenFlow then handled the upload to YouTube.

I’d love to hear what you think of my demo video.

TimeToCall is available on the App Store for just 99c (USA). Buying it supports this site.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Better?

We all seem to spend a lot of time looking for better things, writing about them and arguing that our choices are better than others' choices of things. These jeans are better than those jeans, this laptop is better that that laptop, this app is better than that app, this coffee is better than that one.

We’re all wrong, what is better for one is not better for all, because we all have different utility functions. We do not need to stop looking and discussing better, the discussion often does help find it, but we need to understand that that what we think is better may not even be on the care-radar of others.

The Theory

In economics, utility is a representation of preferences over some set of goods and services.

In economic terms, individuals act to find and acquire that set of goods and services that maximizes their satisfaction. The perfect set differs from person to person because the things they derive satisfaction from varies, based on what they care about. Utility functions can be compared by how much real money a person is prepared to spend to achieve that satisfaction.

Which means that anytime someone tells you something is better, all they are doing is expressing their personal utility function on something they care about and are prepared to spend real money on. And even if you do care about the same thing, you probably derive satisfaction in a different way. In which case the product that fits your utility function in the same space will differ and so will the amount of money you’ll be prepared to spend.

Real Life Examples

I happily spend over $3000 every few years on a laptop computer. Nope, not crazy. I buy the best 15" laptop on the market and maximize its CPU, memory and disk. I do this because I care about the amount of time I spend in front of a computer (all day, every day), the productivity I get from it and the long usable life of the device. Top of the line 15" laptops satisfy my utility function.

I’ll bet they do not satisfy yours. Most people purchase sub-$1000 laptops with the MacBook Airs at the top end for people who’s utility functions include cool, sleek and very light; and cheap Best Buy crapware filled boxes for those who just need a bloody computer and don’t care which one they get. Those horrible computers suit their utility functions because they do not care about computers. Nor should they.

I am also happy to spend $100 on a Text Editor, and have purchased all I can. Why? Because I spend all day working with text, either writing or programming, and I care about the tools I use. I gain satisfaction from using a Text Editor that looks great, works the way I need it to work, shows me what I need to see in context and speeds up my ability to achieve what I want with that text. So I am happy to buy and try them all. As a result, I have found my current “satisfaction guaranteed” set of editors for short form writing, long form writing, programming, note taking and text manipulation. And the set will change as new Text Editors come out.

There are others, lets call them VIM users, who also care the same as I do about Text Editors, but derive satisfaction in a different way, maybe its hands on keyboard time or the lack of distractions or the cross platform features. VIM is better for them, and they are not prepared to spend money on other Text Editors because their utility function has been satisfied by the free product. Yet under my personal utility function, I can’t stand VIM as text editor. And for most folks, this discussion is moot, the default TextEdit on Mac or MS Word is fine, because they have different utility functions and do not care about text editors at all.

On the other hand, I really don’t care much about my appearance and clothing in general. To satisfy my utility function in clothing, an article has to fit and serve its purpose. A coat has to keep me warm and dry, trousers need to hide my legs and shoes need to keep my toes from touching the bare ground. So, for example, I usually purchase cheap jeans that I wear until my wife tells me the holes in them are too large and replace them. I purchase coats that last me many years because I don’t derive satisfaction from coat shopping or from wearing fashionable coats. I really don’t care that my coat is so out of fashion I look practically Victorian. It does not fit my utility function.

But other folks do care about their appearance and the clothing they wear. They purchase clothing that is fashionable and will not wear anything out of date. Under their utility function, a fashionable pair of designer jeans is worth $200 for a single season’s use. Under my utility function, $30 jeans look the same and I can get more Text Editors with the change.

And then there is coffee. Under my utility function, the Aussie Flat White is the form of the coffee beverage that maximizes my satisfaction. I don’t get the plain black coffee movement, the AeroPress movement, the hatred of Nescafé instant or the popularity of Starbucks. Because my utility function for coffee is best satisfied by an Aussie Flat White, and I’ll argue until I’m blue in the face that it is the best. And you will argue until you are just as blue in the face that your preferred coffee is the best. They are both best, we just have different utility functions.

So Better?

My point is this, is a $200 pair of jeans better that an $30 pair of jeans? If you care about quality, your appearance and fashion, sure; if you care about merely having pants to wear, then no, it’s not better. Is a $3000 top-of-the-line laptop better than a $500 netbook? If you care about productivity and performance, then yes; if you just need to look at Facebook pages, then no.

I’m still going to use this blog to showcase tools and processes that I care about and seek satisfaction from. And I’m going to argue that the tools and processes I use are better, and why I think it is so. But all I am really doing is showcasing the preferred set of goods and services that fit my utility function.

They are better for me and me alone.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

TimeToCall - First Updates Coming Soon

I’ve received some great feedback and a few bug reports on TimeToCall and spent some time trying to make it a better product. The next decision is when to pull the trigger and put the first update through the App Store review process.

Changes

The two big changes I have made so far are a more accurate slider and the time now toggle.

In the original release, I set the time slider to jump to 15 minute increments to make it easier to hit a ‘zero’ time. I did this because I could never get the tiny slider to hit the time I wanted with my own fat fingers. But people did not like it, they felt the slider did not behave very well.

I tried several solutions, but none made me happy. Then one of my users pointed out that the Apple podcasts app solved this accuracy problem by making the slider less sensitive the further down below the slider you moved your finger whilst sliding. Lovely idea, I had been trying to find a good way to do this. So I implemented that in TimeToCall, and it works much better than the old slider. The video below quickly shows the differences in sensitivity between close to the slider and further away:

As the sensitivity drops, the color on the slider cools to show the change.

Several other users have asked to see the from and to Times to Call as of right now, to see if they can call now instead of the scheduled time. The original release had this by double-tapping the slider handle, but no-one found it. So I made it explicit (and the app remembers the state between launches). Tap the clock to toggle live view, and the calendar to toggle back.

I also added a first-run overlay to explain these changes. Hopefully people will read it before tapping it away.

Other changes and bug fixes include:

  • The green plus icon when editing places now works when you tap it.
  • The display time-now spins the clocks a maximum of one day, not several.
  • If you change the calling from location, the calling from time remains as it was and does not change. This means that the scheduled times all do get changed, but users seem to prefer this as they get to play with time again.
  • Doubled the number of places in the database, now using a 50,000 population filter. Pulled this update at the last minute because the search was too slow (it’s already too slow on the first character typed). And for the record, TimeToCall does not use any data bandwidth, the places database is included in the app.
  • Enabled live time and state changes for more recent devices. On older devices, only the main time changes when you slide. On newer devices, all the times and states change as you play with time.
  • Some new artwork, to make it look cooler, I hope.

To Update or Not To Update, that is the Question?

I think the new slider and time-now views make this a good update candidate, especially since the two most annoying bugs are also fixed, but is it enough?

You see, even if I submitted it to Apple today, it will be a week to 10 days before my users get to see it (assuming the review passes). But if I don’t submit it today, when? How many more changes are needed to make an update-and-wait cycle worthwhile for you and for me.

Since there are glaring bug fixes already completed, and I want these annoyances out of my users' way, I think it’s best to get these fixes out there. So I’m pulling the trigger. TimeToCall v1.0.1 has been submitted to the App Store for review.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

Have a Better Agenda

Many, many years ago I went on one of those corporate week-long training courses to learn how to negotiate. Back then I was too young and too green to learn anything from it except I remember this mantra:

The only way to win against someone with an agenda is to have a better agenda.

At the time, I never quite understood what that meant. I think I have a better handle on it now.

Negotiators, professional or just natural ones, start with an agenda, a plan of things they want to get done, want to discuss, and want others to do. And then they doggedly stick to that agenda. They don’t answer questions that distract from their agenda, they don’t discuss anything that’s not on the plan, and they ensure however they can that the conversation returns to their agenda.

Look at politicians with their talking points, how they never ever answer interviewer’s questions. Look at powerful CEO’s who always talk up their businesses no matter what. Look at the technical press (even the WSJ) slamming Apple even though the competition they promote is horrible. They all have their agendas, and they tenaciously work their way through them, no matter what, undistracted, even if it makes them look ridiculous.

We developers, on the other hand, tend to jump on board with other people’s agendas. I am sure part of this is because we get paid to do so (it is our profession after all) and if we do not, we’ll never make for happy clients or get work. But I think it’s more deep seated than that. We jump on board because we see their agendas as problems to be solved, and we, the natural problem solvers in the room, take it as a challenge to help them. Or maybe we’re just trying too hard to fit in and please.

In jumping on board another’s agenda, we give up our own. Even if we do not know what our own agenda is. In jumping on board another’s agenda, we succeed or fail based on their plans and abilities, not our own skills and abilities. That’s not good for us.

What we need to do is first know and understand their agenda. We also need to know and understand our own. If the two align, great; if not, we need to do something about it. We need a better agenda, and we need them to jump on board ours.

So how to do this?

I could use an “it depends” argument here, but better if I run a scenario. Lets say you have a boss or a client with an agenda for a product, and they intend to get it done as quickly and cheaply as possible. Let us also stipulate that the product idea is a good one, but the plan sucks. Wrong platform, bad feature set, insane deadlines, not enough budget, or, in other words, the usual non-developer agenda.

Normally, we would jump on board, and mutely try to build the product wanted within budget and time (knowing full well that it’s bad and not going to work). And when we get to the end, the product does suck as predicted, everyone is unhappy. Or worse, we start complaining about the time or the budget or the platform or the features, which just causes the agenda holder to dig in harder. In short, we all lose, bad product, bad reputation and unhappy customers.

What we need to do is review their agenda, identify the problems, but instead of pointing them out, determine a better way to achieve the final agenda goal. Apply our finely tuned problem solving skills to that. In doing so, we create our own agenda, one that still gets everyone to the same end, but with fewer risks and problems. For each item on our new agenda, we need to create an argument or valid reasoning why our way is better, and use that to attempt to persuade the boss or client to change their agenda.

You’ll win some and you’ll lose some. But you will get better at it.

Overall everybody wins a bit more. The product may take a bit longer and cost a smidgen more (or even possibly less), but it will be that much better, and the client happier. And the next time you face a new agenda, they will listen to you a bit more and follow your agenda a bit more, because your agenda worked better last time, and together you will craft even better products.

The only way to win against someone with an agenda is to have a better agenda.

I think I finally understand the lessons of that course, just 22 years too late.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.

BuyReply: Email, Text, Tweet, Click to Buy

Prior to online purchases, the only innovation in purchasing was credit cards. The move to online electronic purchasing has seen only one more real innovation, 1-click by Amazon. The current online purchasing experience really just replicates the same onerous manual purchasing process that’s been around since money was invented.

Until now.

With BuyReply, purchasing is as far away as an email, text or tweet. Completely frictionless. Completely effortless. Available everywhere.

Here’s how it works. A vendor pops an easy-to-remember email address, SMS number or Twitter handle and a short code, usually a simple word like “LASER” or “DONATE”. You email, text or tweet that code word to the given address and BuyReply sends you a link to register your payment info and shipping details. They then save this in your online wallet for future purchases. Purchase made. That’s it.

Try it: text DONATE to +1 (917) 512-5277

The next time you use email, text or tweet to buy, BuyReply’s online wallet remembers your details and all you need to do it tap the confirmation link they send you to buy the next product. No more checkout, no more nags or up-sells, no more re-enter your details, no more decline to join the mailing lists, no more next, next, next; just tap and it’s bought. You can visit your wallet on the web to see your purchase history in one place.

Try it: tweet DONATE to @ShopHiltmon

I’ve been beta testing this for a while now and I think it is great. I’m using it for the “Support with a Donation” links on this site. BuyReply has created a completely new and unique way for us to purchase and for vendors to reach us. By making it easier for us to buy, it means we will be buying more. And best of all, it’s frictionless, the process does not create any more work on our end.

Try it: email DONATE to mca17@buyreply.net or donations@hiltmon.com (Send mail)

BuyReply has gone from patented idea to full implementation in just over one year. Its CEO (and my very good friend) Brad Lindenberg (@bradlind) previously built a very successful business selling custom golf clubs and has turned his incredible entrepreneurial drive and all his time and effort into making this happen. They already have several major names signed up, a proper revenue plan and I expect us to all hear a lot more about BuyReply going forward.

Try it: click Direct URL Link

Note: The SMS, tweets, email and links above are real and work, you can not only try them but actually send me real money via BuyReply. We set up a BuyReply Merchant Account, linked up Stripe for payments, added the DONATE keyword (and to make it complicated we added different support levels) and established the links to text, Twitter, email and direct. It was easy, the merchant interface is very clear and simple, and it took less than 1 hour to set it all up and take in the first transaction.

So check out BuyReply on the web, sign up as a merchant if you sell things, and look for the orange-arrow logo on sites and billboards near you. I think this is the next big thing in online commerce.

Disclaimer: I am not an investor in BuyReply. I wish I was. I am just a friend of Brad’s who loves the idea and the product, uses it and wants you all to know about it and use it too.

Follow the author as @hiltmon on Twitter and @hiltmon on App.Net. Mute #xpost on one.