Login
Password
Sources on this Page

> Headlines by Category

 Home / Weblog / Weblogs E-L

You are using the plain HTML view, switch to advanced view for a more complete experience.

Pilots: Too many ed tech innovations stuck in purgatory

Steve Kolowich wrote an article yesterday in the Chronicle that described the use of LectureTools, a student engagement and assessment application created by faculty member Perry Sampson at the University Michigan. These two paragraphs jumped out at me.

The professor has had some success getting his colleagues to try using LectureTools in large introductory courses. In the spring, the software was being used in about 40 classrooms at Michigan, he says.

Adoption elsewhere has been scattered. In 2012, Mr. Samson sold LectureTools to Echo360[1], an education-technology company, which has started marketing it to professors at other universities. The program is being used in at least one classroom at 1,100 institutions, according to Mr. Samson, who has kept his title of chief executive of LectureTools. But only 80 are using the software in 10 or more courses.

93% of LectureTools clients use the tool for less than 10 courses total, meaning that the vast majority of customers are running pilot projects almost two years after the company was acquired by a larger ed tech vendor.

We are not running out of ideas in the ed tech market – there are plenty of new products being introduced each year. What we are not seeing, however, are ed tech innovations that go beyond a few pilots in each school. Inside Higher Ed captured this sentiment when quoting a Gallup representative after the GSV+ASU EdInnovations conference this year: Continue reading →

Stream Processing with a Spreadsheet

ECOOP 2014 paper (distinguished) by Vaziri et. al, abstract:

Continuous data streams are ubiquitous and represent such a high volume of data that they cannot be stored to disk, yet it is often crucial for them to be analyzed in real-time. Stream processing is a programming paradigm that processes these immediately, and enables continuous analytics. Our objective is to make it easier for analysts, with little programming experience, to develop continuous analytics applications directly. We propose enhancing a spreadsheet, a pervasive tool, to obtain a programming platform for stream processing. We present the design and implementation of an enhanced spreadsheet that enables visualizing live streams, live programming to compute new streams, and exporting computations to be run on a server where they can be shared with other users, and persisted beyond the life of the spreadsheet. We formalize our core language, and present case studies that cover a range of stream processing applications.

Cost semantics for functional languages

There is an ongoing discussion in LtU (there, and there) on whether RAM and other machine models are inherently a better basis to reason about (time and) memory usage than lambda-calculus and functional languages. Guy Blelloch and his colleagues have been doing very important work on this question that seems to have escaped LtU's notice so far.

I think it is folklore knowledge, or rather folklore opinion, in the functional programming community that we do not need to refer to machines of the Turing tradition to reason about execution of functional programs. Dynamic semantics (which are often perceived as more abstract and elegant) are adequate, self-contained descriptions of computational behavior, which we can elevate to the status of (functional) machine model -- just like "abstract machines" can be seen as just machines.

This opinion has been made scientifically precise by various brands of work, including for example implicit (computational) complexity, resource analysis and cost semantics for functional languages. Guy Blelloch developed a family of cost semantics, which correspond to annotations of operational semantics of functional languages with new information that captures more intentional behavior of the computation: not only the result, but also running time, memory usage, degree of parallelism and, more recently, interaction with a memory cache. Cost semantics are self-contained way to think of the efficiency of functional programs; they can of course be put in correspondence with existing machine models, and Blelloch and his colleagues have proved a vast amount of two-way correspondences, with the occasional extra logarithmic overhead -- or, from another point of view, provided probably cost-effective implementations of functional languages in imperative languages and conversely.

This topic has been discussed by Robert Harper in two blog posts, Language and Machines which develops the general argument, and a second post on recent joint work by Guy and him on integrating cache-efficiency into the model. Harper also presents various cost semantics (called "cost dynamics") in his book "Practical Foundations for Programming Languages".

In chronological order, three papers that are representative of the evolution of this work are the following.

Parallelism In Sequential Functional Languages
Guy E. Blelloch and John Greiner, 1995.
This paper is focused on parallelism, but is also one of the earliest work carefully relating a lambda-calculus cost semantics with several machine models.

