From Crawling to Walking

December 4th, 2007

Okay, so maybe we’re not even crawling, we’re just barely holding our head up *grin*. ShuffleText has been live only a few weeks, and we’ve had some amazing support from the Micro ISV community. I’m astonished - these guys know how to make newcomers feel welcome - so thanks everyone who dropped us mail, or left a comment - much appreciated.

The feedback we got was great. We’ve adjusted appropriately, changing the licensing, the cost, and strategy of our Highlight Product. There’s now a "free as in beer" version of Highlight Express for non commercial use - totally feature unrestricted. We’ve also done away with the 10,000 searchable row limit, instead we’re now saying "your performance mileage will vary", which is another way of saying "if it’s slow, be sure to sign up to the Enterprise Beta!".

We’re hoping that stimulates interest in leveraging fuzzy search in applications. And speaking of which, Joseph Cooney has jumped on the non-commercial bandwagon and delivered a brilliant SQL Management Studio Express add-in that leverages Highlight Express for quick and efficient table/stored proc search. Great for those massive db schemas you see in the enterprise. We’re hoping to see more of these kinds of add-ins built using Express - they’re great examples of brilliant user experiences. 

CloudSeed Released

Yesterday marked ShuffleTexts second product release, called CloudSeed. It’s an automatic tag cloud generator library for the .NET framework - it slurps up one to millions of documents and figures out what words are highly relevant within that context and displays them as a tagcloud. Sure, you can find any old code on the Interweb to do that right? Well, our’s does it super fast (we scale across multiple cores) - processing thousands of documents per second. It’s also got a pretty smooth levelling algorithm, meaning the distribution of tag sizes will always be "interesting". And most importantly, it’s automatic - meaning you don’t have to do any pre-tagging - it’ll just figure out what words make the best sense!

We’ve pushed that up on the site for $49 USD, slapped some Google Ads on there, and we’re now waiting for the first customer. ;)

What’s Next?

We’re still busy hacking away on Highlight Enterprise, and we’ve got a bunch of other code lying around "in the labs" which we’re hoping to integrate with a partner to test out the various new user experiences it enables. We’ve got text clustering code, "short text fuzzy search" (think Lucene, but with a fuzzy auto-correction that doesn’t rely on a spell checker), and data-deduplification code (which seems like a pretty nice little market) - we’re just trying to figure out the marketing and product opportunities for each of these technologies first, instead of repeating our last mistake. If you think you can help us out with any of these ideas, drop us a line!

And of course, we’ll give you an update on how the business is going (sales, traffic rates, click-throughs and bounce rates) soon.

Stay tuned.

The birth of a Micro ISV

November 22nd, 2007

We built a Micro ISV and two products in approximately 3-4 months (4 months part time, 2 months full time). We launched a few days ago. This is our story so far.

The Micro ISV – the cornerstone daydream for any unsatisfied “corporate” developer. No boss, no commute, working with friends, working from home, more time with the kids and all that other goodness. We jumped the corporate ship a couple of months ago, looking to plough some time and money in to doing something deeply satisfying – creating products people care about. So far, it’s been a fabulous experience.

This is a post about what we’ve done up until now – the planning, the processes, development and release. It’s an end-of-development cycle post-mortem, not a Micro ISV ‘how to guide’. Like a friend returning from an overseas trip with a ton of photos, we offer this as a photo-walking guide to Micro-ISV’ism.

From Scratch

(This section is about the logistics of setting up a Micro ISV company from scratch – purchasing a company name + trademarks, thinking up a name, planning, time management and goal creation. Feel free to skip ahead.)

June 2007

We’re fed up with this corporate bullshit. We’re done. We’re going to start building software products. We’ve got razor sharp skills – with backgrounds in machine learning, compiler construction, and web + desktop software development - we decide to move forward doing what we love best: building software.

The plan? Start planning. Part time. We figured if you’ve got a stable income + the motivation to move something forward, you don’t necessarily need to quit. I’ve heard of some folk leveraging the act of quitting as a forcing function to move things forward – good for them – the math in that risk equation just didn’t work out for us. So we started early June – regular coffee’s and lots of phone calls.

The name

We birthed the name first: ShuffleText Software. It took about 4-5 days to get that work item nailed. The process was unexpectedly difficult, as most creative process are. The name is derived from what we believed would be our differentiation strategy: intelligently parsing and processing text in the interest of the user.

