top | item 3754531

A profitable, growing, useful, legal, well-loved... failure

436 points| rcfox | 14 years ago |apenwarr.ca | reply

90 comments

order
[+] henrikschroder|14 years ago|reply
This is one of the most fantastic submissions to HN I've seen in a long while. It's relevant in many different ways; it's about a startup, it's about a minimum viable product, it's about untapped market potential, it's about economic success, it's about a jaw-dropping kludgety mother-of-all-hacks, and it offers insights about what matters, both to users in large corporations, and to the author.

And it's funny as hell.

[+] beagle3|14 years ago|reply
Everything apenwarr (Avery Pennarun) writes is worth reading, be it code or essay. He's been writing much less since he's started working at Google, but there's a lot of history for you to read.

Of his open source stuff: bup is awesome, sshuttle is awesome, and wvdial is a lifesaver for those rare times you need it. I'm quite sure do/redo is awesome, although I can't provide 1st hand testimony.

[+] ef4|14 years ago|reply
All that technical horror is precisely why it's such a needed and profitable product. That's your barrier to entry.

The only happy ending I see here is if the founders learn to delegate, or work hard on finding the right people to sell this to. Not to a hacker -- to a businessman who would be genuinely happy to run a growing business, and not horrified by the technical kludges.

I always chuckle a little to myself when I see clearly talented programmers shying away from this kind of problem in favor of allegedly more interesting problems. I used to feel the same way. But it's mostly chasing an illusion. The real work of programming is always about dealing with the messiness of the real world.

If you find a problem that doesn't have any real-world nastiness, you can be sure it's either (1) irrelevant, or (2) already solved for free by countless other smart programmers, because it's fun.

[+] unimpressive|14 years ago|reply
This part really resonated with me.

So don't get me wrong. I like Access users. Access developers, in particular, are the anti-IT department, the rebels, the people who aren't willing to wait for the sysadmins to provision them a server, and they don't have to, because they can just share an Access file on the fileserver. IT departments hate them, which is how I know they're on to something. These are the kind of people I want to help. This is the sort of thing that's the reason I do the work that I do. No kidding.

While it feels a little weird hearing that talk in relation to a Microsoft product, I agree. Building and maintaining a successful (To whatever extent you would call such a niche market a "success") product that helps people solve their own problems instead of feeding the IT priesthood would be awesome.

And then when you talk about the implementation details. My smile turns to a horrified slack jaw expression.

I'd probably feel guilty about it, and I might even try to keep it running as long as I could, but I'd eventually have as much as I could take and give up.

[+] apenwarr|14 years ago|reply
True, it's a bit weird to think of a Microsoft product that way - but Access is a special case. Microsoft would dearly love to kill it and get everyone to migrate to MS SQL (and boy, do they push hard in that direction) but there are just too many satisfied users to let it die. So basically there's customer satisfaction in spite of their best efforts :)
[+] untog|14 years ago|reply
Absolutely. In fact, it was exactly this situation that got me my first break as a developer. Started working for a gas pipelining company (yes, urgh) as an 'administration assistant' and encountered a spreadsheet based tracking system that involved entering in the same data in six different places.

I threw together an Access database that everyone responded to very well- as you might imagine. The IT department ignored my repeated attempts to get them involved as it progressed from an Access DB to a .NET client front-end app with a MS SQL backend (that I managed to get from the company's external IT contractors).

Shortly before I left to get a "proper" job, they announced that the entire workflow system was moving to SAP, and that the work I'd done would be integrated into that system. That was five years ago... and apparently they're still using my system today.

[+] sirclueless|14 years ago|reply

    I mean, we are running Access in Wine in X11 on Linux in an isolated
    user account on our server slice that revision controls your Access
    database in git, and we're displaying it using VNC in your web browser
    in flash.
If you asked me to describe the glue-code hackery project I would want to work on least in the whole world, I would have come up with something like that. There are probably uglier projects around, but I don't have the creative masochism to think of them.
[+] lusr|14 years ago|reply
This is actually great. They had a bunch of problems to solve with limited interface options. They picked the simplest combination of options, found the solution worked and stuck with it. All too often I find myself looking at something and saying "ewww!" and writing my own code without exploring the other, less glamorous options.

This weekend I nearly slammed my head into the wall after spending half the day implementing and testing shared caching for my high volume distributed web scraper according to part 6 of the HTTP RFC (aside: I cannot believe how something so simple has been made so complicated)... only to remember I'd totally forgotten I could just stick a caching proxy server (e.g. nginx) in front of the scraper and have it do all the hard work. Later I remembered why I wanted to control caching, primarily to do with some future plans, but right now I could have gotten along just fine with a caching proxy server.

When I'm tired and not thinking straight I often dive straight into the next task without asking the right questions. I've been trying to get into the habit by creating tasks in PivotalTracker and looking over other stuff to remind myself of how much else there is to do so I'm forced to ask myself "is this really what I should be working on next?", but I still slip up even after YEARS of relearning this lesson. The annoying thing is I'm very good at planning and allocating tasks to a team, then managing their progress, but very inconsistent when I'm both the manager and developer.

[+] pestaa|14 years ago|reply
I love the continuation even more.

    People can't possibly want that. But they need it.
[+] perlgeek|14 years ago|reply
An even worse project would involve automating a GUI-only application by moving the mouse in recorded patterns, for sure.
[+] bambax|14 years ago|reply
Okay, but isn't the actual opportunity to write a compiler that would transform Access apps into web apps (Rails or whatever)?

That would be very high level and should interest many (very) talented hackers; and you could either licence it -- or sell each transformation for a very hefty price (the price of writing it again).

[+] ArbitraryLimits|14 years ago|reply
Am I the only one who was surprised that of all the pieces in that sentence, the author italicized "web browser" and "flash?" Those actually seem like the least hacky pieces to me, but I guess he highlighted those because they're at the end?
[+] dmix|14 years ago|reply
Nice article.

I had a similar experience with my first company in college selling software to corporate customers who previously used excel to track everything.

Theres millions of opportunities like that to optimize a terribly inefficient corporate process with software.

But the problem is always

a) the problem set is rarely easily reproduced, meaning you're not really selling a product, but instead selling a product + consulting - since every process is slightly unique