This paper formally studies the question of how much parallelism is available in call-by-value functional languages with no parallel extensions (i.e., the functional subsets of ML or Scheme). In particular we are interested in placing bounds on how much parallelism is available for various problems. To do this we introduce a complexity model, the PAL, based on the call-by-value lambda-calculus. The model is defined in terms of a profiling semantics and measures complexity in terms of the total work and the parallel depth of a computation. We describe a simulation of the A-PAL (the PAL extended with arithmetic operations) on various parallel machine models, including the butterfly, hypercube, and PRAM models and prove simulation bounds. In particular the simulations are work-efficient (the processor-time product on the machines is within a constant factor of the work on the A-PAL), and for P processors the slowdown (time on the machines divided by depth on the A-PAL) is proportional to at most O(log P). We also prove bounds for simulating the PRAM on the A-PAL.

Space Profiling for Functional Programs
Daniel Spoonhower, Guy E. Blelloch, Robert Harper, and Phillip B. Gibbons, 2011 (conference version 2008)

This paper clearly defines a notion of ideal memory usage (the set of store locations that are referenced by a value or an ongoing computation) that is highly reminiscent of garbage collection specifications, but without making any reference to an actual garbage collection implementation.

We present a semantic space profiler for parallel functional programs. Building on previous work in sequential profiling, our tools help programmers to relate runtime resource use back to program source code. Unlike many profiling tools, our profiler is based on a cost semantics. This provides a means to reason about performance without requiring a detailed understanding of the compiler or runtime system. It also provides a specification for language implementers. This is critical in that it enables us to separate cleanly the performance of the application from that of the language implementation. Some aspects of the implementation can have significant effects on performance. Our cost semantics enables programmers to understand the impact of different scheduling policies while hiding many of the details of their implementations. We show applications where the choice of scheduling policy has asymptotic effects on space use. We explain these use patterns through a demonstration of our tools. We also validate our methodology by observing similar performance in our implementation of a parallel extension of Standard ML

Cache and I/O efficient functional algorithms
Guy E. Blelloch, Robert Harper, 2013 (see also the shorter CACM version)

The cost semantics in this last work incorporates more notions from garbage collection, to reason about cache-efficient allocation of values -- in that it relies on work on formalizing garbage collection that has been mentioned on LtU before.

The widely studied I/O and ideal-cache models were developed to account for the large difference in costs to access memory at different levels of the memory hierarchy. Both models are based on a two level memory hierarchy with a fixed size primary memory (cache) of size (M), an unbounded secondary memory, and assume unit cost for transferring blocks of size (B) between the two. Many algorithms have been analyzed in these models and indeed these models predict the relative performance of algorithms much more accurately than the standard RAM model. The models, however, require specifying algorithms at a very low level requiring the user to carefully lay out their data in arrays in memory and manage their own memory allocation.

In this paper we present a cost model for analyzing the memory efficiency of algorithms expressed in a simple functional language. We show how many algorithms written in standard forms using just lists and trees (no arrays) and requiring no explicit memory layout or memory management are efficient in the model. We then describe an implementation of the language and show provable bounds for mapping the cost in our model to the cost in the ideal-cache model. These bound imply that purely functional programs based on lists and trees with no special attention to any details of memory layout can be as asymptotically as efficient as the carefully designed imperative I/O efficient algorithms. For example we describe an (O(frac{n}{B} log_{M/B} frac{n}{B})) cost sorting algorithm, which is optimal in the ideal cache and I/O models.

Writing a novel: resolving plot issues

I’m currently just over two weeks into the second, or revised, draft of a novel (I recently wrote about the lessons I learned while writing the first draft), and I’d like to talk about my approach for identifying and making revisions.

Writing a novel is a huge undertaking, and at the end of the rough draft you’ve written tens of thousands of words. You’re faced with a manuscript that you know has flaws, but it’s a daunting and shapeless task to try and identify them, determine what the problems are, and then fix them.

I have a system that I use which takes a step-by-step, simple approach to the problem. It works for me, and perhaps it’ll be helpful to you too.

This is a lengthy article, so you might want to read it on your Kindle instead.

Send to Kindle

What this technique helps with

It’s cognitively difficult to get to grips with something as abstract as plot changes across an entire novel. It can be discouraging, and it can easily lead to stalling and never actually finishing the revised draft.

The technique can be applied whenever you like. You can use it either when you’ve just made your full outline before starting the rough draft (great), during the rough draft (helpful if you didn’t plan extensively before starting and found yourself blocked), as you embark on your 2nd draft stage (like me), or even later. I think it works best when you already have some words to work with, but it’s general enough to be useful regardless.

