in between days

表参道で働くシニアのブログ

プログラマーといえばスーパーハッカーかコーディング職人みたいな2極化した個人のイメージがまだ根強そうだということを今回のツイッターの騒動から感じた

今回のツイッターの件でいろいろな記事や書き込みやコメントを見てて、未だに世間的にはプログラマーといえばスーパーハッカーな超人くんか、無個性な組立工やコーディング職人の集団、というような2極化した個人のイメージが主流なのかなと感じた。

イーロン・マスクを支持してる陣営は、優秀だが有害な前者に鉄槌を食らわした、あるいは無能な後者を大量に撃滅したみたいな喝采をおくっている。逆の陣営は、スーパープログラマーや属人化した知識を持ったエンジニアが解雇されたことを残念がっている(後者はまた雇えるだろうくらいに思ってそうだけど)。

でも実際のところ、エンジニア個人の去就より、ツイッター内のいろいろな開発チームが壊れてしまったこと。もっというとイーロン・マスクが自らの手で「チームを壊した」としか言いようのない行動を取っていることのほうが今後への影響は大きいんじゃないかと思う。スポーツと同じで、たとえエースが辞めても補強のやりようはあるかもしれない。でもチームが壊れてしまったら、立て直すのはほんとうにたいへんだとおもう。

いまのツイッターは赤字なんだからこのくらい大鉈を振るわなきゃダメだという意見もあって、たしかに経営的にはそうなのかもしれないけれど、現代的なソフトウェア開発のチームビルディングにおいては今のところアンチパターンしか実践されてないように見える。建設的で自律的なチーム編成は難しいし、ソフトウェアエンジニアに心理的安全性はない(自社のエンジニアを公開の場でクビにするってそういうことだよね)。

今回のツイッターの状況を支持するかしないかに関わらず、それを見る側の目として、現代のソフトウェア開発は個人技ではなく、スポーツと同じようにチームで行うもので、どのようにチームビルディングするかが重要だということを、とくに何らかの批評的なコメントをしたい人たちには知っていてもらいたいなあとおもう。

一方で、ソフトウェア開発者がどのようにチームビルディングについて考えているのか、ということをどうしたってただの利用者が知るわけないじゃないかというのも確かだなとおもう。

大昔に、フェースブックが今でいう継続的デプロイを導入していった過程で、それが断片的にユーザーに伝わったため「フェースブックにはテストサーバーがなくて、開発したらいきなり本番データ(つまり私やあなたの個人情報)で試してるんだって」ということが話題になったことがあった。

もちろんそういうことではなくて、テスト自動化やコードレビューといった現代的な開発手法を取り入れた継続的インテグレーションを実践しているということだったんだけれど。

自分たちがふだん使っているサービスやアプリが、どのように開発されてメンテナンスされているのか、別にそれは知らなくったっていい話ではあるけれど、そこに旧態依然としたイメージとのギャップがあって、それがこういう騒動のときに顔を出すんだなとおもった。

こういう誤解って、どうやったら解消されるのだろう、あるいは解消するべきなんだろうか? ということを考えたりした(自分の本業との関係から)。