Good writing requires logical organization; computer programming, even more so. Even though a disorganized program can, in principle, run properly, it’s awfully hard to debug or upgrade—let alone for a new coder to make sense of.
For me, this tends to be one of those people-don’t-understand things.
Back when Temple (Grandin) and I were writing one of our books, we got so far behind (OK, I got so far behind) that she wrote a chapter herself and, as I recall, wanted to write a second chapter. I asked her not to write the second one because trying to rejigger her chapter into the form of all the other chapters took more work than just writing the chapter from scratch, which is what I think I ended up doing.
I’ve had the same issue with my possibly-doomed ‘basal ganglia’ project. It’s gone through a number of iterations, and each time we all try to figure out how to fix it, I get told, more or less, just to cut out the good sections and put them together.
That sounds logical, but it basically can’t be done. The good sections depend on the bad sections (and the bad sections depend on the good sections), and when you take out the bad, the good sections don’t cohere any better than they did before you lost the bad. If anything, they cohere less.
The single best piece of advice I got came from Debbie Stier, who said: “Take out a blank piece of paper and start fresh.”