The technique will help you to solve problems related to:

  • Character: motivation, actions, role

  • Plot: pace, feasibility, balance, necessity, inconsistency, vagueness

  • Scene: function, pace, participants, location, flow

  • Specific narrative elements/mechanics: comprehension, rules, mechanism of effect, dramatic impact

  • And pretty much anything else.

The technique is based on identifying and answering questions. It will help you with questions like:

  • What’s actually wrong?

  • What’s the impact of this problem on the novel?

  • How do I know what parts of the novel it affects?

  • How do I know that my solution will actually solve the problem?

  • How do I know what changes to make, and where?

It’s also generally a useful technique for organisation and creative thinking, beyond the field of fiction writing. I don’t have a pithy name for it, so let’s call it the Gemmell Method for now.

Goals

The goals of this technique are to:

  • Make a huge, vague, unmanageable process like fixing problems in a second draft absolutely manageable.

  • Give you a way to turn unease and lack of enthusiasm into concrete, actionable tasks, so you can get some momentum going.

  • Give you a way to easily test your solutions against your story’s needs.

  • Reduce cognitive load by not having more than two or three brief documents active at a time.

That last one is important, because I find it paralysing to have to be constantly referring to multiple documents: it’s hard to focus on the actual task I’m trying to perform. I’ve constructed this technique specifically to avoid having more than a couple of reference documents involved at any one time while I create a third document, because that’s just about my limit without my concentration suffering.

In each stage below, I’ll mention what documents you’ll need, what you’ll be creating, and approximately how long it’ll take (though you mileage will vary considerably there).

With that all said, let’s begin.

Outline your novel

You’ll need your Manuscript.

You’re going to create a Plot Outline.

This step will take a couple of hours.

You’re going to create a series of documents that will help you find and fix the problems in your story. The first, and probably the most important one of these is your plot outline.

I’m a huge believer in outlines. I dump all my thoughts, tasks, ideas and notes into them. An outline is just a hierarchical list, and you can use any tool you like to create one, including plain text. My tool of choice, by far, is OmniOutliner on the Mac, which I recommend to you without hesitation. There’s a trial version available for you to try for a couple of weeks.

You could alternatively use Scrivener’s outliner, but make a new document instead of using your novel’s own project, to keep things clean. You could also use OneNote, Word, plain text, or a host of other apps, but I’d strongly advise you to use an actual outliner.

I find it very useful to have a tool that understands outline structure. At a minimum, it should: allow you to create rows and child rows, to any level of nested depth; allow shifting rows up, down, left and right easily, via the keyboard; default to keeping new rows at the same indentation level as the previous row, and; allow collapsing and expanding sections of the hierarchy at will. Any outliner worth its salt will do all those things. Outliners allow us to think hierarchically without friction, and to make lists and sub-lists effortlessly. They’re invaluable for managing large amounts of structured information.

Once you’ve picked your outliner, we can move forward.

In this step, you’re going to create a plot outline of your entire novel (so far, if it’s not finished yet). Not just at the scene level, either: you’re going to outline every non-trivial thing that happens within each scene too. The guideline is to mention anything that has any bearing on the story, themes, or character development. Mention each character and location too.

For example:

  • Susan is at the office when her sixth sense tells her a missile is en route to the city

  • Susan excuses herself, flies to intercept the missile, and pushes it off course

  • John arrives at the office while Susan is out, and sees she’s left her purse behind

  • John calls Susan to tell her about the purse, but she arrives back at the office moments later, saying she was at the dentist

  • John wonders about Susan’s repeated disappearances, and we have a flashback to some previous occurrences

That’s the level of detail you want: a breakdown of everything that happens, but without any details of dialogue, minutiae of interaction (unless those things have a significant bearing on the plot), and so forth. You can sum up an average chapter in twenty bullets or fewer, I think.

You want to be able to use this outline to find places where changes are necessary, so you should include just enough detail to do that. This outline is just for you, though, so be succinct. It’s a reminder of every significant thing that happens, not a summary of the novel for the reader. You should easily be able to outline a 100,000-word novel in a couple of hours if you concentrate, since you’re already very familiar with the story.

Organise your outline at the chapter level, i.e. create a top-level list item for each chapter, and then put all the events within that chapter as children of the chapter itself. You could also further subdivide chapters into scenes, if that’s straightforward enough to do from your manuscript.

