
logos-bible-study-software for
Starting Over Again
By Joe Felim
In early 1998 we outlined the plans for the Libronix Digital Library System - the biggest and boldest vision in our corporate history and a completely new platform for Logos Bible Software. Keeping only the capability of reading our existing electronic books we otherwise started over, designing a system of abstract interfaces to modular components that could, theoretically, be expanded to do almost anything.
Of course experience had taught me that compromises would have to be made. As beautiful as our abstract system was, there was no way it would actually run on the technology available to us and our users. From the beginning I knew we would have to hack-up the actual implementation with optimizations and “special case” code to stay within our limitations.


As we implemented the system, though, we were surprised to find that our computationally-expensive, large, abstract system was actually fitting quite well within our technology limits. During the development cycle we also upgraded our computers and software tools and found that the things we expected would be difficult or even impossible to do were getting easier every day. The ugly hacks we’d resigned ourselves to needing weren’t necessary. We never took the shortcuts we thought we’d take.
As we neared completion we started giving demonstrations of the system to people inside and outside the company. In the past this necessary step was always very frustrating. No matter how much input you solicit at the beginning of a project, when you’re almost done and users can actually see and test it they come up with all kinds of feature requests and ideas that simply can’t be done. The architecture is set in place, the code is almost complete, and there’s no way a major new feature can be added.
This round of testing began just like all the others. The programmers showed the product, the users asked for little fixes and big new ideas, and the programmers agreed to the little fixes and said no to all the big new ideas.
And then something different happened. The programmers thought about the big new ideas and realized that some of them could be done quite easily within our modular framework. So they tried a few, including the ones they were sure would run just too slow. But they weren’t hard to fit in. They didn’t run too slowly. They all worked.