Decisions, Decisions, Decisions - Fri, 19 Dec 2014
We approach the end of December. I look back to the beginning of the year when I said, in fact I even made a new year’s resolution on this blog, that this year I’d get the next few versions of Behold out. Well, that didn’t happen. There were a few personal issues that I had to attend to, especially my father’s passing in the Spring, that left me less than 100% committed to after-hour work on Behold.
But the Gaenovium genealogy technology conference in Leiden, Netherlands in early October rejuvenated me, and put me back on the right track. I pledged when I came back to attempt to do some programming every day, and pushed myself with #amprogramming tweets from my Twitter account. Although I couldn’t quite achieve “every day” status, I have done between “some” and “lots of” programming Behold on 60 of the last 67 days since I started my every-day goal. I’ve made huge progress, and I’m still working hard to get a 1.1 version out before the end of the year.
During the past 67 days, as part of my improvements to Behold, I spun off a unique and useful freeware program I called GEDCOM File Finder. I know I’ll have fun using that in the future to harmlessly experiment with download sites and see what potential use they might have.
The last version of Behold I released was 220.127.116.11 on 26 May 2013 – that’s over a year and a half ago. That’s way too long as far as I’m concerned. But there was a reason for the delay. I had decided that my concept of Life Events was just too important not to include in Behold. Behold’s unique method of including the source details in the report right with the data would allow a full detailed analysis of a person’s life in context.
You’ll notice that one of my first blog posts about Life Events is from two and a half years ago. This was entirely new and I was trying to come up with just the right concept and the needed implementation. It wasn’t easy. Core data structures needed to be rewritten and optimizations needed to be made so that it wouldn’t significantly affect the program’s performance.
While doing so, I realized there was yet another important concept that would be necessary. A year and a half ago, I posted my ideas about displaying “Who’s Alive” at a given event.
So I experimented and attempted to implement these. Each time I did something significant, I created a new Behold development directory on my computer. Each step made some progress, but I often had to backtrack. This wasn’t easy. Decisions had to be made all along the way. After 2 and a half years, I ended up with 21 different development directories of Behold – each of which contains some successful steps forward, but there always seemed to be a stumbling block.
It almost all worked, but it was very complicated. An example of what I puzzled over is how to figure out the proper ordering of events when all the dates are not given. Another is how to determine who might be alive at a given date when ages are not known. If a person had 12 uncles, how to best identify them, maybe by numbering them some way. Would a direct uncle be treated differently than one through marriage? How to deal with half-family, step-family, and adopted family. How to allow user-defined naming of all the relationships, so that they can be translated to other languages. There were lots of decisions to be made.
I do have an almost-working version of the complete system. It has a lot of loose ends to it, but it still might take up to six months to get this all working well enough for release. My efforts during the past 67 days have led to another decision – an important one:
I was working with the output of my prototype and I realized there was a problem. There was just too much there. I was providing all the family events for each person’s parents, children, siblings, grandparents, grandchildren, uncles, aunts, nephews, nieces, all their spouses, father/mother-in-laws, son/daughter-in-laws, second marriages, step-children, step-parents and the like. In addition I was providing a listing of all of these relatives who were alive at the birth, each marriage, and death of the individual in a smart fashion, so relatives of the first wife would not be included at the 2nd marriage. What do you think I got? I got way too much information. Each person became a timeline of enough events to take up many pages. Yes, it’s very interesting and relevant, but it is simply too overbearing and that makes it heavy baggage and untenable. The context of the person in the tree gets lost. It is more like a book about the person. Yes, I did add a toolbar button to show it and hide it, but even so it is one step removed from being primary data, and it makes the primary data more difficult to analyze.
So, the decision for now is to implement just the simple and most useful parts of the prototype and to show Life Events for only the closest relatives (parents, children, spouses, and maybe birth of grandchildren and death of grandparents), and not include the “Who’s Alive” feature.
Even cutting this down, the resulting version 1.1 will still be amazing. There are a lot of improvements already added and I’m itching to get it out as soon as possible, still with the attempt to do so before the end of the year.
Over the past few weeks, I’ve been adjusting my plan. If you’ve been following my future plans page which I use as my roadmap for Behold, you’ll have seen significant movements of items to and from Version 1.1. I enjoy checking off each item as I complete it. Watch me get closer as I check off the remaining items one by one.