Twitterのフリートが「惜しまれても退場する」ソフトウェア開発的意義
2021年8月3日、Twitterのフリート機能が終了。
これはインスタグラムの「ストーリー」のような、投稿後一定時間経つと自動的に投稿が消滅する機能でした。
理由は「想定より利用者が少なかったから・・・」だそうです。
が、私がオタク活動で使ってたTwitterアカウントでは、割とフォロワーの皆さんに使われてた印象があります。
想定以下とはいえ、それなりに利用者がいる機能であってもバッサリ切り捨てる。
ITのエンジニア目線で「ああ、これって難しいけど大事なことだよなぁ」と思ったハナシです。
フリートの終了、まるで推しの解散ライブが如し。
引退前夜の8月2日。
私のオタクTwitterアカウントのタイムラインを覗くと
「さよならフリート」
「最後のフリートします!」
「フリート終了さびしい・・・」
「フリートちゃん無くならないで〜」
と惜しむ声が多数挙がっていました。
その空気感はいやはや、まるで推しの解散ライブを見送るファン達のような。
公式曰く、フリートは利用者が少なかったから終了って。
けっこう利用者いるじゃん。むっちゃ惜しまれてるじゃん・・・?
と、ここでフリート終了に伴う公式発表をよく読むと
同社によると、Fleetで最初にターゲットにしようとしていた、積極的でないTwitterユーザーの間でアクティビティが不足していることが理由だという。
(中略)
しかし長期的に見ると、そのようなおとなしいTwitterユーザーはFleetにもあまり興味がなく、Fleetとしてストーリーを投稿しているのは、すでにかなりアクティブなユーザーだけであることがわかった。
言い換えれば
「Twitter活動にあまり積極的ではないユーザーの活性化」を目的に追加した機能だが
「もともとアクティブなユーザーにしか使われなかった=当初の目的を達成できなかった」から終了したってことですね。
つまり、Twitterのアクティブなユーザーにはそれなりに使われていたということ。
フリートを惜しむ声が多数上がっていたのにも納得です。
当初の目的を達成しなかったとはいえ、アクティブなユーザーには使われている機能なのだから残してやったらいいのではないか?
惜しまれながら去るフリートの様子を見ると、そんな感想が沸き起こりました。
そして次の瞬間、ITエンジニアという自分の仕事を思い出して、こう意見を翻しました。
「いやいや、機能を安易に追加しまくるのって、エンジニアが一番やっちゃいかん奴や」
機能の追加は容易く、保守は難しいソフトウェア
最近
「なぜ巨大なテックチームは、新しい機能をユーザーに届けられなくなるのか?」
その理由を解説するブログを読んだのですが。
この中に、まさに今回のフリート退場の意義と関連する一節がありました。
Software is easy to write, hard to maintain
(ソフトウェアを書くのは簡単、保守するのは難しい)
ソフトウェアというものは、最初こそはいろんな機能を追加することが簡単なのです。
まるでまっさらなキャンパスへ、自由に絵を描くように。
あるいは空き地に、自分の好きなデザインの建物を建てるように。
ところが、ある程度機能を増やしていくと、最初の頃みたいに機能をホイホイ追加することは難しくなります。
Bという機能を追加すると、最初の頃に実装したAという機能に影響が出る。お互い影響しないようにしっかりテストして・・・
ソフトウェアのリリースから時間が経てば経つほど、このように機能同士が複雑に絡み合い、ちょっとした機能追加ひとつすらままならなくなります。
これが先に紹介した「ソフトウェアを書くのは簡単、保守するのは難しい」という意味です。
このように時間が経って改修が難しくなったコードのことはしばしば「スパゲッティコード」などと呼ばれます。
そしてソフトウェアの機能が増えても改修しやすくなる
「フレームワーク」だか「マイクロサービス」だか
色々な新しい開発手法が、日々IT業界では発表されています。
しかし私は、どれかの手法の発明によって劇的にソフトウェアの保守性が良くなったなどという、銀の弾丸が発明されたなんて話は聞いたことがありません。
(劇的にソフトウェアの保守性を良くする銀の弾丸を発明した、という【宣伝】なら聞きますが・・・)
機能を切り捨てるのは大事だが、ユーザーの反発が怖い
どのような最先端のソフトウェア開発のテクニックを使っても、ソフトウェアにあれもこれも機能を追加しつつ保守することは、難しい。
ではどうやってソフトウェアを保守し続けるべきなのか?
それは
「本当に必要な機能以外は切り捨てる」
ことです。
保守すべき機能が少なければ、それだけソフトウェアのコード量も少なくなります。保守もしやすくなります。
・・・技術的には根も葉もないような結論ですが、技術で解決できないような難しい話だからこそ、技術以外のビジネス的判断が重要になるんですね。
とはいえ、これも言うのは簡単ですが実際にやるのは難しい。
本当に誰も使ってないような機能をひっそり閉じるのなら、全くもって簡単な話です。
ですがある程度大手のサービスであれば、どれほどニッチな機能であっても一定のユーザーがいて、それを辞めるとなると反発があるものです。
まさに今回のTwitterにおけるフリートがそうだったように。
クローズする機能を一歩間違えようものなら、ユーザーの猛反発を喰らって一気にサービスから人が離れる事態も起きかねません。
一方で、そうやってユーザーの反発を恐れてズルズルと追加した機能を引きずったままにいるとどうなるか?
いずれ 「昔たくさん追加された機能はあるけど、最近は新機能が全く追加されない化石のようなサービス」 となります。
結局、こうなってしまえばやはりユーザーがジワリじわりと離れて行って終了。
そのようなサービス、皆さんにも思い当たるものが一つや二つあるのではないでしょうか。
機能がいっぱいある=いいこと、ではないことを知る
ただ、現代の日本だと高品質を求める国民性故か。
「機能がいっぱいあること」=「いいこと」
「機能を削ること」=「悪いこと」
な風潮が(特に製造業全盛時代を知っている一定以上の年代に)あります。
なので 「機能をカットしてユーザーの反発を喰らって衰退したサービス」 よりも
「機能を削れず新しい価値を生み出せなくなった結果、ひっそりと衰退したサービス」 の事例の方を、良く見聞きする気がします。
Twitterって、2006年にサービスを開始してからもう15年になるんですね。 それだけの年数となると、機能を追加しすぎて新しい機能を追加できない化石サービスになるリスクは十分にありました。
でも今回フリート機能の導入から
「当初の目的は達成していないから、例えこの機能を使っているユーザーがいても切り捨てる」 と判断するまでの流れを見ると
「こういう行動と決断ができるから、今もTwitterはSNSプラットフォームとして一定の地位を保っているんだろうなぁ」
と、エンジニア目線で今回の判断に感服したのでした。
・・・フリートちゃん、無くなるのは寂しいけどね!