一番はですけど、人間も生きてれば考え方も変わりますし、成長したら知識も増えると同じくですね、プロジェクトというかプロジェクトも生き物なんでそこ移り変わるんですよね。
そこも特に何かすでにやるもののリプレイスとかだったらまだそんな考えること少ないんで、変わることも少ないですけど、特に世の中にないものを一から作り上げるみたいな話になってくると結構そこはよく言えば柔軟。
悪く言うとそういう一体言わないが起こる、日進月歩で要件が変わってくるっていうのはあるかもしれないですね。
なるほど。これを最初に要件定義とかでガッチリ固めてもやっぱりどうしても変わってくるものですか。
辰巳さんいかがでしょうか。
そうですね。だんだんシステムってだんだん目に見えるようになってくるので、お客さんとしてはそれを見るとですね、こうなってるんだったらこうなってほしいなとか、あれも入れられないかなとか、どんどん要望は増えていくものだし、
あるいはこれ作ってもらったけどこれいらないなみたいな、いらないから別の作ってよみたいな、いや作っちゃったんだけどみたいな、ここまで作っちゃったんだけどっていうのをそれをなしにして、別の代わりにこれつけてもらえばいいかなみたいな、いろいろとこう言ってくるわけですよね。
それは自然のことです。この業界25年とかもっとか30年かいりますけど、それは変わらないですね、昔から。
なるほど。辰巳さんにはこの助理工程に入ってもらうということも含む、実際に作っていただくっていうところにも参画いただいているプロジェクトもあると思うんですけど、これやっぱり現場としてもあるあるなんですか?どういうふうに受け止めてやってらっしゃるのかなっていうのをちょっと聞いてみたいなと思いまして。
はい、そうですね。結構捉え方は人によって変わる部分、エンジニアさんによって変わる部分もあるかなと思ってて、やっぱり仕様変更っていうこの4文字にすごく敏感なエンジニアさんはいらっしゃいます。
あ、また仕様変更かみたいな。結局、直接エンジニアさんがお客さんと話しているわけじゃないパターンの方が結構多いじゃないですか。なんでそのエンジニアさんの手の届かないところで何か見えない不思議な力によって仕様変更が加わってしまって、エンジニアはそれを伝えられるだけっていうのが結構往々にしてあるのかなと思ってて。
で、そこで言うと確かにネガティブな印象というかイメージを持っているエンジニアは少なからず、多からずいると思ってます。
多からず。
そうですね。逆に近年のアジャイルだったり、スクラブだったらアジャイルの開発手法によっては、仕様変更っていうネガティブな感じのイメージじゃなくて、フィードバックっていう前向きな捉え方をして実装に入れるっていうエンジニアさんももちろんいるので、進め方、伝え方、コミュニケーションの取り方次第なのかなとは思ってます。
なるほど。仕組みとかにもよりますが、基本的にはネガティブに捉えられるっていうところだと思うんですけど、それってなんでなんですかね?やっぱ作ったものが無駄になるとか、もっと労力かかるとかそういったところになるんですかね?
そうですね。無駄になるというよりも、この想定で作ってきたところ、例えばなんかジェンガとかで縦に全部積んでいくじゃないですか。
はいはい。
で、いきなり横にこうじゃあ途中から積みましょうって直すと積み直しになっちゃうんですよね。
はい。で、全部縦に積んでいくっていう方向性でジェンガを組んでたと思うんですけど、いきなり横が入ることによって土台から組み直さなきゃいけないっていうパターンも少なからずあります。
はい。
なんで手戻りになる範囲っていうのが結構見えない、読めない部分が多いんですよね。
なるほど。
はい。
これ辰根さん、こういった場合、一括で受け負って開発していって、これ変更したいってなった時に追加の工数とかが出てくるっていうところが今の話を聞いてると出てくるんですけど、そうするともうその都度クライアントさんとプログラマーの間に入って取りまとめていくっていう感じになるんですかね。
そこで言うと、最初の段階でこちら側で考慮できなかったりだとか、超簡単なものだったりだとか、あとはそれがないともう運用上回らないっていうのが明らかな場合とかだったら、ちょっと無理くり、ボリュームによりますけど、押し込んだったりとか、
あとはそうじゃなかったら追加でやる、あとは一旦リリースした後に考えましょうっていう提案をすることが非常に多いですけれども、そうなってくるとこちら側にシワがやってきたりだとか、実際それで変質担保できなかったり、じゃあ納期が遅れたりとかして、なって最終的にお客さんのところにまたそのシワが寄り返していくんじゃないかなとか思ったりしますけどね。
なるほど。正直、要件定義から変わったものを作るとなると、そこのある種の練り直しとか、どうそれを対処するのかっていうところに新たに労力を当然かかってくるっていうところなんですかね。
そうですね。これはじゃあちょっと小林さんにも聞いておきたいんですけど、エンジニアさんの観点からで、そこってあらかじめ上流工程にも勘で、ある程度そこを仕様変更とかを想定しつつコントロールしに行きたいのか、それとも降ってきた要件に沿って実装するだけで満足なのかっていうと、そこら辺でどうなんですか。
難しい質問ですね。結構エンジニアさんによって違うかなっていうのはあるかもしれないですね。自分の今のポジションがプログラマーっていうポジションであれば、降ってきた要件定義をさばいていくっていうのがさばいていくのは好まれる方もいらっしゃると思うんですけど、さっき辰巳さんがおっしゃっていただいたように、上流工程に勘でエンジニアとしてアドバイスだったり意見を出したりとか、
仕様変更の話し合いの場で、それやるとかなりまずいですっていうのが言えたりするのって結構アドバンテージだとは思うんで、僕は比較的上流工程に一緒に食い込んでやらせてもらうことの方が多いなとは思ってるんですけど、結構好きかどうかは人によるかなっていう感じです。
それでもあれですか、仕様がバンバン変わってきちゃうことに対しても受け入れられるものなんですかね、自分でその上流に入り込みたくないからといって。
受け入れざるを得ない感じはありますよね。そこ関係ないからしょうがないっていうふうに思ってる人もいるとは思うんですけど、
別の観点だとそんなに仕様が変更するっていうシステムは仕様変更になってしまう原因も別であるのかなとは思います。
最終的にこのシステムが何を解決したいのか、どこに向かっていきたいのかっていう一本の道筋が決まってなかったりフワフワしてる場合だと結構仕様変更、細かいところで起きやすいなっていうのは思ったりしますね。
なのでクライアントさんといかにそこを最初に握れるかっていうのはある気がしてます。
そこも結構難しいところで、最初の要件の段階で先方が特にイメージができなくて、上がってきたものを見てレビューするしかないっていうのは往々にしてあるからと思ってるんですよね。
そうですね。ここが作ってみないとわからないというか、無形商材を販売してると思うんで、最初からイメージが伝えられないっていうのは難しいところかなとは思います。
本当そうだと思いますね。