Tuesday, April 25, 2006

SQLGrinder 2 Beta 12 Now Available

The 12th and hopefully final beta version of SQLGrinder 2, the completely-rewritten version of our database development tool, was posted today. Requested features not yet added have been moved to later releases.

This release resolves various issues. Please see the release notes page for the full list of changes.

SQLGrinder is near release candidate status. Please make sure that you report any remaining issues, problems, crashes, etc. so that they can be fixed.

Also, just a reminder that beta builds are full debug builds and aren't optimized for speed, size, etc. yet, and carry the usual "use at your own risk" warnings.

SQLGrinder 2 is a Universal Binary, and will work on both PowerPC and the new Intel Macs.

SQLGrinder 2 Beta 12 can be downloaded here.
Pricing and availability for SQLGrinder 2

Pricing for the new version has been set at $59. During the beta period however, SQLGrinder 2 can be purchased for the current price of $49.95 with purchasers receiving a free upgrade to the final version once available. Owners of the current version can purchase an upgrade for only $19 by sending their current registration information to upgrades@sqlgrinder.com.

Shortly before the final version of SQLGrinder 2, those who submitted upgrade requests and who purchased their copies during the beta will be emailed upgrade coupons.

SQLGrinder 2 for Mac OS X is currently available for a limited time as an unlimited beta version, which anyone can use for free. Because of this, registration information does not need to be entered to use it.

The beta of SQLGrinder 2 can be downloaded from the Advenio web site.
Finally, you can subscribe to the release notes page, which now has an RSS feed, to stay up-to-date on what's changed and what known issues there might be.

Friday, April 21, 2006

Daring Fireball Turns into a Full Time Gig

John Gruber over at Daring Fireball is leaving his day job to live "The Life" (a phrase coined by him referring to Mac developers doing Mac development full time) and blog full time. Good luck John! I look forward to reading more great content from you. (This reminds me that I need to renew and get a new t-shirt...)

Tuesday, April 18, 2006

Two Blog Posts on Making Feature Requests: I Couldn't Have Said Things Better Myself

On Software DesignThis weekend I read two blog posts containing some of the things I've been meaning to write about for a while, which is: the hows and whys of requesting new features from us, the developers of the products you use and love, and what actually happens behind the scenes. First up is a Brent Simmons post at inessential.com. Brent, whose posts sometimes seem to inspire me to action in my own blog, captures things pretty well in this nutshell:
Imagine you’re in my shoes: you’re me, for a minute. Think about feature requests, for example—you have a list several hundred items long of really, really good ideas. You’ve heard pretty much everything multiple times, though now and again you do hear new ideas. Which just makes the list longer!

Then of course there are bugs to fix, schedules to meet, tests to run, docs to update, user interfaces to design, lots and lots of things. Most of your time is spent just sitting in a chair, coding, because that’s the only way things get done. (Oh, and then there’s email. And writing blog posts. And so on.)
I honestly couldn't have put it better. Your one feature, though important of course, to the developer falls somewhere on this BIG list of items, with the requests of a lot of other people. For me, things often get ranked based on number of requests. I'll admit features are also sometimes ranked by how badly I want to implement something as well, my own pet features if you will. (Hey if you can't do that as an indie developer, what's the point? You might as well be working for someone else and making a lot more money).

Brent goes on to describe the email messages that he, I and probably every other developer with an email address has seen: ones that try to influence the developer into adding the sender's feature. I've actually had a couple of the "being mean" approaches, and honestly, I don't understand what the person thinks might get accomplished. You catch more flies with honey is just as true when trying to influence developers. A nice, clear and concise message containing what you want, and how you would use it will work much, much better than "I'd buy your program if only..." or "until your application does X it's useless" messages, believe me. Good reading overall, and I recommend all non-developers check it out.

The second post from this weekend is from the Paul over at Rogue Amoeba. It's titled Pistols At Dawn or How Not To Request A Feature, which is actually from December of 2004. My how things change, and how things stay the same.

I love the list that begins the post:
This is simply a treatise on a topic familar to all developers, to which they may point as needed. It begins with a 3 things to keep in mind when asking for a feature:

1) Be aware that you don't represent all of our users.
2) Don't browbeat us.
3) Our job isn't as easy as it looks.

It goes on to detail again how difficult adding new features really is. It's much harder than the lay person would believe, especially if you are a developer interested in keeping a nice balance and design to your application.
The gruesome truth is that every addition has a ripple effect. Changes often expose little-known bugs or subtley corrupt the overall design. As an application grows, it becomes more and more unwieldy, a veritable Jenga tower of features, flaws, and fourteen hour days. Every change is a tremor that shifts the balance of the application.

True. True. I've been accused by one user of working at a "glacial speed" but really I only take the amount of time that is necessary to actually design and implement new features properly. You might be surprised at what can go into the design of even a small feature. Sometimes I build prototypes, sometimes I try implementing a nearly fully-realized feature only to decide that it doesn't work "quite right." I refuse to have features that appear to be "tacked on." Could I work faster? Definitely. Would the quality be as good or better? Absolutely not. I honestly believe in software as art, and art cannot be rushed. What Paul says next sums up the mindset I have as well:
We need look no further than Microsoft Word to see that it's easy to add lots and lots of things. There's a great word processor buried in there somewhere, but each and every user has to work to dig it out from under the 80% of features they'll never used. Instead of this jambalaya style of design, we strive for a simpler, more elegant (and Apple-like) approach. Our software may not do everything, but everything it does, it does well.
So true Paul, well said.

I'll end with what Paul from Rogue Amoeba ends with, which is a great conclusion:
Finally, recognize that it's never as easy as imagined to add a feature request. In fact, it's usually much harder. Ideas are great, please submit them - just give us the ability to say "we'll consider it" without needing to defend our very honor.
So, ask away, please send in your feedback, it's definitely appreciated, but know that a lot goes on behind the scenes from the time a request is received to when it is actually implemented. If you don't see it right away, know that it's most likely somewhere on "the list" and will be addressed at the proper time.