Developer Productivity Engineerについて知るためにJob Descriptionを眺める

はじめに

年末に最近関心があるDeveloper Productivity Engineerについて理解を深めようと、JDを色々見てみた。
会社のチョイスはIndeedなどで検索して引っかかったものを適当にピックアップしたのみ。国内/海外、シニアなどの分類はしておらず、加えてDeveloper ExperienceやクライアントサイドでのJDもあったが今回は一回除外した。
数も少ないので、また別のタイミングで再度まとめたい。

Developer Productivity Engineeringとは

以下記事にまとめる
Developer Productivity Engineering(DPE)とは

Developer Productivity Engineerとは

本格的にJDを通してDeveloper Productivity Engineerとはについて見ていく。

Twitter / Software Engineer II - Developer Productivity

まずはTwitter社。
世界中の何千人ものTwitter開発者をサポートする効率的な次世代ビルドシステムカスタムツール、スケーラブルシステム、Bazel を使ったオープンソースなど、スケールの力を活かしてモノレポで開発者のワークフローを加速させるとあるように、TwitterのBuildチームに所属し、ビルドや開発ワークフローを改善する事で開発者の生産性向上に貢献するっぽい。

キーワードとして以下に興味があるなら、という記述が。後ろの二つは一般的なソフトウェアエンジニアと変わらず。そして前二つのDeveloper Productivityや開発ワークフロー辺りもまぁそうだようねと言う内容。

  • improving developer productivity
  • the edit/build/test workflow
  • proficiency with algorithms and data structures
  • Java/Scala/Python

何をするか 

ビルドツールやプラットフォームが具体的にどういうものかイメージ出来てないが、チーム紹介で述べられている通り、Twitter社でのCI/CDなどの開発ワークフロー全般の改善をする感じっぽい。
それ以上はイメージがついてない。

Qualifications

QualificationsはScala,Java,Pythonなどのバックエンドでの経験やアルゴリズム、データ構造などの記述があり、ここは一般的なソフトウェアエンジニアと変わらず。
スピードと品質を追求,自動化への意欲あたりはSREと似たものを感じるが、開発生産性向上への熱意やソフトウェアエンジニアリングのベストプラクティスのモデルの話がDeveloper Productivity Engineer特有の差分に見える。

MongoDB - Lead Engineer, Developer Productivity

MongoDBのJD、こちらはLead Engineer。
本筋とは関係ないけどSuccess Measuresが明示されているのはいつまでに何が出来れば/出来るようになればいいのかイメージしやすいので良い。

何をするのか

CI/CDやビルドに限らず、Twitter社よりは幅広く、Developer Productivity Engineeringに取り組む印象。

Developer Productivity creates innovative developer tools and systems to solve some of the toughest challenges related to engineering: CI/CD, Code Analytics, Distributed Systems Verification, Test Fuzzing, Reproducibility and Debuggability, Test Minimization, and more.

Qualifications

Developer Productivity Engineer特有のものはなし。一般的なリードエンジニアや分散システム、クラウドへの経験を求める内容。

Slack - Software Engineer, Developer Productivity

何をするのか

CI/CDの話が出ているのはイメージ通りだが、SREっぽいパフォーマンス、スループット、故障率に関する主要な指標を管理するとあるのが意外。

Qualifications

CSやデータ構造などのソフトウェアエンジニアとしての一般的な話に加えて、Jenkins、Kubernetes、AWS、GCE、Azureのいずれかの経験があれば尚可、またCI/CD、Experimentationの経験があればボーナスとのこと。
社内プラットフォームやツールの構築経験っていう記述もあるので、やはりポジションの性質上インフラやPF寄りの経験はあるとプラスっぽい。

Apple - Senior Productivity Engineer

何をするのか

以下などはイメージ通りの内容ドンピシャ。

  • Identify and tackle bottlenecks in the SDLC including dev/build/test/deploy processes
  • Define the important metrics to measure, use these to find the most impactful areas of investment and demonstrate impact of your efforts
  • Promote and drive standard methodologies such as code quality, test coverage, code reviews, and code promotion

開発ワークフロー改善についても記載あるのが、Developer Productivity Engineeringらしさを感じる。

Qualifications