One immediate advantage of making the outline is that you’ll see which chapters are too long and which are too short.

When you’re happy with the outline, it’s time to move on to the problems with your story.

A list of problems

You’ll need your Plot Outline.

You’re going to create a Problem List.

This step will take an hour or two.

You’ll already have some idea of the issues your story has, which is why you’re embarking on this revision process. Take half an hour now to read through the outline – you’ll probably end up with 5-10 densely-printed pages of outline per 100,000 words of prose. You’ll almost certainly start to get a feel for where the issues are in more detail. You’ll notice repetitions, pacing issues, and unresolved plot points.

Make a list of these problems. I’d again recommend an outline, so that you can make notes beneath each problem. This time, be as specific as you like: you want to capture as many problems as possible. Feel free to include things that feel vaguely wrong or problematic, but you’re unsure whether they’re real problems.

Issues to look out for are problems with:

  • Pacing, logic, foreshadowing, and loose ends;

  • Unexplained (or insufficiently explained) elements, laboured points, and vagueness;

  • Thin characters, characters with too little (or too much) to do, too many characters, and unclear motivations.

Jot them all down. You’ll have only a rough idea of the nature of the problems right now, and that’s fine. The important thing is to capture them. Don’t worry about where they are in the story, or how to resolve them yet. We’ll get to that.

Examples of problems might be:

  • Chapter 6 has too much exposition

  • It’s unclear whether John is suspicious that Susan is a superhero before he actually finds out

  • It doesn’t seem like Professor Doom would be so motivated by ransom money

  • It’s never really explained why the Death Ray constitutes a threat to Susan in the finale

And so forth. Anything that feels off to you, however large or small. Make a note of all the problems, as briefly as you can. If there are multiple aspects to a problem, use sub-items to flesh them out.

With a solid list of problems, we can start addressing them.

Dramatic requirements

You’ll need your Problem List and your Plot Outline.

You’re going to make a list of Dramatic Requirements for each significant problem.

This step will take about an hour for each major problem.

We’re going to deal with the problems one by one. Some will be self-explanatory, and you can put them aside for later stages, but the biggest ones will be threaded through your story, having an impact on multiple scenes and chapters, and you’ll be unsure how to begin to tackle them. You’ll feel discouraged, and won’t see a way to get started. I’ve felt that way myself.

What I do next is construct a list of dramatic requirements for each problematic element. Here’s my workflow:

  1. Pick a problem that has substantial impact on your story: something that will need revisions in more than one place, and/or possible rewrites of whole scenes or more.

  2. Read through your plot outline again, until you encounter something that has a bearing on the problem in some way (mentions it, makes use of it, or that the problem somehow intersects with).

  3. From that plot point, and your knowledge of your story in general, create a dramatic requirement: a statement of what needs to happen, or needs to be true, in order to make the point (or scene, or story) either move forward, be consistent, or be satisfying.

    Be general. For example:

    • The missile strike must be avoidable

    • John must not know that Susan can fly

    • There must be no witnesses when Susan pulls the missile off course

    The idea is to make a set of constraints that you can check solutions against later.

    Outline these dramatic requirements. You’re building a list of your needs for the story (which are actually your characters’ or plot’s needs, of course). I find it helpful to phrase every requirement as a statement containing the word “must”. It’s fine to have “must not” too.

  4. Continue through the plot outline, adding dramatic requirements as you go.

  5. When you’re done, do one more pass through the outline from the start, making sure you’ve covered every dramatic requirement that pertains to the problem you’re working on.

You should repeat this process for every significant problem element, which may be very few. Most problems are fairly self-contained, or can be thought about with too much further analysis. But for the deep, vague, widespread ones, take the time to go through this process.

I find it enormously helps to clarify my thinking, and turn something unmanageable into a simple set of constraints. I almost always find that the nature of the problem is that I’ve violated some of the dramatic requirements for a given plot element.

We can’t move forward with a vague feeling that something’s wrong, but we can absolutely tackle a specific problem with a set of constraints.

Organise your dramatic requirements

This is a brief step, and you’ll only need your Dramatic Requirements for each problem.

This step will take about half an hour per problem.

Put the plot outline away now, and focus on the constraints you collected together.

