One of the difficult parts about programming is to figure out how to add features but still keep the program simple and intuitive. Every feature added, by definition, makes a program more complex. In the extreme, you get what’s called “feature bloat”. Even if you only have simple features but, say, 100 of them, it becomes difficult to even find the one task among the hundred that you want to do.
So as I’ve developed my alpha version over the last couple of years, I’ve been trying to finalize the features to be in Version 1.0. Many ideas have come along. Many excellent ones have been suggested by trial users and purchasers of Behold. Every feature I have added is core to what Behold is about. Behold must first display all your data logically and conveniently. It must have useful reorganize functions. And it must be set up in a manner that will allow it to advance towards direct on-the-screen what-you-see-is-what-you-get editing in Version 2.0. Everything else must in some useful way support that core functionality.
I have in the last few versions eliminated whole swaths of code and functions, such as the separate Name Index form, the GEDCOM viewer, complex numbering schemes, and soon I’ll be getting rid of the log file by incorporating the warning messages right in to the file sections of the Everything Report. All of these were done in a move towards simplicity and ease of use.
Sometimes I don’t see the simple way to do something. I’ve been working with Behold for so long, the internals sometimes get in the way of seeing the externals. So please let me know if there’s something that you think can be done simpler or more logically.
I am further inspired by a book I discovered a few days ago, called Getting Real, a book by 37signals about building software. If you’re interested, you can read it free online. I purchased a PDF so I can print it and read and reference it at my leisure. Although Behold isn’t an online application, everything else the book says felt like a mirror as to the way I’m developing Behold. The only thing I’m lacking, is that I’m taking too long.
So where have I been the last two weeks: I’ve finished the display of references to notes. This is tricky, especially since I display the note inline if there is only one reference to it, and in the index section if there is more than one. This is to handle the various flavors of GEDCOM which implement notes in different ways.