Very fast. Let me explain.
I work in 2 modes: (A) At the computer and (B) Away from the computer.
When I’m in Mode A at the computer, I’m cranking out lines of code, testing, revising, testing, revising, etc. This process must be very fast. Several hundred lines of code (or whatever) in less than an hour. A complete cycle in less than a couple of hours. My guideline is that if I’m not working that fast, then I must not be prepared to work that fast, so I don’t deserve to be at the computer. I should be in mode (B).
Mode B is generally much slower. Reviewing code, specs, or notes. Refactoring code. Laying things out with pen and paper. When I have enough work clearly laid out, I know it’s time to get back to the computer and return to Mode A.
The most important thing for me in Mode A is to see results, any results, quickly and often. It doesn’t matter how correct anything is, just as long as it’s progress (or sometimes, reverse progress). I like to think of programming as making incremental progress in micro jumps, evaluate where I’m at, and go for the next micro jump.
Some of the best advice I ever got was from a prolific artist friend of mine who claimed, “I paint every day.” So I started coding every day. But that wasn’t enough. Now I make progress every day.
There are many definitions of progress. Sometimes I copy a few hundred lines of code, make a few changes, spit out a new app, and then start applying micro changes. Other times I decide that I need to see today and find a way to get there. Things don’t always work out as planned, but that’s OK. As long as tomorrow’s starting point is beyond today’s, I’m satisfied.
That’s my definition of fast. Not sure that was what you were asking, but I hope that paints you an accurate picture.