In This Edition:
2018 Begins with 7.0.4 Release
1 January 2018 — When this boat began to float early in the summer of 2002, we promised we would stay in touch, and stay in touch we did. Today’s edition of The Latest Word marks the 129th time we have posted this column in a little less than 16 years.
In every year except this one, our final post occurred in December. In ten of those years it occurred in the final seven days of the year, and eight of those were on New Years’s Eve itself. We have used those messages to provide a realistic assessment of where we were on these evenings, something we have occasionally called “the state of the code.”
Today we introduce a small variation. If anyone out there lost any sleep not seeing an announcement as 2017 drew to a close earlier this evening, our sincerest apologies. This announcement is where we begin the new year, rather than end the last: Today, in the opening moments of 2018, Helix 7.0.4 is available for immediate download. Although 7.0.3 had been very enthusiastically received, between the end of September and now there remained a few matters of unfinished business we wanted to wrap up so we could fully focus on the future. We also wanted to offer some final thoughts about the time that has led us to this moment.
Make the future, fix the present, change the past
2017 was marked by three broad, significant events. For the first time since the “Helix Recovery Expedition” began back in 2002, we shipped an honest to goodness feature update. Our hearts were full of hope. That was the first event.
But shortly after the release of Helix 7 in December 2016, we had to relearn the difficult lesson that enthusiasm is never enough. As the initial release began to make its way through the Helix community, problems we somehow missed in testing began to sour the user experience and force us back to the drawing board to figure out how to fix the mess we had created.
We worked diligently to address every bug that was reported. We released each group of fixes as we became sure that they caused no additional harm. Helix 7.0.1 and 7.0.2 were improvements, but it was not until the end of October that 7.0.3 arrived to conquer the most egregious faults and finally provide some much-needed stability.
Under the hood, Helix is an incredibly complex tool, with seemingly countless routines that stand between the designer’s concept of what he or she is trying to accomplish and the application that results from using Helix to realize that vision.
Developing software is always like shooting at a moving target. It is incredibly short-sighted to say that once something works as designed, you can plug it in and let it run and move forward. When changes in hardware and operating systems and the desire to implement new functionality come together, we are often unable to create the future without, to some degree, improving the past.
As a careful reading of the Release Notes that accompany Helix 7.0.4 will show, two groups of bugs were fixed in this release. The first group were bugs that were introduced since the release of Helix 7. The second group were bugs that have been around since before that time. While there were few “show-stoppers” in the bunch, they were all, in our estimation, things that detracted from the end-user experience enough to elevate the importance of correcting them from casual to critical.
Now, in addition to improved performance and stability, more of the look and feel of Helix has been restored and improved. Its responsiveness provides an improved level of comfort. We’ve even fixed a number of apparently random or inconsistent types of crashes that have plagued users for a very long time.
These corrections and improvements were, collectively, the second of the three events.
The third event
What then, was the third? That one nagging issue that remains? It goes by various names, like “the elephant in the room,” or the “eight-hundred pound gorilla.” And while it isn’t a software technology issue per se, it is important nonetheless because without dealing with it, there is simply no software.
The fifteen and a half years that this group has managed Helix has made us the longest stewards of the Helix code (formerly referred to as “keepers of the flame”). In that time, in very broad stroke, we have torn Helix from its Classic roots and grown it into a citizen of the modern world, able to function on the latest Macs with the most current OS installed. We have modernized its networking architecture. Twice! We have made it run on Intel Macs. We have updated how it handles text and graphics. We have removed any and all impediments to allow Helix applications to scale to sizes previously unthinkable. We have done the hard work that everyone who came before us avoided in order to squeeze as much money as possible from the dyed-in-the-wool process of upgrade marketing.
As proud as we may be of what we have accomplished, we never lose sight of how difficult it is provide the funds needed to pull this trick off. In QSA, we created a virtual company to nurture Helix, a move that saves us money every day. We incurred a tremendous amount of good will in our user base by making each individual who might have been wronged by a previous owner into a die-hard friend. We were very fortunate to be able to create features for people who needed them badly enough to underwrite the cost of that development, features that benefitted all users. But most of all, through this entire process, the engine that has funded the trip from the old Classic Helix 4.5 with its legion of reported problems to the macOS Helix we have today has been you. The users.
In these fifteen and a half years, we have spent your money quite judiciously. Our vigilance in this regard was due to the fact that we had learned from the mistakes of those who came before us, and were determined not to repeat them. Of all the factors that have worked to undo any successes Helix has enjoyed in its history, the one that inevitability shipwrecked prior stewards was debt. In fact, we learned of its last steward’s demise in a call from someone who had quite literally driven past their building and found it sealed by court order. When you go into debt you become beholden to someone who can shut you down at a moment’s notice, and that has been the case more than once in Helix’s history.
Consequently, and for the sake of not ever leaving Helix users in that position again, we adopted a pay-as-you-go mentality. We would work as fast as sales and upgrades allowed, and when the money ran low, we would pace ourselves accordingly. But we would never run up debt such that the future of Helix would be in doubt. We have been blessed on this journey by the fact that our two principal programmers — Larry Atkin and Steve Keyser, both Helix veterans from its earliest days — have been able to work part-time whenever the need to replenish our coffers necessitated it. The debt of gratitude we owe them is one we can only hope to repay one day.
Working almost at odds with our frugal tendencies, we have always preferred to put working technology into our users’ hands sooner than later. Why make someone wait any longer than necessary? This preference unfortunately results in more releases, which requires alpha and beta testing before anything else, taking unpredictable amounts of time and steadily eating money. More than a few times, it seemed we were almost there as the checkbook started running low. Somewhere along the way we decided to pre-sell the next release, knowing that our customers’ loyalty to Helix would result in an influx of cash that might propel us across the finish line. We never liked the notion of selling something that didn’t quite exist yet, but we did it and we have only ourselves to blame for any adverse consequences of working that way.
While this marketing approach has successfully seen us from there to here, it has nearly always been accompanied by an ever increasing distance between the starting point of pre-sales and the delivery of that product. Helix 7.0 is our most ambitious project so far. We began development in July 2014, and started pre-selling it on May 1, 2015, a full 18 months before we actually shipped the first release. Adding the year we have spent refining it, and you have 2-1/2 years of work financed in large part by pre-sales. Once again we have crossed the finish line ‘running on fumes.’ But cross it we did, and Helix lives on.
With the foregoing in mind, there are new “inevitables” we must now face: What is the role of Helix in the years that lay ahead of us? What must we do to assure that a product like this can remain relevant in a future so hard to predict? And how can we be sure that when we are no longer here to create that future, Helix will go on? We intend to address these questions in the days and weeks to come. Much of what we need to do has been discussed at length already and we have a few fairly clear pathways to the results we seek. We believe the stability of Helix 7.0.4 will decrease our support burden enough to afford us the luxury of being able to develop those plans in great detail and find the funding to make it all happen. Until then, however, lacking significant investment, Helix can only progress as fast as upgrade dollars permit. And because of what it took to get where we are, that is not very far.
But we have made our collective commitment to do whatever it takes, and as soon as we have a concrete and realistic plan for how to get there, we will tell you where we are going. Until then, please download and try this latest version of Helix and from all of us, we wish you a very productive and prosperous 2018.