and

b) you're dealing with terribly inefficient systems and the type people who would put together a terribly inefficient system (like you said, not necessarily meaning they are bad people but likely are not a good customer)

I still believe its the most straightforward way to make money in software outside of getting a job at Google/facebook. But its certainly not fun and not a traditional "high growth" startup.

[+] lancewiggs|14 years ago|reply
A fantastic read - thanks. Quite simply I'd hire someone to do the dirty work, pay them a decent salary and split the remainder of the income between you and your co-founder.
[+] fruchtose|14 years ago|reply
Sounds like a pragmatic solution. The product exists, people keep signing up, and maintenance is minimal. I can completely understand why the Pennarun dropped out, though, since I would loathe working in a career where my job was to fill deficiencies in a product I don't like. It sounds like the real problem is the web of hacks. Nobody likes hacky fixes--they can wear a person out.
[+] jordanlev|14 years ago|reply
It sounds like he'd love to do this, but is unable to (he and his cofounder might be the only people on the planet with the requisite skillset).
[+] algolicious|14 years ago|reply
Google for the following phrase to find the site: "Run unmodified Access applications, right inside a web browser."

(Edited to remove link to not affect Google juice)

[+] anateus|14 years ago|reply
Sounds to me like you're good at creating software small-businesses, but you're not built for the tedium of running them.

I find it's often hard to discuss the business of software because of a variety of preconceptions people in the field have so let's turn this into a restaurant. You wanted to start an amazing new french restaurant, but to get started initially you decided you're going to be more of a cafe where costs are lower and it's easier to attract customers. In that cafe you start offering a few sandwiches, and some baked goods. Some of your baked goods were vegan. Soon you were inundated with vegans seeking baked goods, and you basically turned your whole operation into a pretty successful self-sustainable single-store vegan bakery. This wasn't the french restaurant you wanted to start (and could have sold to a restauranteur as some do once they show promise), nor is it a true "startup" success which would have had you opening in many cities, perhaps franchising, etc.