Refine and revise them, putting them in order of importance/effect. A constraint is more important if it has a wider effect on the plot, and your characters. Something that comes into play often, and that your story hangs upon, is most important of all.

Use hierarchy to help get a handle on things: some constraints are logically subservient to others, or are special cases or clarifications of a larger requirement. Try to eliminate duplication here too.

Remember that every requirement should be a statement containing the word “must”. Don’t let any questions slip in, or notes to yourself. There will be time for those later on.

At this point, we’ve identified some significant problems, and we’ve turned those problems into constraints that should (but probably don’t, yet) apply to the story. That’s a solid position. The next step is to clarify the constraints by turning them into questions specific to your story as it stands right now.

Dramatic Questions

You’ll need your sets of Dramatic Requirements for each significant problem.

You’re going to make a list of Questions for each set.

This step will take about an hour per problem.

Every constraint can be expressed as one or more questions about your story. Some of these questions will relate to:

  • Clarifying the nature of the constraint;

  • The mechanics of how the constraint applies to the story;

  • Whether or not your existing manuscript satisfies that constraint.

The goal is to use your dramatic requirements as a sieve, to shake out the specific problems your story has in that area.

Turn each requirement into at least one question related to your story – and you’ll often need several questions for each requirement. The questions should ask things like:

  • Which/What/When/Where/Why/Who?

  • Are/Is/Do/Does?

For example, say that the beautiful Susan has the power of flight and a sixth sense about impending danger, unbeknownst to her handsome colleague John (writer and former software engineer, don’t you know).

There’s a missile approaching the city and Susan senses it, then goes to intercept it. She successfully pushes it off course then she nonchalantly returns to the office, pretending she was just out running an errand. That’s great, but you feel that there’s something wrong elsewhere in the story.

With the plot outline, you remember that later on, you introduce dramatic tension (and perhaps accelerate a blossoming workplace romance) by putting John in danger when Susan isn’t around: he’s attacked by the story’s antagonist, drawing him fully into Susan’s ongoing battle with that character.

Then Susan finds out later about John’s near miss, and she re-evaluates the priority of keeping her powers secret. It’s a classic arc, if a bit corny.

The dramatic requirements of Susan’s powers are:

  • She must be aware of significant danger happening elsewhere

  • She must be able to fly, and push missiles off course

    • She must thus have superhuman strength and resistance to injury
  • She must keep her abilities a secret until a climactic point in the story

So far, so good. But there’s a problem: Susan wasn’t aware of John’s brush with death, or if she was aware of it, she chose not to intervene. There’s no mention of that choice in your story, so the reader is left to assume that Susan’s sixth sense is fallible somehow, in an unresolved way. It’s a plot hole, and that’s why you felt uneasy when you read that part of the outline.

This problem leads naturally to some narrative questions, based on the dramatic requirements of Susan’s powers:

  • What types of events is Susan preternaturally aware of?

    • Is there a range limit on her ability?

    • Is she only aware of events that will lead to widespread destruction or loss of life?

  • Why wasn’t Susan aware of John’s peril?

These are great questions. They’re all either “why” or “is” questions, which we can readily work with. There’s one more question, though, that cuts to the heart of the issue:

  • Should Susan’s abilities have weaknesses?

Try to avoid any “can” or “should” questions, because they’re examples of deferred decisions that will just muddy the waters later. If such a question can be rephrased as a more positive, decisive one, always do so.

The distinction between “why” (etc) questions and “can”/“should” questions it that the former type is a reader question, whereas the latter type is an author question. Reader questions are those that will come up while someone reads a book, and which the book should answer satisfactorily, without breaking the fourth wall or abruptly ejecting the reader from the story.

Author questions, on the other hand, are planning problems. If they arise at this point, it means that something hasn’t been fully thought-through before writing. They’re inevitable, of course, and identifying them is a major goal of this process.

When you find a “can” or “should” question that can’t be expressed as a reader question, your temptation will be to just note it down in the list and move on. Resist. That’s just perpetuating the issue. By keeping an author question in the list, you’re introducing an unstable element, hindering your ability to answer the other questions. Author questions tend to throw the narrative into flux, allowing it to go in several different directions. It’s hard to make progress on plot issues where there are unanswered fundamental questions.

