Writing.
To write a book ( I guess, because I have never written one ) you have to first set your objetives, what do you want to achieve, even if it's not crystal clear. Just like in software.
To write a book, you have to organize and think abstract, lets say you have to analyze the characters, and think how to solve the relationship among them, keep a central line. Add details etc. Just like in software.
Good writers read a lot and learn from what they learn. To be a good writer you have to be a good reader first. ( Not necessarily the same for developers, but it would definitely help read world class level code to learn from them ) Poor writers as poor programmers can write without reading others works of course.
For good writers and for good programmers sometime all that is needed is inspiration. There are sometimes when both just don't know who to get out of a situation where they're stuck. They just go home and probably at midnight the solution comes.
Both require discipline.
Of course, I'm not saying they're equivalent at all. Just pointing out some similarities from may very "subjective and argumentative" point of view.
mmmmhhh Is this a real question anyway?
Regards.