Monthly Archives: January 2012

Software GR

I’m heading out to speak at Software GR tonight. My goal is to give developers a broad overview of the competitive landscape. I’m not just going to jump up and down and say “We’re great! They’re crap!” The cloud is still in such a state of rapid growth that there are pockets of excellence all over the industry. I want developers to know where the good stuff is and why they would naturally gravitate to one vendor over another.

Microsoft has a great story with Windows Azure, and it’s only getting better. Our competitors are doing some pretty cool things, too – together, we’re all continuing to raise the bar on a nearly daily basis. That’s good for everybody.

It’s a great time to be a developer.

Enterprisey

I made a comment on one of my favorite blogs today where I described a way of writing software as “enterprisey” … I’m not sure what the real word is to describe it, but I assume you know what I mean. Some software feels intended for consumers or small businesses and some feels intended for big businesses – you know, it’s enterprisey.

More and more, this is an arbitrary distinction. As the “consumerization of IT” continues, a great deal of software that was in fact originally intended for consumers or small businesses is finding a place in bigger and bigger companies – GMail and Google Docs comes to mind. On the other hand, as more and more enterprise software that was traditionally sold on-premise comes out with SaaS offerings, software that was once available only to big companies is now available to very small businesses and individuals. That brings to mind Office 365 with Exchange, SharePoint, and Lync ($6/month!). There are countless other examples of both approaches.

As companies move from consumer to enterprise or enterprise to consumer, there are all sorts of subtle challenges. I suspect that those subtle challenges will be obscure memories within just a couple of years. More and more, people just expect their software to work.

Isn’t competition wonderful?

Autosave

My 8-year-old son Gus just had a nice day recovering from a great gymnastics meet by staying in his pajamas all day and alternating make-up homework (he was sick most of last week) with lengthy rounds of Need for Speed: Most Wanted, his new game for the XBox.

Gus takes his racing games very seriously … he’ll sometimes spend an hour or more customizing a car with wheels, parts, and decals (it’s kinda like photoshop – I think he’s learning design skills from this). When he’s having trouble overcoming a specific racing challenge … well, let’s just say it gives us all an opportunity to work on anger management principles.

So after a great day of racing and customizing his new game, he turned off the console and then looked horrified. “I forgot to save!” He was crushed. All his “work” from today was lost.

I thought for sure it was a mistake – doesn’t it just save as it goes along? I had him turn the game back on, but sure enough, it was back to where he started the day. Unbelievable.

I did an Internet search to be sure his work wasn’t lost and eventually discovered that you have to go through multiple menu levels to enable “autosave.” Obviously, I did this – if it didn’t have autosave, that game was going in the trash – but what planet were they on when they didn’t enable this by default?

You don’t have to guess what your users prefer … you can measure their behavior patterns. I don’t know if there’s an easy way to get telemetry data for XBox games, but there are various toolkits to measure users’ actions for web, Windows, and phone applications. When choosing default settings, I would tend to err on the side of NOT losing any data and only change that default if my measurements showed a vast majority of users bothered to go into a menu to turn OFF something like autosave. It’s possible EA did the research that proved most users didn’t want autosave on and Gus is an anomaly … but somehow, I doubt it.

I remember my friend Rory repeating his rant that the stupidest question in all of computing is “Do you want to save?” Of course I want to save! Why are you asking me that? Worse – how is it possible to forget asking me that??? Just save it and allow me to revert if necessary.

If you’re a developer, please – PLEASE – make it harder for your users to throw information away than to keep it.

SSP 131–“VC Dave” Dave Feinleib

Bob and I released show #131 of the Startup Success Podcast yesterday, featuring our interview with Dave Feinleib, better known as VC Dave and author of the book Why Startups Fail and How Yours Can Succeed.

I really like Dave – he’s been around the block, but he retains his sense of fun about building startups. He just happens to find it fun to build companies that affect lots and lots of lives.