This is the first stage of actually fixing the issues your plot has: answer those author questions immediately. Make a choice, and commit to it. Let’s take Susan and her powers as an example again.

  • Susan’s ability can’t really be range-limited, because missiles move fast: she wouldn’t have time to intercept one unless she had substantial warning. We want to keep the missile scene, so range-limiting is out.

  • It’s a bit of a stretch to limit her ability based on consequences, because it raises philosophical and ethical issues, and has a questionable mechanism of effect. It would be likely to raise more questions than it answers.

There’s another possibility, though. John was endangered specifically by the antagonist. What if Susan’s sixth sense doesn’t work in the vicinity of the bad guy, or something the bad guy owns or has created?

It’s the Kryptonite weakness, or indeed the x-ray vision problem with objects made of lead. It’s also fully understandable to the reader because it’s a well-known mechanic, and it generates substantial tension.

Suddenly, the hypothetical wooly climactic battle scene (with its questionable or contrived peril and tension) takes on a whole new form. This is the arc of the ultimate test, whereby a superior protagonist loses their advantage, and has to find a new kind of strength. It’s a human story, with the antagonist rightly in the role of the monster. I want to write that final battle right now.

Take any “can” or “should” questions off the board immediately. We’ll have plenty of opportunity to deal with the consequences later. The important thing is to have a solid basis of rules on which we can answer the definite reader-type questions we’ve raised.

When you’ve made at least one direct question for every dramatic requirement, we can start to answer them.

Finding solutions

You’ll need your lists of Questions and your Dramatic Requirements.

You’re going to make a Solution document for each problem.

This step can take as long as you like. I spend about two hours on average per problem.

Now is the time to brainstorm and do some blue-sky thinking about the plot problems you’ve encountered.

Anything goes. Throw ideas at the wall and see what sticks. Don’t be concerned about whether the ideas fit your story, because we’ve already taken out insurance about that with your question lists. The important thing is to think about each plot issue creatively, and away from the claustrophobia of your manuscript.

When you come up with possible solutions to each plot issue, you can test those solutions against your questions and requirements.

  1. For each solution, run through your list of dramatic requirements, making sure the solution doesn’t violate any of them. This should be a very quick and unambiguous process. By all means tweak the solution to satisfy the requirements as you go.

  2. When your solution meets all the requirements, go through your list of questions and answer each one according to your solution.

  3. See what the sticking points are, then revise the solution and your answers to fit. Check revised solutions against the whole list again, to make sure you haven’t just swapped one problem for another. This should also be a quick and fairly easy process, and at each stage you know whether the solution fixes the problem or not.

You can also revise your requirements in the light of your thinking, which means re-checking your solution against the requirements, and verifying that your answers to the questions are still valid. Try to avoid changing the dramatic requirements too much; they should be simple and effortlessly self-justifying at this point.

This can be a very fun process, because you’re free to explore your creativity in coming up with solutions, while having the safety net of a couple of checklists to see whether the solution fits the story. You’re free to pace around, gesticulate, talk to yourself and just think. I always get a real feeling of relief at this stage in the technique, because I finally feel like I’m making progress.

For example, given the questions regarding Susan and John’s tale above, the answers in a solution document might be:

  • What types of events is Susan preternaturally aware of?

    • Any sort of human danger.

    • Is there a range limit on her ability?

      • No, at least not within the limits of a city’s greater metropolitan area.
    • Is she only aware of events that will lead to widespread destruction or loss of life?

      • No. She is also aware of situations involving personal danger facing individuals.
  • Why wasn’t Susan aware of John’s peril?

    • Because Professor Doom was the source of John’s danger, and Susan’s sixth sense doesn’t work when she or the endangered party is in Doom’s immediate vicinity.

Keep going until there are no more sticking points. When you find a solution that meets all of your dramatic requirements, answers all your questions, and feels satisfying to you, the mists have cleared: you can now see how to move forward.

Revision tasks

You’ll need your Dramatic Requirements and your Solution lists.

You’re going to make a set of Revision Tasks.

This step will take about half an hour per problem.

The goal here is to construct a list of tasks or revisions you need to make, according to your proposed solution and the answers to your plot questions.

I do this with a project in OmniFocus, which can also import OmniOutliner documents if you’ve been using that tool as your outliner (which you really should).

You could just use your outliner for this stage too, but I like having a dedicated task list that syncs to my phone, and has a workflow focused on completing tasks and projects. It’s up to you.