A high level bit points on naming:

  • Pick a name that looks great on a logo: we talked to a few designers we knew to get a read on how easy it would be to cook up a great logo that maximizes branding stimulation.
  • Think about that branding concept for a minute: You’re “instilling strong attitudes about the product in the minds of consumers”. We didn’t have the resources to hire a branding expert or marketer to create that experience, so we applied a cheaper litmus test: make sure the name + logo does not block potential customers from entering in to a relationship with your company. Or a pithy analogy – I’d be put off dating a woman named Biatch.
  • Make sure people can spell it. It’s common sense, sure, but here’s a not-so-common reason to stick with the boundaries of common language: search engines are your enemy when it comes to misspellings.

The company

With a name signed sealed and delivered, we opted for a Pty. Ltd. registration in our home country: Australia. (International visitors, move on, nothing to see here). It was around $600 with www.registeracompany.com.au and took around 15 minutes. They e-mailed everything out, and it was all pretty painless.

Assets

Before we began the planning process for our products, we made a list of the company’s assets. We had very little money, so we didn’t bother listing that; instead we focused on intellectual assets. Who was skilled in what.

We brainstormed a little to see if those assets could be extended/expanded in to the start of a differentiation strategy. For us, the smart software meme was self-evident. Machine Learning, Natural Language Processing, Scalable software, Algorithms, Maths and more were on the list.

High level bits on assets:

  • Assets should be relative to potential competition. If everyone can do it, it’s not an asset.
  • Consider non-technical things as well. Good marketing skills (as we’ll talk about later) could be more important than everything in the technical box.
  • Contacts are assets too.

Even these small things were annoying

It took us about 3 weeks part-time to get the above completed. A long time for stuff that should seemingly be trivial.

The product

Brainstorming product ideas was actually pretty easy: we’ve all been software consultants at one period or another, so we started listing all the problems that we’d come across at customer sites. What were their pain points? Why didn’t they purchase any software to solve that pain? Was there software available to solve the problem already?

If there was existing software for a pain point, we started listing potentially disruptive technologies that we could use to extend the software, and solve the problem in a better way.

If there wasn’t any software, we dug deep to find out why. There’s no demand? No need? Costs for implementation too high? Too hard?

Our list wasn’t very long – probably about 6-7 different potential products. We triaged the list, narrowed it down to a few products that we thought might be the best bet and started talking – talking to our potential customers, talking to others in the industry, talking, talking and more talking. We iterated over the ideas until numb.

It turns out there was an implicit triage going on as well – we kept ideas that we were passionate about. And the more we talked about certain ideas, the more passionate we became. Harness this – turns out it’s going to be extremely useful.

High level bits:

  • Get this stuff right. If you get it wrong, you’ll spend a whole lot of time building something nobody cares about.

July 2007

Product development begins on Highlight, our Fuzzy Search algorithms for the .NET Framework. We start part-time, mostly at night after work. I pulled back from consulting, going part time to concentrate on building out the plan and executing.

Highlight Fuzzy Search

The Highlight product is a simple idea: use amazingly complex algorithms to fuzzily match strings against each other. It’s a simple building block that solves a huge problem space centered on bad data. Bad searches on bad data is big business – turns out approximately 5-8% of searches over data are misspelt, meaning two problems: it takes longer to get to the data you’re actually trying to find, and there’s a higher chance of introducing duplicates in to your dataset (i.e. the user can’t find the data, so he/she creates a new record leading to unnecessary duplicates).

The scenario

Context around a call centre scenario will make this problem more obvious: bank customer Bobby Gymes calls up, and the operator asks for their customer number.

“Sorry, I don’t know it”

“Okay, no problem, what’s your name?”

“Bob Gymes”

Operator starts to type in Bob Jymes, misspelling both the first and last name. No match.

“Could you repeat that sir? I can’t seem to find you.”

Rinse and repeat. Possibly minutes of back and forth with the customer resulting in two problems: a) it’s not a good personal experience for the customer (i.e. they can’t find me, they don’t care about me) and b) the minutes wasted trying to identify the record to the customer amortized over the life of a call center could be massive amounts of wasted time.

Back of the napkin figures:

480 potential call center minutes per person per day. 5 minute calls on average means 96 calls per operator per day. If 6% of these calls (5 calls per day) have the “data mismatch” problem at a cost of 1 extra minute, that’s opportunity cost of 1 call per operator per day. Amortized on the year, that’s an extra 365 calls per operator, or, a reduction in the amount of time a customer has to wait in a phone queue.

