Nov. 4th, 2015

lookingforoctober: (Default)
Writing software and writing fiction are not the same thing, and this is a post about writing software. But as it points out,
Making software is probably more like writing fiction than any branch of engineering, in how it's made of decisions. Fiction, too, is 100% made of decisions.

It's a very interesting way of looking at both fiction and software, and as someone who's created both, I completely agree with the idea that programming and writing fiction have their similarities. In fact, that's part of where my recent push toward outlining comes from -- remembering how useful the design phase was in writing software. Also, I have used something a bit like class diagrams for playing around with mapping out relationships in one of my projects, and every now and then, I've played around with the idea of using sequence diagrams for plotting. And I still may, if my outlining ever gets to a level where it would be useful. Software is, IMO, a bit further ahead than fiction in terms of developing good visualizations to help with design.

But anyway, the thing that really stuck out for me here was this:
It is true because reaching the very end edges of our ability to anticipate how we are going to want things to be and coping with the unknowns we encounter is part of the fundamental nature of developing software.

There is a joke in science, "If we knew what we were doing, we wouldn't call it 'research'." I have long wished we had an expression for a similar sentiment about programming. Because programming naturally, regularly, and just about always involves an encounter with the unknown, and having to reckon with what you didn't reckon with.


No one will ever write a spec that is so foresightful that it will correctly anticipate all the decisions that need to be made, and all the revelations that emerge along the way about what the decisions should have been.
The thing I have to remember, even as I try to come up with my own personal design process, is that what is called the waterfall method in software development, moving from design to implementation without ever looking back, doesn't really happen (as the article points out). You never move from design to implementation and then never so much as tweak your design to fit what you learn as you go, and you never move from an outline to writing real words and then never mess with the outline again.

(Although I have to admit, I keep thinking that part of the reason for software design is coordination among a team, and if I'm creating an outline -- a design -- just for me, instead of handing it off to someone else or needing to be able to hand it off to someone else, then it ought to work better...

But this is clearly a fallacy, because I am changing. Maybe not much, but I learn more, and change my mind as I learn... And the point about the process of creating something leading to the unknown, and to, inevitably, new insights as you grapple with what was originally unknown, is also very true. You don't know how something works until you've already made it. No matter whether it's just you or a whole team.)

Anyway, I know I have a bit of a hang-up about this and have to realize it over and over again, but I am once again reminded that the outline doesn't have to be perfect. Furthermore, while iteration more commonly enters the writing process as "revisions" and "drafts", a more agile process is probably a workable thing in writing, just as it is in software :) I really ought to remind myself of exactly what software has come up with in terms of agile processes, and how that might work for me as a writer.

Also, NaNoWriMo just started, and I'm pretty sure that's where the term "pantsing" originated, and in any case as NaNo begins, I've been hearing about the perpetual theoretical dichotomy between "planner" and "pantser" again. So at this point, not really seeing exactly why anyone would want to draw a line, I just want to say, I am pantsing through the design of my outline something fierce lately. (Although I do really hate the word "pantsing".)


lookingforoctober: (Default)

September 2017

1718192021 2223

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 18th, 2017 03:46 am
Powered by Dreamwidth Studios