フロイドの狂気日記

時は流れ、曲も終わった。もっと何か言えたのに。

PR

設計ミスとコミュニケーション不足と読解力不足

エンジニアをしていると、コミュニケーション不足と設計ミスと読解力不足のそれぞれで悩むところがある。それぞれが絡み合って失敗するときもあるし、いずれかに理由が偏った失敗もある。

 

失敗と言うほどではないのだが3日前にもそれに気付かされた。後4日程度しか働く日がない会社では、珍しくちゃんとしたEXCELの設計書が用意されている。

 

概ねそこに書かれてあることを読めば、大体のプログラミングができるようになっている。ありがたいことだね。

 

今回は設計書を書いた人とプログラミングを書く人は違うケースだ。僕は設計書を書いたわけではない。そこに些細な一文があった。webサービスのURLである。

 

例えばこのブログのURLはwww.byosoku100.com/であるが

 

これを例にとると

該当のURLは「www.byosoku100.com/heart/spade」

みたいな感じだった。

 

URLの後ろにつけられているheartとspadeはそれぞれ引数と言ってサーバー内で使える値ということである。プログラマであればなんのこっちゃわからんだろうが、とにかく必要な数値だという認識でよい。

 

問題なのは設計書を読んでコードを書いていくと、spadeは必要だがheartはいらないんじゃないかということに気づいた。

 

さてあなたはここでどうすべきだろうか。

 

正解を言うなら、設計者に一言声を掛けるというのがベストアンサーだろう。「この数値はなんですか」と。

 

僕はそれをしなかった。設計書の見落としかもしれない。それを逆に指摘されるのは嫌だなあ、と思ってとりあえずは進める。どうせなくても構わないんだからコーディングはできる。さてコードを書き続けて単体テスト段階に着たところで、やっぱりheartはいらないとなった。だから念の為書いていたが、heartを削除した。余計なコードを書かないのはプログラマの礼儀である。

 

テストをしてみてとりあえずOKだろうということで他のメンバーに確認を頼んだ。すぐさま不具合を指摘された。

 

「戻るボタンを押した時に違うページに飛ぶときがありますよ」

そんなバカな。ちゃんと確認したが。

 

すると本当に違うページに遷移するケースが発見された。なぜだろうと思った。

調べると前ページのURLは「www.byosoku100.com/heart」だったのだ。

僕はそれを「www.byosoku100.com/spade」だと思っていた。

 

実際のURLはheartやspadeではなく数値であり、その数値もユーザーIDのようなもので固定ではない。heartとspadeに該当する部分が一致するときがあったということだ。テストケースが少なすぎて気づかなかった。

 

つまり設計書に書かれた「www.byosoku100.com/heart/spade」というのは正しく、heartという値を戻るボタンに設定するためだけにURLの中に含まれているということだったのだ。その点は設計書には書かれていなかった。

 

もちろん修正としては大した時間がかからないが、これは失敗だなと思った。設計書をよく見るだけではわからなかっただろう。前の画面の設計書まで見ていれば理解できたかもしれない。

 

尋ねれば問題なかっただろうが「そこまで細かく書け」というメッセージを与えたくない。あるいは「その程度わかるだろう」という評価も避けたい。

 

結局のところ、コミュニケーション問題か、設計書の不備か、読解力の問題なのかと言うところに結論がでてこないのだ。

 

なので僕がなぞったルートこそが正当なルートなのかもしれないが、こういうところで評価が下がったり、使えないなあとか思われたりして、それはそれで辛いことなのだ。