Wednesday, November 7, 2007

Startup Milestones

There are four basic milestones every software startup must go through during their lifespan:

(1) That would be a good problem to have

At this stage potential customers have begun to evaluate your products and there is a trace of word-of-mouth buzz outside the office but generally people are kicking the tires and little to zero revenue is coming in. It would be a nice problem to have customers with support issues.

(2) That is a nice problem to have

Here the buzz has begun to turn into real sales, the support forums are heating up, and the early-adopting customers are struggling to get deployed. The best products are forged in customer hell. Paying customers clamoring for support... that's a nice problem to have.

(3) That's a crappy problem to have

At this point the buzz has subsided and there are a gaggle of customers, some of which are very unhappy. Real product development has been squeezed out in lieu of customer hand-holding, bug fixing and reworking those problematic parts of the product that were commented with:

// TODO: fix this

We've got to fix these problems customers are continually running into or we'll never get back to developing features! What a crappy problem to have.

(4) That's not my problem

Now the buck starts getting passed, potential M&A activity is stirring, and more and more new faces are showing up around the office. You've polished off your resume (CV for you bangers & mash types) and started adding contacts to your LinkedIn account. You start to wonder if you like doing software development after all. Your boss is complaining that the TPS report you submitted doesn't have the correct cover page. That's not my problem.

(5) Big profits

Wednesday, October 24, 2007

I'm an antiGUI-ite


Seinfeld reference: What's a dentist.... someone who couldn't get into med school. Jerry, you're a rabid anti-dent-ite!

Well, I'm not anti-GUI but a recent poster to the Terracotta users list complained that all we had were GUI's in our product and that he never, ever wanted to use a GUI. Terracotta comes with several GUI apps:

- Administration Console
- Welcome Tool
- Sample Launcher
- Sessions Configurator
- Eclipse Plug-in

I find the Welcome Tool and the Sample Launcher that it can start pretty useful. In one simple Swing app you can run some of the demos as well as view the code, the Terracotta configuration, and some explanatory text.

It had been quite a while since I figured the hard-core command-line mindset had died off so I spoke to my cohort Tim about this and he reminded me of the curses-based web browsers like links and lynx. I wondered how this sort of person develops code these days. Do they still use emacs, manually index their code to create ctags files, M-X shell, etc? I don't know, but if the answer is yes that is amazing. What? Do they refactor with sed and awk?

Tim asked if I remembered gopher, which was apparently a pre-web, distributed way to browse structured content. I wondered if one day we would have this same conversation except we'd be asking, "Do you remember the world-wide web?"

Back to the antiGUI-ite, not that emacs or curses aren't graphical user interfaces... of course they are. This person is really anti-desktop environment. It's hard for me to imagine that in this age and day that there are still hold-outs against the rise and domination of the desktop GUI.

Are you an antiGUI-ite? If so, write in and tell us why.