“当事者意識は持ってもエゴは持たない” 良いプロダクトを生み出すための開発者体験
「Experience Day 2021」では「今考えるべき”もうひとつのDX”。エンジニアが能力を最大限発揮できる開発者体験とは」と題し、株式会社クレディセゾン専務執行役員CTO / CIOの小野和俊氏と、Rubyアソシエーション理事長のまつもとゆきひろ氏が登壇。開発者にとっての良い体験、良いチームとは何なのか。二人の対話からは、開発者に限らず、チームでより良いプロダクト、体験を創っていくために欠かせない視点が浮かび上がってきました。
オンラインとオフラインの顧客体験が融合する時代。データやデジタルの活用を下支えする開発者の体験(Developer Experience)は、優れたCXの実現に欠かすことはできません。
「Experience Day 2021」では「今考えるべき”もうひとつのDX”。エンジニアが能力を最大限発揮できる開発者体験とは」と題し、株式会社クレディセゾン専務執行役員CTO / CIOの小野和俊氏と、Rubyアソシエーション理事長のまつもとゆきひろ氏が登壇。
開発者にとっての良い体験、良いチームとは何なのか。二人の対話からは、開発者に限らず、チームでより良いプロダクト、体験を創っていくために欠かせない視点が浮かび上がってきました。
個性を活かしたかけがえのない価値を理解し合える環境づくり
セッションの冒頭では、開発者体験を考える前提として、小野氏とまつもと氏が「開発において大切にしていること」について共有しました。
小野氏は「自分が一番没頭してることに対し、一番時間を使っていくのが、最高のエクスペリエンス だ」と語ります。
小野氏「プログラミングを始めた小学4年生の頃から、ネットゲームにハマっていた時もあるいは起業をした時も、心が動いたらブレーキはかけないようにしてきたように思います。今一番心惹かれるものに、できるだけ時間を多く使っていくということを重視してきました」
まつもと氏は、開発において「自分にとってベストなエクスペリエンスが何かを模索し続けてきた 」と言います。
まつもと氏「Rubyを作り始めたのも、自分にとってもっと使いやすいものがほしいという気持ちからでした。『何が良いエクスペリエンスか』は、今でも自分のなかで未定義な部分も多く、これがいいに違いないと考えながら、実装している感じです。
自分も含め、ユーザーの皆さんが良い気分でプログラミングできるために何をしたらいいのか。どんなエクスペリエンスを提供したらいいのか。それを定義し続けるということを、日常生活とRubyに関する開発において、最も大事にしています」
二人がいち開発者として大切にしていることを踏まえ、モデレーターを務めたプレイドの牧野は、今回のセッションのテーマである開発者体験が良い状態とは、どういうものであるかをたずねます。
まつもと氏「Rubyというプログラミング言語としては、先ほど述べた通り、使っていて気分がいい体験を目指し、取り組んできました。そのためには、自分の表現したいものと、プログラミング言語として書かなければいけないもののギャップを、いかに少なくできるかが鍵になると思っています。
ここまでは人間が表現しないといけないという部分と、コンピューターによしなにやってほしい部分。その辺りのバランスをどう取るのかが、開発者の体験を形作っているのかなと考えているんです」
まつもと氏の話に、小野氏は「開発者体験というと、ネットワークの速度やオフィスの快適さが語られやすく、それはそれで重要なのですが、まつもとさんは『プログラミングをしてる体験そのもの』をよくできないかとアプローチされていて、非常に面白く聞いていました」と語り、自身の良い開発者体験について続けます。
小野氏「『自分の価値を正しく理解されているな』と、開発者一人ひとりが感じられることが、より良い体験のためには大事だと思います。
15年くらい前に、自分のブログに『プログラマー風林火山』というトピックで記事を書いたんですよ。ものすごくコードを書くのが速い『風』のプログラマー、新しい技術や手法をどんどん取り入れる『火』のプログラマー、突発的なトラブルに冷静に対処する『林』のプログラマー、厳密にエラーをチェックし、クオリティを担保してくれる『山』のプログラマーといったように、色んな種類の開発者がいるよねといった内容です。
それぞれ、かけがえのない価値を発揮しているわけですが、それを実感しやすいかどうかは、人によって違う わけですよね。例えば、自分は目立たないなと感じている『山』のプログラマーがいたり、またバグを出したから自分はダメだと落ち込む『風』のプログラマーがいたりする。
でも、本来みんな違ってみんな良いはず です。それを理解して、評価してくれる環境やチームにいられるか。上司だけでなく同僚も含めて理解してもらえることが、開発者体験を大きく左右するのではないでしょうか。同時に、開発者自身が『私はこれに一番詳しい』という領域を見つけ、強みを伸ばしていくことも欠かせないと思います」
「自分がつくった」というエゴを捨て、成果に向き合う
人間が表現する部分とシステムが担う部分の境界線、あるいは「かけがえのない価値や強み」を伸ばして評価してもらえるチームなど、良い開発者体験を形づくる要素がみえてきたところで、後半では「どうすれば開発者体験をより良いものにできるのか」について語り合いました。
まつもと氏「先ほどRubyの提供する良い開発者体験の話をしましたが、いくつかの企業で技術顧問をしていると、目指すゴールと提供すべきバリューが明確で、かつ無駄な対立やストレスがない状態 が、良い開発者体験に大きく関わると実感します。
そのために大事なことは幾つかあります。まずはゴールやバリューが明確に定義され、共有されていること。同じ方向へ向かって、お互いにリスペクトしてコミュニケーションできるかどうかですね。
もう一つは、『誰が発言したか』より『何を発言したか』を重視すること 。Rubyのオープンソースコミュニティだと、私が機能追加を提案したとしても、遠慮なく良い悪いの意見が飛んできます。発言者ではなく、発言の内容に目を向けるというのは、より良いものをつくるうえで非常に重要です。
最後は 開発者としてあんまりエゴを重視しないこと 。例えば、頑張って書いたコードにバグがあって一気に書き換えることになるとき。苦労して書いたのに…と悲しかったり、腹立たしかったりするわけですよね。
ですが、開発者として私たちのゴールは『あなたは素晴らしい』と褒められるよりも、最終的に良いプロダクトを世に出すこと です。もちろん頑張りを褒めるとかはしますが、必要以上に『誰が書いたコードか』や『自分が貢献できたか』を重視しないようにしています」
「無駄な対立やストレスがないことが開発者体験において大切である」という意見に小野氏は大きく頷き、クレディセゾンでの取り組みを共有しました。
小野氏「そうした対立って同じ開発者の間でも起こり得るんですね。例えば私たちのチームだと、ベンチャーやSIerなど異なるバックグラウンドを持って入社してる人がいる。それぞれの価値観や『仕事において大事にすべき』と考えるものにもギャップがあるんですよね。
そこで不毛な対立を生まないよう、クレディセゾンでは 『HRTの原則』 を守るようにしてきました。HRTとは、謙虚(Humility)、尊敬(Respect)、信頼(Trust)の頭文字を取ったもので、これらが欠けた発言はやめようというものです。もし攻撃的な発言をしている人が
いたら『HRT』と耳打ちする、Slackでスタンプをつけるなど徹底して取り組んでいます。
他にも、短所への言及は禁止 という原則も設けています。価値観や見方によって、短所かそうでないかは変わるものだと思うんですよね。チームの力を示すレーダーチャートを書いたとき、誰かの短所が他の人の長所で補えるなら問題ない。だから、それについて都度言及しなくていいよねと考えます」
HRTや短所に言及しないといった原則に加え、クレディセゾンでは思ったことは何でも言える環境を用意することも意識していました。
小野氏「攻撃されないという土台があったうえで、何でも言える関係を築くように取り組んできました。くだらない話や率直な意見も遠慮せず交わせるからこそ、プロダクトやサービスの改善の気づきも気軽に共有できるようになるはずだからです。
チームメンバーがフラットに関わり合えるよう、全員『さん付け』で呼ぶというのも原則の一つです。私に対しても誰も『小野専務』とは呼びかけません。立場や役職を気にして、言いたいことが言えない状態を極力減らしていきたいんです」
さらに小野氏はもう一つの原則として「成果に忠実であろうとすること」を挙げました。「心理的安全性を高めた結果、社会や会社をより良くすることにつながっているか、アウトプットが出ているかを大事にしています」と語りました。
フラットな関係のチームで、明確なゴールへ走る
最後に、セッションを通して考えたことや感じたことを、二人がそれぞれ共有しました。
小野氏「当事者意識は持つけれど、エゴは持たない 。『誰が言ったか』や『誰が作ったか』を意識しすぎない、フラットにゴールを目指すというあたりが、良い開発者体験の肝になりそうですよね。ゴールへ向かうために、最初にお話ししたような、価値を認めてくれる場所をつくっていく。それを会社や国を超えて進めていけたらと再認識しました」
まつもと氏「やはり目指すべきゴールが明確に定義されているかどうか、枠組みが決まっていると、開発者は非常にやりやすいのではと感じます。
その意味で、プロダクトオーナーやプロダクトマネージャーの果たす役割は非常に大きいのではないかなと思いました。そうした役割の方がいるからこそ、開発者は良いチームを築き、心理的安全性の高いなかで、のびのびと開発できるのではないでしょうか」
ゴールを共有し、バックグラウンドの異なる個が価値を認め合い、フラットな関係を築くこと。一人ひとりがエゴを捨て、成すべきことに向かうこと——。開発者はもちろん、より良いプロダクトや体験を生み出したい個人やチームの指針となるようなセッションとなりました。