5 minutes per day means something to big business. And that’s just opportunity cost. If the searches are better quality, and faster, you save even more.

More scenarios

The above scenario is fairly obtuse. We’ve actually got pages of scenario’s that Highlight can be used for. We believe it’s a healthy way to analyze your assumptions and make sure that you’re actually solving a customer’s problem or adding significant value.

There were quite a few product ideas that people said they’d gladly pay for, but when it comes to the crunch, I’d highly doubt they’d be willing to open their wallet. Make sure there’s a checkbox in your product ideas list that differentiates between a “nice to have” and a “must have” from the customer prospective.

Design

The design was scenario driven with the ultimate customer in mind. For Highlight Express (the smaller, lighter version of fuzzy searching), our target customer was ISV businesses and corporates looking to integrate fuzzy search over relatively small datasets (less than 10,000 rows), however our ultimate customer was the developers that integrated the component.

It was important for us to segment the two. Our product design (which really meant our API design) had to be developer focused, while our marketing strategy and design had to be aimed at those that signed the cheques. More on marketing later.

The API design had to be simple. If we couldn’t get developers up and running on our product in less than 5 lines of code it would be unacceptable. We want the average VB.NET dev to feel comfortable integrating our component, and one of the easiest ways to get developers comfortable is to keep the API surface area to an absolute minimum.

Algorithms

The hardest part of the development process. Complex algorithms might be a good technical differentiation strategy, but they’re dead hard to test, and even harder to get right. And while we believed that technical differentiation would be enough to sell our product, we ended up being dead wrong.

Testing

The most boring, and most stressful. We opted for test driven development, which actually worked really well. We had no customers, and no beta program, so bolting on algorithmic features and changing the surface area of the API was best controlled by an awesome test environment.

Change, it turned out, ended up being one of our worst development enemies.

Tools

We used Visual Studio 2008 beta, NUnit for testing, a range of OS platforms (XP, Vista, 2k3 and even Mono + Linux got a run). Microsoft offers plenty of licensing options for ISV’s.

We got a publicly hosted Subversion repository up and running for change tracking. We started using web based project tracking mechanisms like Backpack, but ended up opting for a text file in the root directory of the repository – which worked brilliantly.

Project items were divvied up and passed out through e-mail and the root dir text file. We applied basic “human level” policies like “don’t check in code that doesn’t compile”. We had no “quality gates” or automated check-in test infrastructure stuff.

And the result? We had no serious development process problems.

The Release

September 2007

We went for a beta release first – needed to get some feedback on the API, performance and general algorithm look and feel. Up went a fairly dodgy landing page, written in Visual Studio 08 web designer + Paint.NET. It was hideous. We integrated Google Analytics to analyze web traffic.

To get the word out, we e-mailed as many devs as we knew, and purchased Google Ads on a number of keywords that described Highlight.

The return on investment for the Google Ad spend was interesting: we didn’t really get too many signups to the beta, but what we did get was a good idea of the market:

  • We knew in advance what keywords got the most traffic
  • We figured out bounce rates (the percentage of visitors that just bounce right off your site because it’s not what they’re looking for)

We spent approximately $70 AUD, for about 50 signups over about a month and a half. More than $1 per download. Of those signups, around 50% entered crap bullshit e-mail addresses, and about 5% failed the download.

Of all those Google Ads signups, we got 0 feedback. All feedback on the product beta came from friends or friends of friends.

Getting a web site built

I personally like slick, professional websites. I probably wouldn’t invest 800 bucks in a software product from a junk company with a HotDog website. We contact a design agency called “Tusk Agency” for the logo development, and went with a local web design business called “Kintek” for the website development.

Turns out this is a serial process. The logo and colors need to be figured out first, before the website can be spec’ed out and built.

Logo development took about 3 weeks. We got around 8 iterations done and the final result came with an attractive synergistic color palette. Tusk did a great job.

November 2007

Website development started late September and took another three or so weeks. There wasn’t too much back and forward at all – Kintek took our spec, built it out according to specification and we loved it from initial concept to completion. They did a great job.

‘Cause we’re programmers, we opted to do the backend ASP.NET programming ourselves. For the most part, the website itself is fairly simple, with the most complicated piece being the PayPal integration (and even that was simple).

