黒柴的パンセ #40
黒柴が経験した中小ソフトハウスでの出来事 #25
ここでは、中小ソフトハウスで勤務していく中で、起こったこと、その時何を考え、また今は何を考えているかを述べていく。
「Kさんは、良いって言ったんです」
これは、再三取り上げている自社の後輩社員Y(女性)からの言葉である。
この話は、パンセ#38、#39でも取り上げたプロジェクトの少し前のプロジェクトで関することである。
そのプロジェクトは、ある地方自治体向けの公共システムを開発していた。
Kは当時と流行っていたSOA(Service-oriented architecture)を実装するツールの知見を買われて、そのプロジェクトに参画していた。
とはいえ、契約単価はさほど高いものでもなかったため、若手のYを抱き合わせてのような形で追加契約し、利益を出すような形になっていた。
そんなYであるため、メインの機能にかかわることは無く、サポート的にマスタデータのメンテナンスを行う画面の製造に携わっていた。
その画面は、メンテナンスするマスタテーブルを指定するコンボボックス、アップロードするデータファイルを指定するテキストボックス、実行を指示するボタンという簡単な構成になっていた。
機能としては、コンボボックスでメンテナンス対象のテーブルを選択し、そのテーブルにインポートするためのデータファイルを指定して、Webサーバにアップロード後にテーブルにインポートする処理を行うと思っていた。
「思っていた」と書いたのは、運用テストが始まったときに、黒柴が運用テストをサポートするチームにいて、説明も何もないまま使用して、マスタテーブルのメンテナンスを実施しようとしたときに、上手く動かない事象が発生したからだ。
その時点でKは、担当する機能の開発がほぼ終了していたため、プロジェクトを離任して別の現場にアサインされていたため、Yに問い合わせを行った。
その結果、「えっ、そんな仕様なの?」と驚くような回答が返ってきた。
無造作にコンボボックスのドロップダウンリストに並ぶマスタテーブルのうち、あるものはアップロードファイルにより更新されるが、別のものはSOAを利用して他システムからデータを取得して更新するため、アップロードファイルは不要とのことだった。
しかも、どのテーブルがどこから更新データを取得するかは、業務を理解している人なら判断できるとして、ドロップダウンリストにならぶマスタテーブルには、目印もなければ前半部、後半部というカテゴライズもされておらず、説明資料の類も提供されていなかった。
これでは、当然の話だが、運用テストチームからクレームがでた。
簡易的な資料を作成して運用テストチームに提供した後、Yと少し話をした。
黒柴:「この画面のユーザインタフェースって、初見では分かりにくいと思うんだが、Yはどう思う?」
Y:「Kさんは良いって言ったんです」
黒柴:「Kの判断はK自身の価値観だと思うけど、Yはどう思っているの?」
Y:「でも、Kさんは良いって言ったんです」
この「Yはどう考えているの?」「Kさんは良いって言ったんです」のやり取りを4~5回繰り返しただろうか、最後にYは「分かりにくいと思います」とは答えた。
でも、それはそういう回答をしないと、黒柴が解放してくれないだろうなと判断したからであって、決してY自身が「(このUIは)分かりにくい」と判断したわけではないと思う。
後日、Kに会う機会があったので、このインタフェースのことを訪ねてみたところ、Kとしては以下のような判断だった。
ユーザインタフェースの仕様はSIer側の担当者が設計するはずだったが、多忙を理由にこちらに丸投げされた
そのため、マスタメンテナンスの詳細な仕様も示されていない
Yは、新人レベルのため、Web画面が作れて、サーバサイドの処理の実装を経験させるのが優先事項だと思った
とりあえず、ものが作れて動作確認もできたので、使用性(ユーザビリティ)については、特に言及していない
Kは、Yにプログラミングを経験させることが優先事項と考えて、特にユーザビリティについては、指摘しないこととしたようだ。黒柴はKがYに製造を指示した時期のことを把握していないので、この判断については特に意見はない。
ただ、Yがすべての判断をKに委ねてしまい、Kの判断を絶対として自分の判断を停止していることは、すごく気になった。
パンセ#39でも書いたが、自社には「過去の判断をあえて変える必要はない」という風潮がある。その結果として、誰かが判断したのであれば、それに従うというYのようなエンジニアを育てることにつながっている。
正直なところ、この風潮の原因はよくわからないが、ソフトウェアエンジニアとしては、「人に判断をゆだねる」というのは、デメリットしかないと思う。
諸兄らの会社にも、こういう風潮はないだろうか?