My favorite bit of specific advice from Dave is to build your 30-second marketing video before you build your product. That syncs with a lot of other Lean Startup advice, but it’s simple, concrete, and fun. It forces you to figure out what’s the true value proposition of your startup. If you think you have a great idea but the people you’ve been talking to find it squishy, maybe you just haven’t packaged it well enough – figure out your 30-second marketing pitch to customers and make a video out of it. Brilliant.

Dave’s also a violinist, so he must be cool …

Thanks, Dave!

Upcoming Smart Bear Live–with special guest Mark Suster

Last year, Jason Cohen started a new question-and-answer show for startups to go along with his popular blog. It’s like “loveline for startups,” and he called it Smart Bear Live. It’s a GREAT opportunity to ask a question of a true startup guru. Or maybe you don’t have a concrete question, but you’d like to validate a business idea. That’s great (but don’t expect coddling). If you are a bit farther along and want to practice your pitch, that’s fine, too.

Your next opportunity to participate live is February 9 at 5p EST. Visit bit.ly/sblreg to register. This is your chance to talk with not one but TWO startup gurus, because Jason will be joined by noted VC Mark Suster. Jason expects to have an interesting guest host on every show.

A little more background on SBL and my involvement … after his kickoff show, Jason asked me if I wanted to help out. I jumped at the chance, since Jason is one of my favorite startup thinkers. I had been wanting to do a question-and-answer show of my own, but Jason knows more than I do and has a bigger audience, so I think I can do more good by helping him with his show than by doing my own. Now I’m scheduling shows, guests, and callers, and I’m producing the audio. I guess that makes me the producer. If you’re reading this – I’m your IN 🙂

There are two kinds of shows – onsite and call-in. The upcoming show on February 9 is a call-in show. You can listen from the comfort of your computer or phone (don’t forget to register to ask a question), thanks to BlogTalkRadio. We’ve done two of these call-in shows so far; listen to the recordings here and here.

Last month we did an onsite event outside Phoenix to kick off the next round of AZ Disruptors. Hamid Shojaee hosted, and I handled tech and questions. Jason actually stayed in Austin and Skyped in. It went great – it’s amazing to me how well it works to have a room full of people engage with someone projected on a screen. Audio recordings from that show should start showing up on Jason’s blog soon. If you have a community that could benefit from a local SBL meetup with Jason on Skype, please email me to discuss.

Smart Bear Live is a really big deal, in my opinion. Jason is smart as hell and really knows how to dig into startup details. If you’re stuck, he’ll get you unstuck. He’s the first to point out that he’s not necessarily right every time (editor’s note: he’s still probably right), but it’s the conversation and probing that’s useful for ANY startup founder. Take advantage of this awesome resource and call in!

Finally, if you have an abstract question that you want to ask without actually getting on the air, feel free to leave it in the comments below (or on the registration page). I will sometimes ask those myself in between callers. I will make sure the answer gets back to you.

Finally, when you are talking with other startup founders and reach that point where you think they need some help but can’t really put your finger on it … send them our way to ask a question.

Hello Node.js in 10 minutes

Many think that Node.js is the Next Big Thing in software development. As a way for creating web solutions, it’s got a lot going for it:

  • You write code in familiar javascript (so client and server match)
  • It uses event-driven, non-blocking I/O – which means that it’s really fast for certain types of operations and it’s easier to write certain types of applications
  • It’s open source AND it strives to support Windows as well as Linux

If you’ve been meaning to check it out, now is the time – all you need is 10 minutes to walk through this “hello world” – surely, you’ve got time for that …

Step 1: Install node.js from nodejs.org (I chose the Windows installation)

Step 2: Open cmd, add path, test node

Open a command prompt, and type

path=%path%;"c:Program Files (x86)nodejs"

To make sure that node itself is working, you can evaluate a tiny program right from the command line by typing

node -e "console.log('hey there');"

Step 3: Create, run, and test server

