改善アイディアの見つけ方
みなさんこんにちは。STORESでマネージャーをやっています @huin です。
先週 沖縄に旅行にいっていたのですが、歩きスマホをしていたら首里城で足首を捻挫しました。
みなさまも首里城を訪れた際はお気をつけください。
さてさて、エンジニアとして仕事をしていると様々な場面で「改善すること」を求められます。というよりエンジニアに限らず社会人は生み出した価値によって報酬をいただいているはずなので、何かを改善し価値を生み出す、もしくは生み出す価値を大きくすることは仕事そのものだと言えます。
しかし、日々の業務の中で、改善のアイディアが無限に湧いてくるかというとそうでもありません。漠然と目の前の仕事を眺めていても改善するとっかかりが掴めないことの方が多いのではないかと思います。
というわけで今日は、私が改善のアイディアを出す時に使うアプローチを3つほど書いてみようと思います。何かの本に書かれているような根拠のある方法ではなくオレオレなアプローチですが、どうぞお付き合いください。
なお、この記事はSTORES Advent Calendarの13日目の記事です。
改善アイディアの見つけ方
1. 出力の最大値を上げる
何かを改善することを考えた時に、最もシンプルでわかりやすいアプローチがこれかなと思います。100mの最高タイムを10秒台から9秒台に縮めることができれば、誰から見みても「良くなった」といえるでしょう。
エンジニアの仕事でいえば、パフォーマンスチューニングによってシステムのレスポンスタイムを短くしたり、1秒あたりのリクエスト処理数 (スループット) を上げるなどが当たると思います。
また、言い換えるとこれは "できなかったことができるようになる" ということだと考えることもできます。
新しい技術を覚えてこれまでできなかった領域の開発ができるようになる、というのもパフォーマンスを上げる良い方法です。
なので、改善のアイディアを考える時にチーム・個人が現在できていないことを思い浮かべて、それをできるようになるにはどうすればいいか?というアプローチでアイディアを探すことも良いかと思います。
2. 出力するためのコストを下げる
先に「出力を上げる」ことを挙げましたが、「車の最高速度が2倍になりました。しかし、ガソリンの消費量も2倍になりました」だと、必ずしも「よくなった!」とは言えなくなるかもしれません。(もちろん、コストがかかったとしても出力が増えること自体が絶対的価値になることもありますが)
世の中の全ての活動にはお金なり時間なりコストがかかるので、「出力に対してどれくらいのコストがかかったのか?」「コスト対効果は良いのか?」という視点を持ちながらものごとを考えるとアイディアの幅が広がります。
単純に出力を上げるのが難しいなと思ったら、同じ出力を"より少ないコスト"で出す方法はないか?を考えると良いかもしれません。ここでいうコストは単純なお金の話だけでなく、時間や人に置き換えて考えることができます。
テストの実行時間を短縮してCIの稼働時間を削減する
手でやっているような集計作業や管理作業をスクリプトで自動化する
そもそもその作業が不要になるように、業務フローやコミュニケーションを見直す
特に3つ目については複数のチームが連携するような組織では有効になりえます。例えばCSや他のチームから調査依頼がある場合に、最初から必要な情報が揃うようにフォーマットを作るだけでもヒアリングのラリーが減って時間の削減につながります。
普段何気なくやっている提携作業などで人の手がかかっているような部分において、自動化する方法はないか?などを考えてみると良い改善のアイディアが浮かぶかもしれません。
3. 出力の安定性を上げる
3つめのアプローチは「出力の安定性を上げる」です。
100mの自己ベストが9.8秒のアスリートがいたとして、全ての大会/レースで9.8秒を出せる人はいないでしょう。コンディション (本人の体調だけでなく、風の向き・強さなど環境の場合もあります) によって、自己ベストに程遠いタイムがでることもあるでしょう。
パフォーマンスのバラつきは人にもシステムにもつきものですが、そのばらつきをより小さくする = 安定させることができれば、それは改善といえるでしょう。
たとえばスクラム開発であれば、スプリントごとのベロシティが大きく変動するチームよりも繰り返し同じベロシティを出せるチームの方が予測をたてやすく良いと見ることができます。
繰り返し計測できるようなものであれば、出力の平均値を上げるような改善ができないか考えてみるのも手です。
また安定させるという意味では、失敗する確率を下げるというのも価値のある改善になります。自分の中でまだ自信のない技術・作業について、より確実に実行できるようにする工夫も良いと思います。
さらに、ある程度定型的な業務であれば、その作業を自分以外の人ができる (より多くの人ができる) ようにするというのも良いと思います。できる人が多いほど、誰かが休んだ時や忙しい時にもチームとしては安定して業務をこなすことができるからです。
誰か特定の人しかできない仕事があり、しばしば不在の時に作業がとまってしまう。そういう仕事がチームにないか探してみると改善の糸口がつかめるかもしれません。
まとめ
というわけで、改善のアイディアを見つけるための私なりのアプローチをご紹介しました。
出力の最大値を上げる
出力をするためのコストを下げる
出力の安定性を上げる
どれも考え方は簡単だと思うので、ぜひ改善のアイディアを探す時に使っていただければと思います。
ちなみに、もしかするとこの3つとは別のアプローチでアイディアを考えていらっしゃる方もいるかもしれません。そんな方はぜひ @huin まで教えていただければ幸いです。
というわけで、STORES Advent Calendar 13日目は @huin がお送りしました。明日の担当は @tomorrowkey さんです。
さいごにに自慢のiPhone 15 Pro Maxで撮影した沖縄旅行の写真でお別れしたいと思います。