本研究所では、アジャイル開発を素材に、より良いシステム開発のあり方を求めていく。開発手法そのものを見直すことは、より良いシステムを作るだけではなく、開発を担当するチームが成長し、個人の満足度も高まると考えられるからだ。今回は、プログラミングから私が学んだことについてお話ししましょう。

 これまでの経験から今、感じていることは、プログラミングの能力を高めるには、知識の量だけでなく「どのように作るか」を考えることが大事だということです。開発には、未知の知識や技術を用いることがあるだけに、知識を増やすだけでは対応できないことが多いと思うからです。

 なぜ作り方が大事なのか――。それは、着実に課題を整理しながら安心して(楽しく)作るための工夫が組み込めるからです。作り方を変えると、いままでの考え方が変わります。ずっと同じ手法では、できあがるプログラムも常に、同じような良さ・悪さを内在してしまうでしょう。

 色々な作り方を知れば、自分に合ったアプローチを見つけることができます。そのうえで最善を尽くすことが、より良い情報システムの完成につながるのだと、私は信じています。

 以下では、私がこれまでに経験した、手続き型プログラミングや研修、アジャイル開発、TDD(テスト駆動開発)のワークショップなどを、その過程に沿って振り返りながら、どのように実装に工夫していったかを紹介します。

研修:小さく実装しながらオブジェクト指向を意識する

 以前にも紹介しましたが、私は大学の3年間、ずっと手続き型のプログラミングでシステムを開発していました。オブジェクト指向は異次元の話のように思っていたほどです。オブジェクト指向を扱う記事や書籍が多いことから、「そろそろ理解しなければ」とびくびくしてもいました。

 そんなころに、オブジェクト指向プログラミングの研修を受けたのです。上司である原田騎郎さんが講師役になり、ポーカーゲームや図書貸出システムなどの課題が出されました。それぞれに対して設計したり、それに従って実装したりしました。

 実際に研修を進めていく中で、私が気付いたことは、「まず理解すべきはオブジェクト指向ではない」ということです。私が最初に理解すべきだったのは「一度に大きく作らず、少しずつ小さく作る」ということでした。

 例えば、私が実装中にエラー原因が分からず困りきったときには、原田さんにソースコードレビューをしてもらいました。そのときによく言われたことは「メソッドが大きいよ~」でした。

 自分では大きなメソッドを実装しているつもりはありませんでした。ですが、あまり深く考えずに取りかかると実は複数の処理が含まれ、徐々にロジックが複雑になり、自分がどんなメソッドを書きたかったのかが分からなくなっていたのは事実です。そんな状態では、頭の中が整理できず、間違いが間違いを生むような状況に陥りやすかったのです(図1)。

図1●小さく少しずつ作ることがオブジェクト指向の理解につながる
[画像のクリックで拡大表示]

 こんな状況ではいけないと思いつつも、「大きく作らない」方法が分かりません。言葉で聞いても“ピン”とこなかったので、原田さんに実際のお手本を見せてもらいました。そのお手本を見ていると少しずつ理解できるようになったのです。