🐈

Good Developer Experience

2021/03/04に公開

DX(Developer Experienceの方)について、あらためて考え方を整理していたところ、DEVELOPER EXPERIENCE.ioというサイトの Good Developer Experience のページがとても参考になりました。
元になったのは、最後のリンク集にあった
Vratislav Kalenda氏による The only way how to have happy & productive developers [DevFest CZ 2018] の講演内容でした。

とても興味深い内容だったので、多少意訳してますが要約してみました。

楽しく生産的な開発チームを作る唯一の方法

プロダクトに合ったアーキテクチャを選択する

  • シンプルに寄せるか、複雑に寄せるか、度合いの問題。適度なバランスが大事。
    • シンプルに寄せるとあとから苦労する
    • 複雑に寄せるとすぐに苦労する
  • アーキテクチャを決める際は制約を考慮する
    • 解決したい問題に対する規模と複雑性
    • 最適な技術を利用
    • チームの大きさの考慮
    • カルチャーフィット
  • 良いDXアーキテクチャは?
    • 自己改善が行われる
    • フィードバックループが短い
    • 壊れにくい

素晴らしいツール

  • 繰り返されるタスクは自動化すべき
    • 常に同じことをやりつづけるのは大変
    • 繰り返しの処理は開発者を疲弊させる
  • 何を自動化すべき?
    • テスト
    • ビルド&デプロイ
    • コードスタイル
    • インフラ
    • セキュリティ
  • 構成より規約という考えで。いきなり導入しない。共有することが大変になる

適切なプロセスを導入

  • なぜプロセスが大事か
    • プロセスにより自動化されたチェックリストができる
    • 持続可能な習慣や規律
    • 心理的な重荷から開放できる
  • どんなプロセスがある?
    • 開発
    • QA
    • デプロイ
    • フィードバック
    • オンボーディング
  • プロセスについて考えるときのポイント
    • そのプロセスがなんのリスクを下げてくれるのか
    • そのプロセスが何を実現してくれるか
  • アンチパターン
    • 全てに適用できるプロセスはない、PoCにウォーターフォールは不適切など
    • プロセスを作り込みすぎる、本来やるべきことに注力できるように
    • アジャイル=開発者にもっと仕事をさせる仕組みではない

チームの文化を醸成する

  • チームの文化は会社の文化から始まる
    • 会社の目的は?なぜ会社が存在するか
      • 売上を立てることではない、もっとミッション的なこと
      • その目的に対してなぜそのチームが存在するのか
      • 目的をちゃんと把握し、チームで共有することが大事
  • 文化は最も重要なbrainware(脳で動くソフトウェア)
    • 会社やチームにインストールできるもの
    • 開発者の意思決定は、常にこのbrainwareのフィルタを通して行われる
      • 同意できないものは無視されてしまう
  • 素晴らしいDXを実現している文化の特性
    • sense of impact / 企業内や社会に与える影響の意義が分かってる
    • チームや会社の成功に対するオーナーシップと責任感を持っている
    • チームや会社で共通のゴールを持っている
    • 優しさと誠実さを持っている
    • 失敗を許容できる
  • 逆に悪いDXな文化の特性
    • 指摘が個人に向いている
    • 失敗に対する大きなペナルティがある
    • 常になにかに追われていたり正念場の状態
    • 不信感や敵意がある
    • 責任感が希薄

最後に

  • QCDのトレードオフは、Emotional costも実際は関わってくる
    • 素晴らしいDXを実現できると、Emotional costを抑えられる
    • チームリーダーはEmotional costについても考慮すべき

https://raw.githubusercontent.com/DXHeroes/knowledge-base-content/master/files/emotional_cost.png

Discussion