The easiest way to get a list of revisions tasks is to duplicate your dramatic requirements and solution answers, and rewrite each one as a task. In many cases, your answers will work as tasks without any changes, such as “Susan’s awareness doesn’t work around the antagonist”. You’ll usually want to add some sub-items to properly introduce the solution into the narrative, include its consequences in various scenes, and so on.

When preparing a list of tasks, organisation helps. My chosen categories are as follows, from least specific (most wide-ranging) to most:

  • Plot changes (the overarching flow of narrative)

  • Structure changes (what goes where, and in what order)

  • Character changes (specific points of character backstory or development)

  • Scene changes (actual changes in particular scenes)

Run through your entire set of dramatic requirements, and your solutions documents, and prepare tasks in those categories for each item.

To continue our running example, the new constraint on Susan’s extra-sensory powers would fall into three categories: Character (probably Professor Doom’s), Scene (for both the scene where Doom attacked John, and also the climactic battle between Susan and Doom), and also Plot (to weave the idea of Doom’s imperviousness to Susan’s sixth sense through the story). You’d probably want to have establishing scenes for the origin of Doom’s useful ability (or artefact, or technology), and also establish that the climax is a trap for Susan, with Doom counting on his unique advantage to win the battle and defeat Susan.

I’d create tasks for each of those things, using as many sub-items as necessary, describing succinctly what you need to do. For example:

  • Plot

    • Doom’s amulet isn’t just part of his costume: it’s a defensive weapon against Susan, which will prove crucial in their final confrontation
  • Scene

    • New scene: Establish the origin of Doom’s SusanSense-blocking amulet

    • John should see the amulet when Doom attacks him, but not realise its significance until much later

      • John should realise the amulet’s significance and try to warn Susan as she goes off to Doom’s lair in his cluster of buildings in the South Lake Union area of Seattle
    • Make it clear that Doom’s end-game counts on using the amulet to defeat Susan

  • Character

    • Doom needs more backstory regarding his hatred of Susan

If it’s unclear what category something falls into, put it into Plot. It’s worth noting that I also keep a fifth top-level category for copy edits, which are matters of style, phrasing, homophonous typos, and so forth.

You now have a full list of required revisions, which will solve your plot problems when you actually make the changes to your manuscript.

The last step before you hit the manuscript again is to work out where exactly those revisions will be needed.

Finding where to make revisions

You’ll need your Plot Outline and your Revision Tasks.

This step depends on the length of your novel, and the number of revisions. It takes me an average of about an hour per problem.

For each task, you need to determine likely parts of your novel that will need revision. Refer to your plot outline to do this.

  1. For each task, scan the outline to determine where your revisions are likely to be needed. You won’t produce an exhaustive list, but you’ll catch the bulk of the likely places. Make good use of global searching where possible.

  2. I like to add sub-items to each revision task, listing the places to make the changes. You could also add the locations as notes, if you’re using OmniFocus or OmniOutliner.

  3. For tasks with no clear existing locations (for example a new plot element, or a need to incorporate more backstory), I list approximate locations as a span of chapters, or just “throughout” as a last resort, meaning you’ll do a full pass through the novel.

Once you’ve attached one or more locations to each of your tasks, you can breathe a sigh of relief: you’ve just planned your next draft.

At the end of this process, you’ve:

  1. Started with (probably vague, paralysing) concerns;

  2. Identified the problems in your plot;

  3. Explored your story’s needs via constructing dramatic requirements for each troublesome plot element;

  4. Built a set of direct reader-questions that your story has to answer;

  5. Created solutions that you know satisfy the constraints of your narrative;

  6. Constructed a list of specific revision tasks for your next draft;

  7. Identified where most of the revisions will be needed.

You’ve also got a handy full plot outline to work from, which is invaluable. You’re now ready for the dreaded rewriting.

Make the revisions

You’ll need your Revision Tasks and your Manuscript.

This is the big one, so allow weeks or months for your revised draft!

It’s finally time to begin the revision process, using your list of revisions and your writing tool of choice (which is Scrivener for me). You did make several backups of your first draft, didn’t you? Make another one right now, just in case. I have a probably-excessive backup strategy, if you’re interested.

It’s up to you whether you want to try to incorporate your revision tasks directly into your writing tool, say as comments or notes. I do my writing in Scrivener, but my thinking in OmniOutliner and my tasks-management in OmniFocus, so I like to work from my OmniFocus master list at all times.