We opted for the free Web based “buy now” button, after signing the Company name up for a PayPal account. About 4 hours later, we had PayPal integrated.

Packaging

My god this sucked. Budget about 1-2 man weeks to get your product packaged, as the MSI installer toolset is pathetic. Installshield did a reasonable job, but it’s expensive. I’ve heard NullSoft installer isn’t bad either.

Going to Market

Nobody cares about you.

It’s true. There’s a bajillion ISV’s out there all competing to sell their crappy untested memory leaking piece of junk software. No matter how much time you spend perfecting your algorithm, improving the performance, and making sure you’ve got zero tolerance for leaks, NOBODY CARES. At the end of the day, it’s getting noticed that matters, convincing people that they should take a bet on you to solve their problems.

Nobody cares about your technology either.

Sure, we’ve only been up a few days, and sure, we can’t really say this statement with a confident level of certainty, but from the litmus test of friends, colleagues and everyone in between, they just don’t care how smart/fast/powerful it is, they just want to know what problem it solves.

Enter Marketing.

Marketing Sucks

The one take away we’d like to give you for the time you’ve invested in reading our story: Marketing is 90% of the company. Without it, the rest doesn’t matter.

We’re struggling with this. And it became self evident a few days ago when we finally launched. A few hundred visitors, expensively driven by Google Ads, bounce off our site like a trampoline.

We need to do better here. And we’re busy trying. Sending e-mails, scouring for potential blog comments that reference our stuff, chances to talk about our stuff in a public forum, hell even this blog post is an attempt to drive traffic to our message.

And speaking of our Highlight message, it sucks too! We’re working on this, and believe that incremental improvement over something that isn’t great is better than blocking the release all together. And we’ll get there, no doubt.

Focus Going Forward

December 2007 Onwards

We’ve got a work item list of stuff to do a mile long:

  • Get Highlight Enterprise out the door (Fuzzy Searching for a million+ records)
  • Get CloudSeed (automatic tag cloud generation) out the door
  • Engage customers better
  • Engage beta customers on a deep and meaningful level (i.e. face to face) for Highlight Enterprise
  • Find better channels for marketing than Google Ads
  • Fix website issues (get a better message, fix up fuzzy video, cosmetic stuff)
  • Drill down on Highlight Express Trial feedback.

Our direction is going to remain the same for at least the next little while: keep building smart products that people need and care about. But, we’re going to reverse the process a little. We’re going to start with the marketing first, and let that drive some of the direction for design and scenario’s.

We’re even thinking about engaging a Marketing person. Someone who has deep experience in this area (e-mail us if you’re interested).

And with that, the story pauses. We’ll be talking more in the coming weeks about how all this is going. In the meantime, if you have advice, suggestions, or feedback, we’d appreciate that like you wouldn’t believe.

Cheers for reading.

High Level Bit Points

  • Two products in ~6-7 months gross, or 3-4 full months of full time work.
  • Most development done part-time after work.
  • Kept the toolset simple: leveraged open source where we could.
  • Product development: Months of work, but we have been leveraging our expertise in search + machine learning
  • Web site implementation: 2 man weeks of work (after templates were built out by Kintek)
  • PayPal integration: 1 man day
  • Google Ads/Analytics research and integration: a few man days
  • Web site template cost: ~$1,000
  • Logo cost: ~$1,000
  • Company setup costs: ~$1,000
  • Legal: from 0 (stealing existing software licenses) to $2,000 (full software license written)
  • Sofware (Microsoft Suite): depends. ;)
  • Hosting and other monthly fees: ~$50 / month

Biggest problems faced:

  • Marketing.
  • Marketing.
  • Finding Beta testers
  • Getting good feedback on design
  • Getting good feedback on direction
  • Motivation in those “shit, there’s a huge problem with our algorithm assumptions” times.
  • No measurability of anything. Goals are hard to quantify.
  • Marketing.

Hello, World

November 13th, 2007

After a long 6 months of development, we’re finally live! Hello World, we’re ShuffleText Software – we build intelligent software products and components for the .NET platform.

This story will be about the life and times of an ISV software company. The plot is simple: follow us as we crawl, walk, and run in a trillion dollar software industry. We’ll build and sell products, create partnerships and make deals - all transparently, exposed through this blog.

We’re hoping for a best seller, and we’re also hoping you can help us write the ending. Subscribe, stay tuned and enjoy the ride.