For some time now, we've been hard at work on the next major upgrade to Accordance, version 7.0. We're now just a few weeks away from release, and I've finally gotten permission to start showing you some of the new features you can look forward to. But before I start previewing all the new goodies, I thought I'd give you a behind-the-scenes glimpse at the process we go through when developing a new upgrade.
Every upgrade starts with a list of new features which we hope to add. Some of this list is comprised of features which we may have wanted to do for years, but which, for whatever reason, we've had to keep putting off. Most of the list comes from the suggestions which you, our users, have made. This list always contains much more than we could ever hope to do in a single version upgrade, and so each new development cycle begins with a meeting to set priorities.
This is without a doubt one of my favorite parts of my job. It's where I get to lobby for those features which I really think will be cool and useful. A few of us go through the list and give our opinions about whether a particular feature has to be done, would be nice to add if we can get to it, or is not worth doing at all. (By the way, it's rare that we ever scratch a feature off the list completely.) After this meeting (or series of meetings), our list of features gets divided into three categories: Must-have features, major features, and minor features. Major features are those which require the most work, involve changes to the interface, have the greatest potential to affect other parts of the program, etc. Minor features are usually incremental improvements to existing features, little tweaks that make life easier and more convenient, etc. Must-have features may be major or minor, but whether big or small, they're the features that we believe absolutely have to make it into the next revision of the program.
Once we've got our list prioritized, we start working through the must-have features. Typically, we'll start with the major must-have features because they take the most time to develop, require the most thorough beta-testing, and represent the bulk of what our users look for in an upgrade.
As our programmer moves through each major new feature, I have the privilege of being involved in the discussions of how the interface for those features should look and work. This, as you may imagine, is another highlight of my work for OakTree. Let's face it, every Mac user fancies himself an amateur interface expert, and I actually get to be involved in shaping the interface of my favorite Mac program. How cool is that?
A new interface element may begin with a mockup developed in a painting program or simply sketched out on paper. Then our programmer will implement what we think it should be like. When we get to try it out, we may find that the way we initially imagined it working feels wrong somehow, and we'll tweak it and refine it until we think we've gotten it right. It's great fun to be part of this give-and-take process.
Of course, this process takes time, and many features take more time to develop than anticipated (often because they've grown into something more than we had originally conceived). So throughout the development cycle, we meet from time to time to review our list of priorities. Does this feature have to make it into the initial release, or could it wait for 7.1 or 7.2? Some features will get pushed back to a planned free update, and we may even decide that a few will just have to wait for version 8.
Eventually, we'll get through the major features which have remained on the must-have list, and then we'll crank through as many minor features as we can before our planned release date. When we finally stop adding new features and move on to beta-testing and fixing any bugs that are found, we inevitably feel like there was so much more we wanted to do. There's always some cherished little feature that one of us wanted that just had to get put off. Yet when we actually sit down and list all of the new features which have been added, we're amazed at how far we've come.
I did just that recently. Sitting in my car, waiting for my boys to get done with an activity, I listed all the new features I could think of. I managed to forget a few, and a few more have been added since I made my list, but when I looked at everything I had written, I got really excited. Version 7 will have something for everyone, from scholars to pastors to laypeople, and from new users to power users. In the coming weeks, I'll start pulling back the curtain on some of these new features. Hopefully, they'll excite you as much as they do me.