まだプログラミングの序盤から、オブジェクトという塊を頭の中に想起し、さらにその動き(振る舞い)を想定し、インタフェース(メソッドのシグニチャやメソッド間のシーケンス)を決めておく必要があります。これはとても辛い作業ではないかと思います。機能の実現は、オブジェクト同士のメソッド呼び出し(コラボレーション)によるので、コードを書いている途中で始終別なオブジェクト(これも同時開発している)を呼び出しすることになります。
これが手続き指向プログラミングであれば、どんなインタフェースで呼ばれるかは後回しにしておいて、ある機能の断片を実現するコードをひたすら書き下せばよく、さらにコードを書いている大抵の場合は、既に存在するAPIを利用する程度です。
つまり、オブジェクト指向プログラミングには、ちょっと想像力が要求されます。