プログラムに設計は必要か?

プログラムを組む前に紙に書き起こす.ブロック図程度のものならいいが,紙にプログラムを書き起こせるほど,詳細に書くというのはどうだろう? そこまでいくともはやプログラムを組んだほうが,必要な変数などもわかるし実装も早いと思うんだけど,これは初心者な考えだろうか.書類として残したいのであれば,プログラムからその関数や変数を自動的に作成する,いわゆるjavadocのようにした方がよくないか? と最近思う.
世間一般のプログラマはプログラムを組むとき紙に書き起こしているのだろうか? 書き起こしているとしたらどの程度まで書き起こしているのか,非常に気になります.