残業と生産性とリアーキテクチャの効果

はじめに

こんにちは、モバイルチームスクラムマスターのko2icです。

NewsPicksのモバイルチームでは、1スプリント1週間で、全てのタスクをストーリーポイントに落としています。たとえば、面接、社内イベントの準備、目標設定やそのフィードバックなどもポイント化しています。 そして、残業時間なども勤務表から判断して、(正確ではないですが)作業時間もわかっています。(正確にするために時間計測をする組織もあるかもしれませんが、負担になるのでしてないです。)

これにより、1時間あたりの消化ポイントが出せるので、これを生産性の指標として判断しています。

今回は、その生産性の指標を見ている中で面白い結果が出たので公表したいと思います。

残業と生産性の相関

作業時間と1時間あたりのポイント消化数” class=

この図を見てください。青い線の「総実装時間」と書かれていますが、ここはポイント消化に使った時間(実装時間以外も含むもの)です。
残業すると生産性が落ちるという話はよく聞きますが、なんとなく、それがわかると思います。
毎回この結果になるとは限らないのですが、今回の場合は明確に関連がありそうなのが分かりました。

生産性の点だけでいうと労働時間が増えると落ちますが、労働時間が多い場合はもちろんポイント消化数は多いです。
図の真ん中あたりは労働時間が長く、作成したい機能も多かった時期です。その分、消化すべきポイントも多くメンバーに負担をかけてしまったという反省があります。

おそらく、この状況が続くと生産性はどんどん落ちていき、労働時間を増やしたところで効果が少なくなると予想しています。
デフォルトでは残業をしないで業務が回るようにして、本当の本当にいざという時、勝負の時だけ労働時間を増やして、対応するぐらいがいいのかなと思いました。(もちろん常に残業なしで結果を出せるのがベストです)

リアーキテクチャ時の生産性の推移

リアーキ時の1時間あたりのポイント消化数

次にリアーキテクチャした時の図です(最初の図とは違う期間です)。左側は、生産性は安定して低い状態でした。
リアーキをする以前と開始した直後ではしばらく、生産性は変わらなかったということです。他の機能でアーキテクチャを検証していたためにこのプロジェクトの開始直後でも生産性が下がらずに済んだと予想しています。
そして、リアーキを始めてしばらくすると図の真ん中付近の山のところまで生産性が上がりました。これは、プロジェクトのアーキテクチャにメンバーが慣れてきて、一気に生産性が爆発した結果です。
数値にすると1.7倍も上がりました。

しかし、その後、みるみると生産性が下がってきました。ここでは何が起きていたかというとリアーキが原因でモバイルアプリのパフォーマンス問題が出てきた頃です。

具体的には、このリアーキは、SwiftUI + The Composable ArchitectureでNewsPicksのメイン画面を作成したのですが、SwiftUIでスクロール時にカクツキ問題が起きてました。
ここの解決がなかなかできずに苦労していた時期です。やはり、その頃の生産性は下がっていたということです。
現在もこの問題が発生していますが、解決方法を検討し、解決に向けて進んでいる状態です。現在は生産性が再び最高値を超えて上がっています。

私の考え方としては、新しい技術は生産性が明確に上がる部分、つまりよく触る部分で導入しないとビジネス的にはそんなに意味がないと思っています。
なので、他社では複雑な要件のある画面での導入実績がほぼないにも関わらず推し進めていきました。もちろん、NewsPicksでは、このアーキテクチャをメインではない画面で検証・導入していたので、メイン画面でも問題ないとの判断でしたが、SwiftUIは中々の罠でした。

挑戦すれば、それだけのリスクは必ずありますが、メンバーは技術的な大きな糧を得たと信じていますし、結果として生産性もリアーキ前に比べると大きく上がっています。ユーザに不便をかけてしまって申し訳ないですが、あとは、問題を解決していくだけです。 この挑戦は必ず生産性という観点でユーザにも還元されていくはずです。

おわりに

今回は生産性の観点で見ていきました。
結果、当たり前のことなのですが、残業すると生産性が落ちるというのが明確にわかり、サステナブルな働き方が大事ということがあらためてわかりました。 そして、リアーキは生産性が上がる場合もあるが、問題が起きると生産性が下がるという結果も分かりました。

両方とも技術者にとって非常に大事なことです。 サステナブルであり、かつ技術的挑戦もでき、ユーザにも還元できる組織を作るためにも計測は大事だなと思います。

最後に宣伝です。
ユーザベースではテクノロジー・カンパニーを推進するための新たな取り組み「Play Engineering」を発表しました。 そして、事業を成長させる実感を持って働きたいエンジニアを大募集しています! 「Play Engineering」の特設サイトを ぜひご覧いただき、まずは、カジュアル面談に来ていただければと思います。

tech.uzabase.com

Page top