すべてのものにはトリガー(引き金)がある

 今、私が出入りしている会社で何やら新人研修的なものをやっているようなんです。Seasar2 を用いて何かのシステムを作っているようですが、トレーナーの語調からすると上手く行ってないようです。

 それで、トレーナーの方が切々とトレーニーになにやら説明しています。


 仕事の進め方はそこそこの会社で違うでしょうから、私のような外の人間がとやかく言うようなものではないでしょう。でも、ちょっと気になるのが人情。私にもしゃべらせろと思ってみたり(笑)。とは言え、そんなことはおくびにも出さずに自分の仕事を淡々としていますがね。



 ということで、私がその時言いたかったかったことをここで言わせていただきたいと思います。


 それは、新人には「すべてのものにはトリガー(引き金)がある」ということを強く教えなければならないということです。


 クラス図書いてみろと言って、上手くできない。なぜできないのか?


 みんなきっと学歴で言えば私なんかよりずっとよくて、物覚えもいいみたいで、あるクラスからクラス図を起こすことはできそうですし、その逆もできそうです。しかしながら、ゼロからクラス図を書けない。


 それは私に言わせればトリガーがわかってないからです。クラスを作るからには作る理由がある。それがトリガー。


 画面があってボタンを押されてアクションが発生するならば、アクションクラスが必要なわけで、それがクラスを作るひとつの理由になりますよね。
 さらには、その画面(ひいてはボタン)を作るトリガーだってあるわけです。例えばそれはユースケースです。



 我々ソフトハウスにとってのトリガーの根っこは、ソフトの発注者(エンドユーザ等)です。でも、この発注者にだってトリガーはあります。現場の不便さ等のトリガーです。



 このトリガーの連鎖がうまくつながってこそ良いものができるのです。でも、ベテランですらこれを失念している人が少なくないようです。たとえば一番初めの文書が「画面設計書」だったりしませんか? では、それのトリガーは?

 テスト仕様書だって、上位の設計書・仕様書がトリガーになって項目が作られてしかるべきものです。でなければ、的外れだったり冗長だったりひとりよがりだったりするテスト仕様書になってしまいます。



 新人のときから「トリガーの意識」。これは、ほんとうに大切なことです!