Blue Sky On Mars

Thoughts on Building Software Products

Month: October, 2010

The Point of Diminishing Features

by Kevin Dangoor

Making software products is a great business. You release version 1 and start selling, followed by new major versions from time to time that generate further upgrade revenue. A good product can give you a nice ongoing business.

It seems like a lot of products, and not just software products, are really exciting when they first come out. People go gaga over the product and buy it by the truckload. Then comes the next version, and it’s got some huge improvements and people happily snap it up. The next version really puts the polish on, and again is a hit. In fact, I think I’ve seen it said that Microsoft products don’t really hit their stride until 3.0.
But I think that’s precisely where the “point of diminishing features” is reached. The product went from intriguing to great to “use all the time”. The improvements made after that might entice some new customers but no longer really shine for the existing customers.
Let me make that more concrete: Microsoft Office hit that point a long time ago. Or, more specifically, Word, PowerPoint and Excel. The only useful features Microsoft could add were features that were useful and exciting to a very small subset of their audience. Upgrades to those products simply wouldn’t be exciting enough for most people. And, major UI reshufflings just annoy people, rather than making them want to upgrade.
In the case of Office, since almost everyone buys it as a bundle, Microsoft had the option of creating entirely new products like OneNote and then making it seem like a no-brainer to just buy the upgraded suite.
Watching the Apple “Back to the Mac” keynote, it really felt like iLife had hit the point of diminishing features. Watching Steve Jobs, I didn’t get the impression that even he was truly excited about iLife ’11. He seemed most excited when he introduced the new MacBook Air.
I wanted to be excited by iLife ’11. There were features there that were “kinda neat”, but nothing that made me want to grab the credit card and head out to the store.
What’s the cure? “Think different”. Try to come up with fundamentally new ways for the customer to do things and use that type of product, or create features that take something that you frequently want to do and turn it into a quick, fun task. Making trailers looks like fun in iLife ’11, but I don’t actually want to make trailers. I’ll be curious to see how many of those things show up on YouTube.
Mac OS Lion seems like it will be way more interesting than iLife ’11, because Apple is bringing a bunch of unusual new ways to work with a full computer in from the iOS world. And, you can bet that we’ve only seen a piece of Lion.
I think iWork has the potential to be exciting, just because so many features are still missing from Numbers and Pages. iWork doesn’t feel like it has reached “3.0″ yet.
I’ll end this line of thinking with a product that ran for a good number of years before hitting the point of diminishing features: the iPod. The iPod had a good run of big new features because Apple was willing to take major moves like drop the best-selling mini in favor of the new and untried nano.
If you’re working on a product and find yourself unable to be truly excited by the features coming in the next rev, maybe it’s time to go back to the drawing board and rethink some fundamental aspects of it.

Next steps for Mozilla Developer Tools

by Kevin Dangoor

I’m going to use this opportunity to make a couple of observations about Mozilla and planning. If you really just want to know about what we’re thinking of doing next in Mozilla’s developer tools group, you can take a look at the current draft of what we’ve got in mind for later this quarter. There are links in that document to join the dev-apps-firefox list or to email me. If you have feedback, let me know.

Now, for some thoughts on planning at Mozilla. I started working at Mozilla as part of Mozilla Labs. In Labs, we would often let an idea bake a little bit before turning it loose on the world. We wanted to have enough of an expression of the project available to show people what the truly idea is before they pass judgment on it. Open Web Apps was like that. A couple months back, an early take on some of that code was in a project called “vapour” on github. But, there are a lot of pieces involved in creating a coherent open web app ecosystem and getting a coherent picture together before starting the public conversation around it seems like a good approach to me.

Working on Firefox, however, is different. Firefox is an established project with a huge and active community. There have been a couple of times since I joined the Firefox team where I was discussing something with someone who then said “this discussion should really be in some public forum”. I think that’s fantastic. Firefox development is a public project from the first kernels of new ideas, as those ideas grow, when they ship and beyond. Firefox 4′s Panorama feature was like that. Ditto for Personas, which started out in Labs and eventually became a core, and very popular, part of Firefox.

Working on open source software is great, because it makes it possible for people to add to the project in so many ways. Collaborating with other projects both complementary and similar is much less formal (and risky!) than the kinds of partnerships that form between closed companies.

On the flip side, software projects get messy at times and, with Firefox and other Mozilla projects, that mess is out in the public to see. I’ve seen a handful of articles over the past few months written by people that didn’t really get this. Every company has dates that slip, features that are dropped, etc. With Mozilla projects, you get to see this happening as it happens. With closed software projects, you just see the final result.

I did some work with a company a few years back where one of their mottos was “plan is a verb”. Sure, plan is also a noun… but, in their world, planning is something that happens all the time and a plan is just a snapshot of the planning that’s going on. Any plans you see me post should definitely be viewed in that light.

