Sunday, 4 October 2015

Evernote is in trouble; my software business beliefs are validated

A month ago at a conference I chatted with an ex-Evernote employee. I mentioned that they have a great, free, iOS scanning app. "Why do they give away such an excellent product?" I pondered aloud. He replied, "Evernote's reluctance to charge money frustrated me; it is a major reason for why I left."

Now I read that Evernote is in deep trouble:

Evernote has laid off roughly 18% of its workforce in the past nine months, and said it will shut down three of its 10 global offices last week.

and

Several former employees believe a lack of focus hampered Evernote's growth. Instead of focusing on its core note-taking product and on converting users to the paid service, Evernote spent more time releasing a bunch of new products and features that only helped it grab news headlines, they said. 
For example, in early 2014, a former TechCrunch writer published a scathing blog post hammering Evernote’s glitch-filled product. Libin quickly addressed the issue, even personally reaching out to the writer and vowing in an all-hands meeting to focus on improving “quality” that year. 
But six months later, Evernote was back to pumping out new releases that often didn’t live up to expectations.

From this article, I have some of my software business beliefs validated:

  • don't be afraid to charge money. I charged good money for Poker Copilot even when I released the first version, 30 days after I started preparing it to become a product. I could have had a long, free open beta, but I like earning money for my work. We don't do free, and we don't do freemium. You want our product? Then pay for it.
  • release frequent, small updates. Users tolerate this much better than infrequent big updates with major changes. I relearned this twice this year as Barbary Software released two major products; one that was a replacement for another product, and one that was the next major version of Poker Copilot. In both cases, plenty of users were not happy, and were perhaps lost.
  • focus on quality. Every update should include several bug fixes. As much as possible, fix bugs before adding new features. Bugs are the bane of the software industry. But bugs are also a reality. Even NASA, with its massive software development budgets and industry-leading quality assurance, suffers from catastrophic bugs in production. Your product will have bugs. But if, as a rule, version x+1 has less bugs than version x, and you make frequent small updates, you software's quality will be way ahead of most software companies. 
  • focus. Put all your eggs in one basket, to some extent. This year I've canned a product that was earning close to zero money, but still requiring support and maintenance. I canned a side project of mine that was distracting my interest. Instead I've focussed on our main product, made it better, given it more love, and expanded its reach.
  • watch costs like a hawk. Operating in ten locations sounds like Evernote let their costs get out of control. It is easy in any business to hope that finances take care of themselves. When there is plenty of money in the bank it is easy and tempting to expand, acquire, and develop some undesirable flab in the company processes. But this is an approach that ultimately leads to failure.



Tuesday, 15 September 2015

Faster than quicksort, merge sort, insert sort...

Sorting networks. It turns out that if you have a fixed number of items to sort, there is a much faster approach than the general sorting algorithms.

eg. you regularly have exactly 6 items to sort. You use a predefined series of compares and swaps, and afterwards you can be certain that the items are in order.

From the Wikipedia page:
Sorting networks differ from general comparison sorts in that they are not capable of handling arbitrarily large inputs, and in that their sequence of comparisons is set in advance, regardless of the outcome of previous comparisons. This independence of comparison sequences is useful for parallel execution and for implementation in hardware. Despite the simplicity of sorting nets, their theory is surprisingly deep and complex. 

Thursday, 10 September 2015

"You Only Live Once" subjectively interpreted

I recently attended MicroConf Europe, a conference for "self-funded startups". I found myself sitting in the back row next to Peter, the Irish cofounder and CEO of https://www.teamwork.com/. Peter has been extremely successful; he shared information with me about that level of success, but I'll assume it was for private consumption. What I can say is that in seven years teamwork.com has become a highly profitable, growing company with dozens of employees. Peter has a found a level of business success that is rare to achieve.

I asked Peter why he works hard to keep growing the company. After all, by now he could sell out or coast, and probably be financially well off for the rest of his life. His answer: "you only live once."

A good answer. But it got me thinking why I took two afternoons off this week to go to the beach, and why I recently ran my company part time while travelling for seven months. My answer: "you only live once."

For Peter, life's limits encourage him to strive for business success. For me, life's limits encourage me to take it easy, be content with what I have, and enjoy lots of leisure time. Who's doing it right? Both. Neither. Some things you just can't compare.



Friday, 21 August 2015

WordPress comments can never be really disabled

I use WordPress for http://pokercopilot.com/blog. I've turned off comments for the site, because these days, most comments you get on popular blogging platforms are spam. When the comments on our site are not spam, they tend to be support requests. Blog post comments do not make a good medium for conducting customer support.

And yet...the comments still come. I've turned on "comments need moderation", so they get quarantined, and I have to mark them as spam or trash, or let them be published. But they still come.

I was surprised that turning off comments only turns off the UI for making comments. If someone knows how the WordPress API works, they can programmatically add comments to your blog. WordPress's support says that this can't be disabled, and instead you should purchase a subscription to the Akismet anti-spam service.

Saturday, 11 July 2015

Commercial download links versus non-commercial download links.

When a company is selling a software product via a website, they quickly learn to make the "Download" button the most prominent thing on the website.

When a company is distributing open source software via a website, sometimes working out how to actually download the software is a challenging exercise.

Jackson, a popular Java API for handling the JSON file format, makes downloading so difficult to figure out, it needs a stackoverflow question. A stackoverflow question with many upvotes.


Sunday, 5 July 2015

Ask Customers for Money Already...

I recently stumbled upon a new product that vaguely competes with our flagship product, Poker Copilot. Because it competes with us, I won't tell you what it is.

This product seems basic and raw, but has a unique angle to the problem space. It is created by someone with good experience in the field. It seems to be have been started well, but hasn't been updated for a while. I suspect it is becoming abandonware.

For some odd reason, the developer never charged money. If you click on "Buy Now" you see "Coming Soon". I want to contact them and tell them, charge money already! If some people pay, it is validation that your software has a viable market. Nothing motivates the owner of a small company like the arrival of money in the bank account.

Pseudo-Taxes on Software Companies

Our SSL certificate was about to expire. I renewed it for another year for US$99. If I didn't do this, we wouldn't be able to use HTTPS on our server. I consider this a kind of tax. It is not a real tax, in that it goes to the government. But it is a necessary fee I need to pay, that doesn't actually improve my software or my company.

There's a few of this pseudo-taxes on software companies. They are annoying not just for the monetary cost, but for the time and hassle of needing to stay on top of these.

I got the payment of the SSL certificate renewal correct. I got the process of reissuing the certificate correct. But I got the process of applying the renewed certificate incorrect. But only sort of incorrect. Our website still served pages using HTTPS. But a critical internal system that issues license keys to new customers failed. Understanding and fixing the problem involved esoteric knowledge, and - frankly - some guesswork. All up, it took me a few hours. Which is time I couldn't use to support customers or improve my software.

Another pseudo-tax is the yearly membership fee for Apple's "Developer Program". We need to be in this to be able to sell on the OS X or iOS App Store. We need this to be able to "sign" our software, a process that means if someone downloads our software from our website, they can open the downloaded application correctly. Stop paying the pseudo-tax, and our software stops getting signed correctly; new customers can no longer download and install our software.