This post originated from an RSS feed registered with Python Buzz
by Ben Last.
Original Post: Same As It Ever Was
Feed Title: The Law Of Unintended Consequences
Feed URL: http://benlast.livejournal.com/data/rss
Feed Description: The Law Of Unintended Consequences
It's been a Bank Holiday Weekend here in the Yoonided Kingdum (as it's pronounced by certain Umurrican friends of mine), which means the suburbanites have been washing their cars and indulging in the hubris of DIY. Not me, no... I managed to get a big chunk of the Sunday allocated to writing.
Which, as ever, sparked off some InterestingThoughts. This always happens, primarily because, as any sort or species of writer will tell you, it's easier to think about it than to actually do it. Easier, and more fun. Anyway, one of said InterestingThoughs came as I was furiously beating the plot with a metaphorical stick to try and remove some knots. The "he wouldn't do that because at this point she's not told him that they knew about him and it" sort of knot. The Thought was that the process and structure of something worth writing is very similar to that of something worth programming. Bear with me here; like all metaphors that start off looking good, this one is going to squeal like a piggy before we're done.
You're probably aware of the sort of process I mean; let's lay it out. You begin with an idea. Suggestions of ways to represent it in classes and objects and datastructures occur to you. You play around with it, and it seems to gel. You're pleased, and finger hits keyboard, either to code, or maybe to generate one of those impressive UML diagrams that lays out the design like some defleshed skeleton pinned to a school anatomy table. Then, as you begin to nail down the details, you find the wrinkles. An assumption lies under this bit of code that doesn't mesh with that bit. This representation in lists of tuples seemed good, but the actual usage of the data jars with it; it needs an indexed structure. The design pattern you want to use here doesn't quite fit the environment you're writing for.
And so on, and so forth. The devil, as so many before me have observed so much better than I, lies in the details. And the details affect the whole in unforeseeable ways.
So iterative design applies to writing in both sorts of language. You start somewhere with a seed around which the structure begins to crystallise. You extend until the actual structure, the one that should have been there all along, begins to reveal itself. You refactor, you polish, you rewrite, you tear out passages that made you whoop with delight when first written and trash them like yesterdays newspaper. Ideas that one glowed with inspiration lie dying in the Wastebasket.
An editor once quoted to me; "Kill your babies", by which she meant that you have to be ready to throw out your favourite creations if they don't fit. Be ruthless. The whole is worth more than the individual parts, whether they're classes, characters, objects or plot twists.