We want Firefox to have the best developer tools of any web browser, and we want to push dev tools for the open web in new directions. You can help through ideas, code, tutorials, etc. Join us on the dev-apps-firefox mailing list/newsgroup, join the Firebug project or email me directly if you want to help.

And, in case you’ve read this far, here’s a link again to the current snapshot of our planning.

The Open Web App Prototype

by Kevin Dangoor

For some time, I’ve thought that many applications written as native applications for many different platforms could be done just as well as cross-platform web applications. I understand why people would make a unit conversion sort of application as a native iOS app, to give one example, but I’ve thought it’s a shame.

Some others within Mozilla gathered up a lot of opinions, put in a bunch of thought and then put together a prototype which they’ve announced today: Prototype of an Open Web App Ecosystem.

This is really cool. They’ve come up with a good solution that is truly open along every axis. Anyone can build apps and sell them through any channel (including their own!). This is the way apps should work.

Most “app store” designs lock people into a platform. It’s great to see an alternative ecosystem without the lock in.

UNIXy/VPSTree’s $0.99 VPS

by Kevin Dangoor

A $0.99 per month VPS?

Yes, it is here and ROCKING! For USD$0.99 per month, you can get your own virtual private server (VPS) for LIFE

Only 5GB disk space and 20GB of data transfer, but it’s $12 a year! Holy cow. Not sure how much you can stuff into 64MB of RAM, but I’d imagine you could fit a cute little node app in that.

blobastorus: free storage for client side JS apps

by Kevin Dangoor

blobastor.us is a free data storage service that is optimized for HTML5 web applications. The service is designed to be interfaced from javascript in the browser and to eliminate the need for a server component for most little HTML5 apps. Twitter is used to provide authentication and user identity.   

Lloyd amped up an idea that Atul put forth just a few days back. 20K per user per domain of free storage for JSON blobs. Basically zero effort to store a little bit of data for purely client driven apps. Makes serverless coding in the cloud seem a little more reasonable, no?

Generosity in Marketing and Open Source

by Kevin Dangoor

Seth Godin has written a number of times about being generous, most recently differentiating between “free samples” and “generous gifts”. Seth himself has given generously and benefitted handsomely. For one, just look at his great blog to which he has posted wonderful ideas, free for the taking. Another interesting example: recently, I received a copy of The Mesh:

Apparently, I received this book because I had bought Seth’s Linchpin. Which, by the way, I received by donating to the Acumen Fund and not giving the money directly to Seth. Oh, and I think they sent me two copies instead of one.

I’ve seen a lot of “internet marketing gurus” work the “free sample” angle that Seth is talking about. They give you an ebook for free, get you on their mailing list and then try to sell you lots of random internet marketing-related crap.

Seth undoubtedly knows that all of these things that he does get people talking about him and his ideas. Ultimately, he wins (Linchpin is currently in the top 800 sellers on Amazon, nearly a year after its release). But the way he approaches things feels generous. Donating to the Acumen Fund both made me feel generous and receiving the books in exchange made me feel like Seth was generous as well. How’s that for a promotion?

Over the past decade, I’ve read a good deal about marketing and I think that Seth Godin is the most positive force in marketing today. Read his books, read his blog.

In the title, I promised to relate all of this back to open source. One thing I love about open source software is the generosity that I see there. People make open source software for all sorts of reasons. Some people kick it off specifically to support a commercial venture – a variation of the “free sample” that Seth writes about. Others just sort of toss it over the wall as if to say “hey, I’ve got this thing, maybe you’ll find it useful…”.

But, I’ve also seen quite a few open source projects where people are just trying to make the world a better place through their software. They’re not just tossing it over the wall. Instead, they’re sending a prized creation into the world and continue to nurture and support it. That takes a lot of energy and work, and it often seems like a thankless task at the time. But, you know what? I think for a great many of those projects it actually works out okay in the end. In one form or another, the people behind many of these projects find their careers heading in new, unplanned directions as a result of the work they gave freely.

Brad’s Zoomy slide deck

by Kevin Dangoor

Brad Neuberg on his new HTML5 slide deck:

I’ve created a 3D slide deck that uses HTML5, CSS3, and a bit of SVG (video). The main idea behind this deck is to be able to ‘zoom’ into topics to as deep a level as necessary. Slides are nested, like an outline.

The last presentation I did was also HTML5, using dzslides. The ability to dive deep into topics or skip over is a really cool feature of Brad’s slides.

Breadcrumbs for Code

by Kevin Dangoor

Laurian Gridinoc has an interesting idea for navigating through code in an editor… make a stack of breadcrumbs at the top of the editing screen. Seems like an idea worth exploring.

Rust: Convenience, Speed and Safety

by Kevin Dangoor

From Patrick Walton’s introduction to Rust’s type inference:

Although Rust isn’t a scripting language, it’s designed to bring much of the convenience and readability of scripting languages (dare I say “agile development”?) to large-scale projects.