I liked the idea of growing a tale so much that I was going to call my software BookTree, if I ever wrote it. BookTree also referred to the idea that you would use a tree view to organise your ideas – a “tree view” in Windows is what is known as an “outline view” in OS X. I got the idea for BookTree from a piece of PC software called NewNovelist. I looked at the screenshots and ordered it in the hope that it would be a decent organisational tool for my writing. Incidentally, I know a lot of people say that writing software is pointless – why can’t you just use a cork-board, some index cards and a notebook like everybody else? I’ve tried, believe me I’ve tried. But my desk gets snowed under, I can’t find anything, I end up rewriting index cards and synopses and spilling coffee and going mad and… Well, you get the idea. And is anybody saying that a real writer doesn’t need a word processor? No. No sane person, at least. Good software just virtualises a real-world process, it doesn’t try to force you into working in a way that you wouldn’t were you using real-world methods… Which brings me neatly back to NewNovelist. NewNovelist was a great disappointment. It was completely rigid. The outline list on the left of the text view could not be changed – it had twelve items and that was that. And each of these twelve items corresponded to Christopher Vogler’s twelve-step interpretation of Joseph Campbell’s Hero’s Journey. Groan. Enough already. I don’t want to follow some pre-set plot, thank you very much.
But the more I looked at NewNovelist, the more I thought, “Now that would be great – what a missed opportunity. All you need is a completely free outline view on the left which controls which text you see on the right… How hard can it be?” So I started a search for software that could do what I wanted. And whilst I said in another post that writing organisational software is rife on the PC, most of it is clunky and not much fun to use. Most of it has been written in REALBasic or some other non-native, prototyping tool (sorry, I’m just not a big fan of REALBasic apps on any platform). And most of it really limited the structure you could use, too – some only allowed you to work in acts, chapters and scenes, and others limited the levels of hierarchy you could have in your outline.
Fine, I thought. I’ll write my own. I had tinkered with C for a few years and had written a couple of very sub-par programs using the Windows API, so I thought I’d have a crack at it. It soon became apparent, though, that the only chance I had of creating this thing was if I learned C++ and MFC (if you have no idea what I’m talking about, don’t worry – they’re just what are used to create most Windows programs). So I bought a couple of books – and realised that I had better set aside the next five years of my life if I ever wanted to even start BookTree. Needless to say, I didn’t. This thing was supposed to be a means to an end (The Novel), not the end in itself. So I tossed aside the design document I had enthusiastically cobbled together and returned to Word and desperately trying to remember where I had scattered all my files in Windows Explorer.
And then, for one reason and another, I bought a Mac. I found a few decent writing applications (Ulysses and Copywrite being the forerunners; since then I have also discovered Avenir and Jer’s Novel Writer, both of which are wonderful), but none really did what I wanted. I soon discovered, though, that writing software for the Mac was relatively easy. It only took me two or three months to go through the required reading (Kochan and Hillegass) and then I was onto experimenting, trying to put together what was now going to be called Hemingway (after Hemingway’s famous declaration that “all first drafts are shit”). I banged together a decent attempt at what I wanted, but it was a complete mess code-wise. So I tore it apart and put it back together again, and this time I called it Scrivener. I like the name “Scrivener”. It tells you what it’s for straight away, even though the use of the word as meaning a writer of any kind is a little old fashioned, as it is mostly used nowadays to mean a legal notary (or some such). I quite like that old-fashioned-ness, to tell you the truth. It fits with the self-effacing embarrassment that most writers have about what they do. “What do you do?” “Er, well, I’m a bit of a scrivener, I guess.”
By October of 2005, I thought I had it cracked. I thought I was ready to release Scrivener 1.0 on the world and make my fortune (yeah, right). I figured I’d take my cue from the creator of Jerry’s Novel Writer and drum up some interest by releasing a beta-version to the folks doing National Novel Writing Month in November. And then the fun really began.
People actually started to use it. And as they started to use it, they made suggestions. At first I was mortified; it felt as though they were telling me that my child would be perfect if only his ears were a little smaller. You mean it isn’t perfect? But as I used it more and more, I saw that they were right: it was nowhere near perfect. For a start, it had four different modes – one for importing stuff, one for composing, one for outlining, one for storyboarding. It was like using four different programs that had been mashed together. A lot of people liked it and are still using the betas I released, but I saw that I could make it much better by integrating the modes. So I created a new interface based on a lot of other Tiger interfaces, and refactored and rewrote a lot of code. And then, after many months, I looked at what I had done, and I said… No, that isn’t quite right, either. A lot of users were waiting for the next beta version, so to keep them happy (very important) whilst Scrivener went through its third cycle of development hell, I released the old beta as freeware and called it Scrivener Gold. (Beware folks: if you use Scrivener Gold, stable as it is, it is just that: an old beta version.) And now I’m in that third cycle of development hell… But I’m happy, this time. I took all the user suggestions and incorporated the ones that fit into my design philosophy. I sat down and worked out exactly how the outlining should work, based on user feedback and my own needs, and what I like in outlining programs. I got brave, and I threw out anything that had kitchen-sink-syndrome. I simplified. And then I wrote it all down in a design document and I said: that’s it. No more features. Once everything in there is done, and it works, 1.0 is finished and it will be released. So now it’s onto putting it all together again. I am giving myself a deadline of September. Wish me luck.