やわらかテック

業務を通して得られた知見、知見。個人的に試してみたこと、興味のあることについてアウトプットしています。

ハッキリと「この機能必要ですかね」と言うことが一番重要だった話

お客様が増えると要望は増え続けていく⏫

現在、国内でHRテックのアプリケーションの開発を担当しています。
ありがたいことに、今となってはかなり多くのお客様に使って頂いておりまして、成長期を抜けて成熟期に突入しました。

www.nri.com

そんな運営中のアプリケーションに対して、お客様が増えれば増えるほど、今まで考えていなかったような要望やニーズが営業さんを通して聞こえるようになります。

要望は本当に様々です。既存機能の仕様変更を求める声であったり、一括更新機能のような既存機能を強化するもの。もしくは全く別の新しい機能が欲しいという場合もあります。

さて、このような多種多様な声を取り入れたその先には混乱と混沌が待っていました。

www.okb-shelf.work

あれもこれも欲しい😓

一人でも多くのお客様の要望を叶えるため、頂いた声は可能な限り叶えるようにしました。
小さな仕様変更から、アプリケーションのコンセプトを変えてしまうような大きな仕様変更。「これ他のお客様は使うのかな?」と不安になるような個別カスタマイズに近い仕様変更、もしくは機能追加を行いました。

まるで駄々をこねる子供のように「あれも!これも!〇〇機能が欲しい!」という状態に陥りました。

...


結果として、要望の数が多すぎて開発の優先順位の整理が出来なくなり、複雑さがマシマシで仕様を把握しきれている人間がいないというレベルになってしまいました。問い合わせがあった際に、あるべき姿が人によって認識が異なるという状態です。

私が所属する開発チームでは「優先順位がないと何からやるべきが判断できない」「複雑すぎる」という声を定期的に上げています。しかし、それでもお客様は増え続けています。従って、機能追加や仕様変更は今日も行われていきます。

ハッキリと意見を言う🧐

上記の流れが繰り返し繰り返し、行われてきた結果、生み出されたのは肥大化したソースコードです。複雑な設定と判定条件まみれになりました。 とても、これから開発をスマートに行なっていくことは出来ません。

では、どうしたら良かったのでしょうか。
心の中では思っていたこと「この機能必要ですかね?」という一言をハッキリと言えていれば良かったのです。

  • 誰が使うのか
  • 何のために使うのか
  • どれぐらいのお客様が欲しいと思っているのか
  • 導入前のユーザーストーリーは導入後にどのように変わるのか ...

1つでも確認出来ていないのであれば、それは必要な機能とは言えません。
そんな時にはハッキリと言わねばなりません。誰かがこれをやらねばならぬ。宇宙戦艦ヤマトの歌詞にもそう書かれていますね。

誰かがこれを やらねばならぬ
期待の人が 俺たちならば

ささきいさお 宇宙戦艦ヤマト 歌詞 - 歌ネット

お客様はアプリケーションについては素人であり、他のお客様がどう使っているかを考慮しないので、上がってきた要望に対してしっかりと深堀し、全体にとってのあるべき姿を模索します。

この工程をサボることで将来、自分達に負債が返ってくるということを身を持って学びました。

プロダクトは誰のもの?🤔

この問いかけをよく外部メンターの方に聞かれます。答えは「お客様のもの」です。使っていただけなければ、どれだけ綺麗でモダンな言語で記述されたコードも価値を成しません。

先程の話で既存仕様を変更したことで、他のお客様の不満を生み出してしまいました。新規機能追加も同様です。今まで満足に使って頂いていたのに新たな機能が増えたことで、必要ないお客様にとっては手間となってしまうのです。

増やしていくだけが価値ではありません。既存機能への修正やコードのリファクタリング。使われていない機能の削除。インフラの強化や安定化、堅牢性を高める...などなど、やることはたくさんあるのです。

「この機能必要ですかね?」という一言を勇気をもって言っていきます🔥