Wednesday, March 04, 2009

Iterative and Incremental (Narrative) Development

A few weeks ago, I promised that I'd draw a connection between software development and writing, which forms the logical basis behind how I've been writing (or attempting to write) in recent months. However, I'm not going to draw this unsurprising connection without first boring you with a little personal background.

The 5 years that I spent in college chasing my first bachelors degree were not spent studying writing (as this blog might lead you to believe), but rather the supposedly lucrative field of "Computer and Information Technology".

One of the topics that I found particularly interesting were the agile software development methodologies, most of which were generally associated with iterative and incremental development, which is based on the idea that software can be broken into logical increments that can be developed in cyclic iterations.

You might be wondering how this applies in any reasonable way to writing. To be honest, it's not as complicated as you might think. Let's demystify:
  1. Initial Planning: This is the first step of the process, in which a software development team would define the software they mean to develop in the simplest terms.

    Do that. Write a paragraph to summarize your idea. You can even think of said paragraph as a teaser you might read on the back of the hypothetical book you're writing.
  2. Planning and Requirements: This is where the development team would define in the first logical increment in their project and document the technology that would be required to make it work.

    What you should do at this point is consider what you want to accomplish with the segment of the narrative that you're working with. What should happen? What characters need to be involved? Where should it take place?

  3. Analysis/Design and Implementation: At this point the development team would define in much greater detail the logical workings of the functional increment they are working on. This is immediately followed by implementation, during which they build the increment.

    Likewise, you'll be writing the part of your narrative that you've decided to tackle. This is seemingly the most straightforward step in each iteration, but it should prove to be the most time consuming part.

  4. Testing: During this phase, software development teams test the software they've written to make sure that works as expected.

    Proofread your work. Does it make sense? Does it accomplish what you decided that it should accomplish a few phases ago?

  5. Evaluation: This phase is incredibly important for iterative and incremental development. The development team tests the functional element that they've been working on to make sure that it works within the context of the rest of the system.

    At this point you should examine what you've writing to make sure that it doesn't break the story or contradict other parts of your story. This is absolutely critical to the cohesiveness of your narrative.

  6. Repeat steps 2 through 5 until...
    Deployment: The development team delivers a completed software project.

    And you're done!
The good news about this method as it applies to writing is that it can be as formal or informal as you want it to be. You can write short iterations of a few paragraphs at a time or pages at a time with fewer iterative cycles. You can even build the writing in any order you like... just as long as you pay attention during the evaluation phase. The key to this method as with any creative process is to find what works for you.

5 comments:

Anonymous said...

Your blog keeps getting better and better! Your older articles are not as good as newer ones you have a lot more creativity and originality now keep it up!

Adam said...

Thank you kindly. I do hope to actually write some new material.

Anonymous said...

I inclination not concur on it. I over warm-hearted post. Especially the title-deed attracted me to be familiar with the intact story.

Adam said...

I'm not sure what that means.

I will say that this particular post is woefully under-detailed. The more time I spent drawing connections between the writing process and the software development lifecycle the more I realized that this is a topic that requires much explanation.

I'm considering turning this into a series of more detailed posts.

Anonymous said...

Nice brief and this mail helped me alot in my college assignement. Say thank you you on your information.