実装における工程について

先週仕事でとあるWebのシステムの画面を実装するにあたって、作業の進捗が芳しくなかった。もともと大変そうな画面ではあったが、自分の進める工程にも問題があったので、繰り返すことのないよう内容を整理したいと思った。と言っても、終わった問題でなく実装は未だ継続している。

 

最初に実装するにあたって、大変そうだなと思ったところは大きく2点感じたことがたった。

1,UIの実装が複雑(私視点)

2,その画面は項目が多く並んでいる画面ではあるが、その項目が見慣れないものばかり→自分があまり仕様を把握していない画面である

 

その画面を実装するにあたって、別件のトラブルが有り実質3,4日ほど実装に入るのが遅れ、焦っていたこと、またざっくりとした仕様書があったので「この仕様書になぞって実装していけばひとまず完成するはず」と全体像を把握することを怠って実装に入ってしまった。

 

一つの大きな画面を作るときほど、どのような実装になるかを頭にイメージしなくてはならない。具体的なコードを並べて行く前に、例えばコメントや空のメソッドの枠だけ作っていく。そのような流れのほうがうまくいくパターンが多かった。

→訂正。大きな画面でなくても、そうすべきだと思った。単に大きな画面だと崩れやすくはなるだけで。大きな画面を自分の中で分解して、小さな画面の連なりにしなくてはならない。

 

わたしの悪癖は、そのような大きく複雑な画面になるほど、早く実装しようとしてしまう。だから、上記のような枠の実装ではなく、ブロック単位に具体的な実装が連なっていく。一通り実装が終わった後、ソースの整理をする想定ではあるのだが、それもおそらく最初に全体像を意識して作っていれば不要な工程に思える。

ネットでよくプログラマとコーダーの違い、的な話題を耳にするけど、よく嘲笑されるようなコーダーのような進め方をしてしまっていると感じている。何も中身を理解せず、ただただコードを連ねていくような(実際のコーダーがそういうものとかいう話でなく)

 

最近この悪癖が発揮されることが少なかったのだけど、今回解消しきれていないと実感した。自分の悪癖がどのようなタイミングで発揮されるかを意識して改善していこうと思った。

主に

1,実装に焦っているとき(主に締め切り)

2,実装に時間がかかりそうな箇所

3,実装における、資料が用意されている

 

実質1は発動を高める要因にはなるだろうけど、なくても勝手に実装完了を急いで2,3だけでも悪癖発動する気がするな。

 

おそらく

今すぐにでも手を動かして実装に入ろうとする(実装に時間がない、かつ時間が掛かりそうだから)→仕様を細かく把握しなくても資料を横目に少しずつ進めていける(と認識している)

そうして実際どうなったかというと、適切な分割ができないコードが並び、少し進めては新しい疑問点が浮かんで確認してを繰り返し、全体の細かい箇所を把握していないので実装に何日かかるかを提示できない。

どこまで正確な仕様書かわからないけれど、それに矛盾があった場合などは出戻りも発生するだろう。

 

何かの本で読んだ覚えがあるが、実装したいという誘惑を抑え、手を止めなければならないのだと思う。頭に全体像が浮かばない状態で手を動かそうとしたとき、ストップしなくてはならない。

 

なんとなくで発揮しなくなった悪癖は、ふとしたときにまた出てくるので、潰して置きたい。

とりあえず私がやるべきことは

1,まずいきなり手を動かす癖をやめる(手を動かしてるから仕事した気になってはならない、また早く実装したいという気持ちを抑える)

2,全体の仕様と画面を把握する

3,頭のなかで、実装の形を浮かべてから実装する

 

実装する前に、自分に問いかける癖をつけたい。