Nevertheless, you were to able to create a business (as you've done before), direct it into a market where you're not just making a profit, you're solving a true need. I don't know if it would help your self-fulfillment (because it sounds like you're lamenting the lack of it), but that's the aspect I would concentrate on, and just be aware that it is more likely than not that you'll get bored or disgusted with what you've created and move on to the next part. Just work out an efficient way to do this "moving on" portion, and I think you'd be able to do something you love and something you're good at. And in a few more of these, perhaps you'll create that one company that'll be your baby, not just your creation. (The trick is of course to treat them all as your baby at first)

[+] paraschopra|14 years ago|reply
It is a beautiful illustration of how just making money is not worth it for some people.

Loved it, thanks for sharing.

[+] Zarkonnen|14 years ago|reply
How about trying to sell the company to http://www.red-gate.com, who IIRC built most of their business on making tools to deal with the awful parts of database systems?
[+] eftpotrm|14 years ago|reply
Aren't Red Gate an SQL Server shop though?
[+] trout|14 years ago|reply
It sounds like the plight of one of my coworkers. He started on a team that had to know significant details about how dial up worked. This was great work when dial up was big. One aspect to dial up were fax calls, and nobody wanted to work those issues. He stepped up, learned fax, and earned quite a bit of notoriety due to his specific fax knowledge. Wrote a book, some RFCs, promotions, etc.

The only problem? He 10 years later he still sits around fax machines, listens to users who still use faxes (problem customers), and talks about one of the true dragging edges of technology. And it doesn't port well to other newer technologies.

[+] DanBC|14 years ago|reply
Isn't he in a great position to disrupt, or at least provide information that other people need to disrupt?

People know the reasons why faxs suck. What they're not so sure about is why fax is still being used; what problems fax solves.

[+] dorkitude|14 years ago|reply
If I were you, I would hire a good entrepreneurial hacker who's looking for some autonomy and upside, give him/her 20% and a small salary, and leave me and my partner on the board.
[+] maguay|14 years ago|reply
Now if only there was a way to convert those Access databases into modern web apps based on MySQL and an HTML interface, that could really be a cash cow...
[+] apenwarr|14 years ago|reply
I think it could be done. The plugin itself is actually very clean code and doesn't need a lot of maintenance (well, someone has to update it to Access 2010, but that's probably not so bad). The server is crazy because it has Wine+Access+X11+VNC+Flash. Mostly the problem there is Access. But because the plugin has already done the insane work of exporting an Access database structure as text (and incidentally, re-importing it), all you need is a replacement server.

The actual form layout files (now that they're in text form) are pretty straightforward. Someone who really loves javascript + html5 could probably make this happen with a few months of work, at least for databases that don't get too fancy. (And the users are actually willing to modify their apps to make them work; slightly modifying Access apps is okay, rewriting them on a new platform is not.)

It would probably be much less gross that way, but I just don't have enough patience left to try it. I'd totally recommend it to a fresh hacker with some free time though :)

[+] rsanheim|14 years ago|reply
You just described "a couple decent developers + ruby on rails + custom development".

The interesting bit is trying to create the next Excel or Access. The most recent (aborted) attempt was DabbleDB (http://en.wikipedia.org/wiki/Dabble_DB).

[+] runako|14 years ago|reply
Your story sounds like a classic reason people sell small businesses: not excited about it anymore. Either figure out how to get excited again (perhaps by hiring people who like to do the parts you don't like), or sell the business to somebody who can be excited about it.
[+] neilk|14 years ago|reply
I feel the same way about cross-browser testing. Everybody knows that this is the worst part about web development. A number of startups already exist to solve it, but there's easily room for more solutions. This is a blindingly obvious startup idea.

But I get indigestion just thinking about it, because this means taking on the worst aspects of everyone else's job. There's no major win that I can offer for being clever, just for being more willing to focus on unpleasantness.

Or am I kidding myself? Is that focus on something unpleasant the very soul of entrepreneurship?

Sometimes you luck out, and something that everybody hates is something that you love. But there are some things which are probably universally unpleasant to even think about.

[+] apenwarr|14 years ago|reply
Be careful. I'd see this as a blindly obvious technical need, but not so much a market need. Do business decision makers know they want to pay for it?

I love Steve Blank's "hierarchy of needs" concept when evaluating business value for a new product. Look for the diagram in http://steveblank.com/2010/03/04/perfection-by-subtraction-t... .

[+] ebiester|14 years ago|reply
Why not try and sell the company?

There are people who would love a revenue stream and don't mind boring work. People who would rather be in a position to work in Thailand, or India, for example...

[+] peter_l_downs|14 years ago|reply

    > Customers need this so badly that they're willing to pay a lot for it.

    > It's just about providing something people want and are willing to pay for.
Truth.

As for your problem, I'd recommend open-sourcing the code and stepping away if you really can't stand it anymore.

[+] apedley|14 years ago|reply
I shuddered when I saw the word Access Database. (bad memories of porting those evil things). I don't care how much money is in those things, I will leave it to someone else :) Much like these guys are trying to do.
[+] amalag|14 years ago|reply
That is quite amazing. I am writing this as someone who has just rewritten an Access piece of crap for a construction company. I charged them $15k for 4-5 months of part time work. It is not a rewrite of their original app, it is an order of magnitude better, but if they saw your git versioning WINE running frankenstein, i wonder if they would have chosen that. Now i am off to sell this software again now that i have been paid to write it once. I wonder if you could get a nice income stream by referring companies who want to upgrade their application slowly. Now I am living in the USA, if I lived in another country I could take that $15k and live for 1 year. Here it is hardly much at all. I would love to take US jobs for $15k and finish them in 2-3 months. Low end US freelancer rates, but do a high quality job.
[+] toddnessa|14 years ago|reply
Sounds like a valuable contribution that increases the value of MS Access for its users by allowing it to become accessible for web-based applications. I'm searching for the company website that he did not want to mention in the article (if that says anything).

Great ideas alone do not make great entrepreneurs or profitable companies. At the end of the day, the way a person thinks is where they will eventually return. An employee can have a great idea and make an attempt at being an "entrepreneur" for a while only in the end to return to being an employee. Entrepreneurs think differently about how money is generated from someone with the mind of an employee- thinking on different sides of the quadrant. It takes a different set of skills and a different mindset. "Safe & secure" can be alluring.