ソフトウェア開発者、DevOps、ビルドエンジニア、自動化エンジニアとしての10年以上の実務経験やソフトウェアの生産性向上またはそれに関連する業務に3~5年携わった経験

シニアだけあって、より長期間の直結した経験が求められている。

  • 3-5 years working in software productivity or closely related role, in a large scale team
  • 10+ years total work experience which can additionally include roles as software developer, DevOps, build engineer, automation engineer

そして、CI/CD,パイプライン周りの経験やインフラ寄りのスキルも求められるのは変わらず

  • Experience designing and building CICD infrastructure and pipelines
  • Adept with related tools and technologies: Jenkins, Spinnaker, Github, Artifactory
  • Knows orchestration and containers: Docker, Kubernetes, Nomad
  • Cloud tech such as AWS

この辺りのDevOpsや自動化の話はDeveloper Productivity Engineerっぽい。

  • Experience with building tools, automation, test frameworks (perhaps in a past SDET or DevOps role)

Bolt - Developer Productivity Engineer

生産性チーム自体を立ち上げるポジションのためリードエンジニアの性質も強め。

何をするのか

最初のDeveloper Productivity Engineerだけあって、そもそもSet tactical direction for developer productivity as we scale.から。
加えて、Spearhead code review tools and improvements to our existing developer environments.Own and automate local development workflowsBuild tools for automation, deployment, monitoring and operations辺りの記述を見ても、割と定義通りのDeveloper Productivity Engineerの印象を受けた。

Qualifications

2年間のDeveloper Productivityへの経験と、AWS,Terraform、BASH、Docker、Jenkins、Kubernetesの使用経験。

サイバーエージェント - Developer Productivity Engineer (DPE)

以下も。
https://site.developerproductivity.dev/dp-job-title/
https://www.cyberagent.co.jp/careers/special/engineer2022/team/dp.html

何をするのか

  • 「リードタイム」、「デプロイ頻度」、「リリース安定性」という指標を重視
    • ソフトウェアの変更を迅速にユーザーに届けるため
  • フィーチャーフラグ・ABテストシステムである「Bucketeer」、継続的デリバリーシステムである「PipeCD」の開発・運用
    • OSSとして公開

OSSにしているのは、ブランディングなどにも効きそうで良い。  

カカクコム - Developer Productivity Engineer【システム本部】

何をするのか

既存ツールからの移行や新ツールの導入検証が直近ではスコープだと書かれている。

  • 開発効率向上のためのツール類の選定/集約/運用
  • システム本部内のエンジニアの制度設計(評価、開発プロセス等)
  • システム改善要望のヒアリング/解決に向けた調整の実施

Qualifications

変わらずいわゆるソフトウェアエンジニアの経験と、DevOps/SRE/CI・CD周りの経験。
歓迎条件として、メトリクス分析や開発チームへの改善提案や開発プロセスの策定や最適化、生産性向上活動の経験も。
こういうイネーブルメント的なムーブも比較的良く目にするので、そうだよなーという感想。
コンサルティング業務のご経験も歓迎条件に含まれてるのは、上記に加えて、直近スコープのツール選定からの雰囲気を感じる。

まとめ・感想

  • SREっぽさを感じる部分もあるが、よりDevOpsや開発生産性、開発ワークフローにフォーカスしてる記述もあるのが差分
  • CI/CD、ビルド周りの知見を求める例が多く、特に大きい会社はここにフォーカスしてるJDも
  • 逆に小規模な組織/チームの場合は、DevOpsや開発ライフサイクルなども含めた、広く開発者の生産性にフォーカスしたJDが多かった
  • ちょこちょこ継続的な生産性、指標の改善や組織全体に影響を与えるポジションならではのマインド面での記述もある
    • TODO 後でまとめる
  • 自分のイメージには、小さめな組織、もしくは技術基盤チームで長期的な視点で技術負債を解消していくチームの方があってそうな気はした
    • CI/CDだけをやりたいわけでもない。楽しさはわかる。
    • 開発組織の生産性を上げるために必要な取り組みを自分のアイディアでより広範囲にやりたい
      • システム構成を変える、なども必要であれば選択肢に出来る状態がいい

適当にざっと見ただけだが、何となく感覚掴めた気はしている。
今度はもう少し数も増やして、パターン出せるようにしたい。