Focus on one revision task (or a group of closely-related tasks) at a time, and do a sweep through your manuscript. This part will take weeks or months, but you’ll be moving forwards constantly, resolving issues and checking-off tasks. You’ll have momentum.

Depending on your writing tool, be sure to switch the status of each scene/chapter document to indicate you’ve worked on it. In Scrivener, this would mean setting a scene’s (or chapter’s) Status to “Revised Draft” or whatever status you use once its changes are complete.

There’s light at the end of the tunnel, so get writing.

The documents you made

Here’s a quick review of the documents you created and used during this process:

  • The Manuscript of your novel.

  • A point-by-point Plot Outline, based on your manuscript (or plan, if you haven’t written your rough draft yet).

  • A Problem List, highlighting the issues with your story.

  • The Dramatic Requirements for each problematic element, based on your problem list.

  • Sets of Questions, based on your dramatic requirements.

  • Your verified Solution documents, with answers to your plot questions.

  • The resulting Revision Tasks (plot, structure, character, and scene), based on your solutions.

Keep those handy, particularly the outline. You can also go back in and repeat parts of the process if you run into further trouble later on.

Software I’d recommend

As I said, I’m a Mac user, so this is mostly a Mac-specific list of software. It’s still worth checking out if you’re on another platform, because you’ll want (and surely be able to find) substantially similar apps for your own computer.

  • For thinking, planning and exploring ideas, I use OmniOutliner. It’s available on Mac (with a free trial version available) and iPad. I can’t stress how useful I find a dedicated outlining application, rather than just plain text.

  • For managing tasks and projects, I use OmniFocus. It’s available on Mac (with a free trial version available) and iPhone, and will sync your tasks between multiple devices.

  • For writing long-form fiction, I use Scrivener. It’s in a class of its own as a novel-writing tool, and it’s available on Mac, Windows and Linux. There’s a free trial available, and you owe it to yourself to give it a try.

A few notes regarding the Omni apps: I use the Pro versions, but for this workflow you’ll do just fine with the regular editions. OmniFocus can import OmniOutliner documents, and OmniOutliner can export just about anything you like: plain text, OPML, Word documents, and a host of other options. You won’t be locked in.

As a particular bonus given my fondness for working on an 11” MacBook Air, all of those apps are very energy-efficient on laptops too.

Templates and worksheets

I’ve prepared a few templates you can use while following this method, if you like. In each case there’s an OmniOutliner template you can use on your Mac, and also a printable PDF if you prefer working on paper from an example document.

Each document you’ll create during the process is included.

Download OmniOutliner templates

Download PDF templates

In conclusion

Writing a novel is one of the biggest challenges I’ve faced, and I know from first-hand experience that there are many slow, frustrating, demotivating periods to go along with the enthusiasm and creativity.

I’m a systematic thinker, and I doubt that will ever change. I know what types of approach help me to solve problems, and I also acknowledge the crucial importance of not feeling blocked by a problem that’s too big to get to grips with.

I’ve put together this technique during my own revision process to let me identify and solve narrative problems in a step-by-step, understandable, manageable way. It certainly works for me, and I really hope you’ll get some use from it too.

Best of luck with your novel!


You can follow me on Twitter to keep up to date with articles like this.

My writing is supported by readers like you. Any contribution helps enormously. If you’re a business interested in reaching my readers, I also offer sponsorship opportunities.

Boot tray for muddy days
Materials: KLACK tray, TVIS door mat 1. Measure the inside of your tray, mine was about 510mm by 320mm. If you’re very particular, make sure
How to create a floating photo frame
Materials: Lack side table, photo frame Take a IKEA photo frame and put in your photo. Glue a block (or something else) on the back side
Ikea+Lego Entryway Key Shelf
Basic materials you will need: RIBBA photolLedge, LEGOs, Epoxy, ruler, pencil, masking tape, key chain ring, and a drill. Measure how far from the edge
Barn Board Table Set
Materials: Jokkmokk I run a small business on the side restoring and painting antique furniture. I was looking for a new kitchen table set for myself
Post Selected Items to:

Showing 10 items of about 8700

home  •   advertising  •   terms of service  •   privacy  •   about us  •   contact us  •   press release design by Popshop •   Official PR partner B2BLogger.com •   © 1999-2014 NewsKnowledge