Thursday, September 20, 2007

On Simplification and Adding New Features

On Software DesignSimplify, simplify, simplify. It should always be one of your goals when designing and developing software. I'm a big fan of simplification. There's a certain elegance and single-mindedness to a simple application. But there's at least one problem: for every user who wants an application to stay simple, there's at least one other who is demanding feature "X."

I'll use MacGourmet as an example. Version 1 started with the "keep it simple" goal of not adding too many features, of keeping things almost to a minimum. Some people liked the application this way. Soooo many others demanded more fields, nutritional calculation, menu planning, more publishing options, more printing options, more import and export options... well you can see where this is going.

It's really, really hard to do both: add the features users really want, and keep things simple at the same time. For instance, there is just no easy way to add nutritional analysis and menu planning to MacGourmet, not without complicating things somewhat. Each of these features requires new UI elements, and new organizational elements. You need to somehow incorporate them into the user interface, without overwhelming it or cluttering it up, and this takes time and thought, and well, design.

On top of meeting the demands of your users who want more, there's the drive to "release or die," the reality that in order to keep your application selling and generating revenue, you have to keep doing releases and updates. Beyond bug fixes and minor enhancements, this usually means new major features, especially if you want need to charge for your upgrades.

Finally, as if all this weren't enough, it really doesn't matter what people ultimately use and what they don't, when purchasing and picking their application from a group of competitors, they will often ultimately pick based on feature set, whether or not they will use all of the features. Then, however, they don't want the unused features in their face while using the application. It's a difficult balance to maintain.

So, what's the solution? How do you keep things simple, add new features, and keep making money? There are many schools of thought on this.

The first one is pretty much K.I.S.S (Keep It Simple Stupid). Essentially, just don't add major new features, Keeping things simple, and very focused instead. This works, if what you are doing will always appeal to new users over time, and what you are doing satisfies enough people. This path can suffer though, when your application is compared to competitors in the same space.

The second possibility is some kind of adaptive UI. Microsoft tried this with Microsoft Word, hiding little used features and menu items, but I personally found this maddening. Things would just disappear if you hadn't used them in a couple of weeks, forcing you to try and remember where it was in the first place, and to search for it's location if you didn't remember.

Finally there is the plug-in route. Start simple and let people add things "a la carte," instead of loading up your application with a bunch of features, all of which next to no one will use in their entirety.

I chose the third method for adding major new features to MacGourmet. Plug-ins allow you to add and remove features as desired. They also allow me to keep MacGourmet, at its core, much simpler than if every feature that every user ever wanted was added to the base product. I've already received some push back from people who say MacGourmet 2 is more complicated than the first version, and they're right, it is, but that's only because so many people had been asking for so many things.

Starting with Nutrition, major new MacGourmet features will be made available via optional plug-ins, some free, and some at an additional cost. Doing this, however, will allow the base application to stay as simple as you want it to be, and hopefully I'll be able to maintain the "free upgrades" path that it's been on so far. Don't read this the wrong way, there will still be major improvements to the "core" application, like a much improved shopping list (which has already been redesigned) and other features that are considered essential to a basic recipe application. The good news for some of you, if all you want is the basic application and if this method works, is that you'll probably keep getting improvements for free. So long as the basic application keeps paying its way with new users, there shouldn't be a need for upgrade fees.

Labels: , ,

Wednesday, September 19, 2007

MacGourmet 2.2, MacGourmet:Nutrition Released

Check out MacGourmet News for information on MacGourmet 2.2, the latest update to Advenio's recipe organizer, and an all-new add-on plug-in to MacGourmet, MacGourmet:Nutrition which adds ingredients based nutritional analysis to the base product.

Labels: ,

Sunday, August 12, 2007

Getting Out of a Coding Slump: The Art of Code Noodling

On Software DesignI'm not sure about other developers, but sometimes I think I'm sort of a "manic-depressive" coder. I will go though great bursts of productivity, only to hit a "coding block" at some point. I can get sick of working on one thing for too long, or even one product, and I just need a change. What this really is is a kind of coding burnout, which can really kill my productivity if I let it.

One thing that I've found over the years that really helps me get out of these slumps is something I call "code noodling." Those familiar with jam bands like Phish probably know what noodling is in some context. It's sort of a free-form, experimental, unscripted way of playing music on stage, but I do this when writing code.

How so? Well, I like to prototype and design pieces of code. I will often have unimplemented ideas floating around in my head and I've found that when I hit a slump, these ideas are great ways to put me back on the productivity track. When I work on something product related, like something for a new feature, noodlings give me a nice change of pace while at the same time allowing me to make progress on an overall product roadmap.

