行き詰ってソフトを作り直すことが多いのですが、
作る前にどんな設計をしておくべきなのでしょうか??

せいぜい、なんかのマスタのデータ構造ぐらいしか考えないで、
作り始めてしまうのですが。