Of course, that’s not what node is really for – it’s really for writing web apps … so create a file called server.js and copy the following into it:

var http = require('http'); 
http.createServer(function (req, res) { 
  res.writeHead(200, {'Content-Type': 'text/plain'}); 
  res.end('Hello Worldn'); 
}).listen(1337, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:1337/');

This trivial example creates a web server listening on port 1337 of localhost that returns “Hello World” to any request. Run it by typing

node server.js

from the console and then test it by opening a web browser to http://127.0.0.1:1337/

That’s it! 10 minutes from thinking about node to running a simple “hello world” web server.

Soon I’ll get into the kinds of things node.js is good for, but first I want to show how easy it is to deploy node.js to Windows Azure – even if you don’t have a Windows machine (I’ll post that within a couple of days …)

Less than 100 percent

I read an article on ESPN recently where another pro golfer thought that Tiger Woods was going to have an awesome year this year because of how good his bad shots were looking. If his bad shots are not too bad, then his good shots must be amazing.

It made me think about my “bad shots” … namely, those days where I don’t feel 100% and things just aren’t clicking. Those days I miss the important email or forget to prepare for the important meeting the next day. How good am I on my bad days?

Last night, my 8-year-old son Gus went on the “puke every hour” plan and all three of us didn’t get much sleep. (He was remarkably cheerful, which made me really proud, and he seems to be on the mend. Should be fine tomorrow. On a related note, at what age do humans learn the relative importance of making it to the toilet for vomiting? I did SIX loads of laundry today to clean up the mess – definitely worth thinking about the next time you buy multi-colored bedding for a kid.)

Needless to say, I was not at 100% today. Took half a sick day in fact, because I was so unproductive. That said, it was a pleasant day keeping Gus’s spirits up, eating Jello, and eventually watching Airplane as a family. So while this “bad day” wasn’t productive, at least it was pleasant, all things considered.

How good are your bad shots these days?

Civilized conversation

I wish I weren’t so surprised when I stumble into a civilized conversation online, but I am. Obviously, it’s easy when you agree with someone but less easy when you disagree.

Discovering that you disagree with another smart person is a joy. It’s an opportunity to change their mind or your own. I suspect the lack of civility typically comes from a lack of openness to change. I simply can’t participate in conversations on Neowin, Engadget, Gizmodo, or similar sites, because people seem only to be focused on proving their own points and putting down others.

Real conversation requires a certain level of openness to opposing views – a willingness to change based on what can be learned from others.

Fleeting

Earlier today, I spent several minutes writing a multi-paragraph reply to a comment on a blog I read regularly. I thought it posted, but when I went back to see if there was a reply to my comment, it wasn’t there. What a bummer – I was enjoying the conversation, but I didn’t have the time or the energy to recreate my words.

I wish there were an easy way to save everything I type into a browser. There are many security implications, I know, but this has happened to me enough that I’m willing to make the tradeoff with security for the assurance that I won’t lose my work.

Broken windows

The broken windows theory postulates that the existence of one broken window in an abandoned building begets more broken windows – people are more likely to vandalize a building that has already been vandalized.

I don’t know whether this theory is true for actual abandoned buildings, but I see evidence that it’s true for me personally. Sloppiness begets more sloppiness. If I leave a scrap of paper on my nightstand, pretty soon it’s covered in junk. If I leave a piece of computer equipment on my desk, pretty soon the whole desk is covered. If a single dirty sock misses the hamper, it’s all over for having a clean room.

It’s not just “stuff” … a few years ago, I fell behind on balancing my checkbook and haven’t done it since. Whenever I fall behind on email, I fall really behind. Whenever I stop exercising for a bit, I get horribly out of shape. One bad turn deserves another it seems.

For me, the solution seems obvious – fix the small things before they become big things. Develop habits that keep basic aspects of my life maintained and in order. Easier said than done, but worth doing.

So what are your broken windows?