The new widescreen option and the "summary" table view in MacGourmet 2.2 are good examples of this. I'd been noodling around with them for quite some time, trying out different ways of doing things, etc. There are actually several things going on there that will be incorporated into additional new features in the future. At some point, a lot of my noodlings result in new features. I've found that this is often the case. I start playing around with ideas, and eventually they are "done" and ready to be incorporated into a product.

MacGourmet is actually the result of a noodling. At one time it was just a small idea I was playing with. Three years later it's how I pay the bills. I've been doing a lot of code noodling lately, not really because of a slump, but because I've been working on a lot of new things at once. Expect them to bear lots of fruit before too long.


Tuesday, June 19, 2007

On Development: So You Want to Run a Software Promo?

On Software DesignSo you've got a cool software product for the Mac, and now you're looking for ways to either get exposure, or boost your sales. Well you could send out press releases, and send your news to Mac news sites, but this can be very hit or miss for a lot of us, especially when starting out. What do you do now?

Well lucky for you there are a bunch of options that you can take advantage of whether your app is new or already established. I've used 3 of them so far, MacZOT!, MacUpdate Promo and MacSanta, and this is information on what I've found.

Let me just say up front that all 3 work. They will all give you a bunch of discounted sales and a bunch of new users. Let me also say that I used all 3 in "discount" rather than "giveaway" capacities. I'm not really interested in giving away product so much, I don't really see that as a viable business model, but I like to run discounts of various percentages from time to time. I think sales are a good way to sell to the "window shopper" who may not be looking for your product necessarily, but with a discounted price, will pony up and take a chance. It's also a great way to grab those people who intend to buy your product, but never seem to get around to it. A nice discount is a great incentive.


I first tried MacZOT! not too long after it launched. MacZOT! runs a new deal every day. Sometimes the deals are discounted, but other times they are "mystery" packages that you buy without knowing what you are getting. The mystery bundles I think net you more users, but my understanding is that you don't make a lot per sale. I listed MacGourmet there as part of a one-day deal for $17 (about 30% off), and sales were decent, not gangbusters, but OK for a single day certainly.

Overall the experience was positive. Set up was probably the most difficult for them. At least at the time, they didn't have a fixed format you could drop your info into, so I think they grabbed (what used to be god-ugly Dreamweaver generated) html code directly from my site. The MacZOT! cut was reasonable (I don't recall exactly what it was at the time) and I was paid in a timely manner via a PayPal. Instead of distributing serial numbers, we essentially sold 100% off coupons to be used in the Advenio store. This worked well. It added people directly to my database, and serial number delivery took no special work.

MacUpdate Promo

Following on the heels of macZot! is MacUpdate Promo. Just like macZot! they run a new deal every day. I listed SQLGrinder there recently for about 50% off ($29.95 vs. $59). MacUpdate's cut was 40%, which is high, but you can get a lot of sales using them. A lot of people go there every day, and MacMinute currently covers each daily deal.

Setup was totally painless. Because SQLGrinder is already listed on the site, they already have all of the information on the product. The one glitch I had with them (because, I think, of some sort of vague communication) was with the distribution of serial numbers. I thought that I'd give them a chunk of pre-generated serial numbers at the end of the day, and they'd send them out, but actually you are required to distribute them. Both generating them and distributing them turned out to be a pain for me, because of the system I have in use (eSellerate), but your mileage will vary. With 3 options, I think this part of the promo will be a lot less trouble for some people.

Overall, for what I consider a "niche" product (Mac database developers), sales were quite good. Good enough so that I'd consider posting MacGourmet there at some point, if I could find an easy way around the serial number distribution bottleneck I mentioned. Finally, one drawback is that it took a week to get paid via a PayPal. Why that is, I'm not sure, but that seems to me to take longer than it needs to. Just something to be aware of.


While the two previous did work for me, MacSanta worked the best by far. Major props have to go out to Paul Kafasis of Rogue Amoeba for setting this up around Christmas last year. MacSanta was easy to do, Paul took care of the placement, and everything used a single 25% off coupon code (MACSANTA), redeemable though each developer's store. Because of this, developers got to keep the greatest amount from the promotion, rather than having to fork over a substantial percentage to a third party. Even now, the MacSanta page stands as a great index for some awesome Mac software. In addition, I thought it did a great job of promoting community spirit among Mac developers of all sizes. Please Paul, run MacSanta again this year, it was great.

So there you go, my personal experiences running promotions using some of those available to indie Mac developers. I've used all three of them, all 3 were positive for me, and all 3 are promotional vehicles I'd consider using again.

As one final note, it is also possible to run your own promotion. I ran one with a discount for the MacGourmet 1 year anniversary, and sold about as many copies as I did during the MacZOT! promotion. The problem with this of course is that unless you can get some news sites to cover the promotion, no one will know about it. 2 out of the 3 promotions I mentioned already have built-in audiences, which makes your job half as difficult.

Labels: ,