🗒

Developers Summit 2022 Summer参加レポート

2022/07/27に公開

7/21(木)、Developers Summit 2022 Summerに参加しました。
いくつか講演を視聴したのですが、その中から一部、レポートとして残します。

Developer Productivity 20年物語

2000年代からのDeveloper Productivityの変遷

かつて、Release Engineerが1日1回ほど公式ビルドを行なっていた。
ただ、それでは足りない。開発が進んでコンパイルできないコードが含まれても、誰が対応した何処に間違いがあるのか探すのに手間取ってしまう状態だった。
マージする前にバグを見つけられるようにしたい。

このような状況が、CI/CDツールであるJenkinsが誕生することにつながった。
登壇者の川口耕介氏はJenkinsの開発者。当時は、川口氏が勤務していたSun Microsystems社でレイオフが行われていたため、Jenkinsを開発するために必要な計算機の確保ができたみたい。

クラウドが台頭してきて、ユニットテストが行われるようになってCIが流行し始めた。
その後、Seleniumなどのテスト自動化技術が発展していった。

今後は、いかに多くの計算機を使うか、クラウドの更なる発展が進んでいくことになると予想される。

CI(Continuous Integration)

CI(Continuous Integration)とは、継続的インテグレーションのことで、新しくコードがコミットされた時にビルドやテストを自動実行するプロセス。ソフトウェアの変更を常にテストすることで、本番環境にリリース可能な状態にしておくソフトウェア開発手法の1つ。
コミットされる→ビルド→ユニットテスト→デプロイのパイプライン(一連の流れ)がある。
ビルドに失敗した場合の原因究明がやりやすい。

日本はアジャイルが世界よりも進んでいる!?

日本はずっと、アメリカを始めとする世界を追っている感覚。
ただ、アジャイル開発をリードしているのは、特に日本である。
請負構造が多く、結果的に世界と比べて、アジャイル開発が発展してきた。請負構造が多いのは、日本とフランスくらいで、世界的に見ると「特殊」な構造。
もっと日本(のエンジニア)は、世界に発信していくべき。

感想

  • 2000年代以降の、開発の生産性向上の変遷について学ぶことができた。
  • 普段の業務では自分があまり触れることがないCIについて学ぶ機会になった。
  • 日本は確かに世界(主にアメリカ?)を追いかけているイメージだったが、日本がアジャイル開発をリードしていると知り、正直驚いた笑
  • 自分は、現状しか知らず、テスト自動化も業務で使ったりしているが、自分が知らない以前の開発・テストについて知ることが出来て、興味深かった。

生産性向上は一筋縄でいかない ~改善を進める上で生じる課題との付き合い方~

生産性向上を妨げる障壁

  • 開発に必要なサービスの導入ハードルが高い
    • 考えることが多い
  • 改善にかかるコストが高い
    • ステークホルダーの調整が面倒
    • ノウハウがない
    • フロー全体の改善には幅広い知識が必要
  • 最新技術をキャッチアップする時間がない
    • 技術選定が必要

組織横断で整備する「生産性向上チーム」が発足!

  1. 開発基盤を整備
    導入ハードルを低くする

  2. 自動化・効率化の支援
    改善に必要なコストを減らせる・ステークホルダーとの調整・ノウハウの提供

  3. 生産性向上技術のキャッチアップと社内発信
    開発チーム側の最新技術キャッチアップ時間を短縮。

これらの活動を通して、障壁を減らすことにつながった。

感想

  • 「生産性向上チーム」としてチームが存在することで、より客観的に問題に向き合うことができるなと感じた。

エンドユーザー500人にシステムを説明したからわかった「伝え方の技術」

説明上手なエンジニアになろう

  • ターゲットとメッセージを意識する
    経営陣・システム担当者・店舗の店員など様々な立場のターゲットに対して、同じ説明をして、同じ説得力にはならない。
    ターゲットのゴールを意識して、用語や内容を整理する。

  • 分類・構造化して整理する
    相手が整理しやすいようにする。関連性をわかりやすく。
    →箇条書きであっても、ずらっと並べるのではなく、関連する内容同士はタイトルを付けるなどの工夫をする。
    全体像が掴みやすくなることによって、説得力が上がる。

  • 伝え方を工夫する
    情報を出しすぎないようにする。
    専門用語をむやみに使わず、相手に通じる用語を使って伝える。

「三方良し」の提案・説明

「三方良し」とは...

「売り手良し」「買い手良し」「世間良し」の三つの「良し」。売り手と買い手がともに満足し、また社会貢献もできるのがよい商売であるということ。近江商人の心得をいったもの。

出典)コトバンクHP 三方良し

自分とお客さま、双方にとってメリットのある提案をする。

そのほか

  • 相手をまず、肯定すること。
  • エンドユーザと直接関わらない開発側の普段の業務においても、相手の立場を想定して考えることで、改修・修正時に、より良い提案ができる。

感想

  • 自分はわかっている(はずだ)けど、相手に伝わっているかどうかまで意識できていなかったりするので、どのような工夫が必要かを学ぶことができて良かった!
  • 業務において、改修や修正に携わる機会は沢山あるけど、その際に、エンドユーザーの使い方など立場を想定して考えるところまではできていなかったと思うので、今後は意識できると良いなと思った。
    (自分が動きを確認している中で、「こっちの方が良くない?」って思って提案することはあるけど、エンドユーザーのことは特に意識していなかった。)

Developers Summit 2022 Summer感想

いくつか講演を視聴しましたが、まだまだ自分が知らない領域の話を沢山聞くことができました。
自分で業務に反映して〜みたいなのは難しかったりするかもしれないですが、今後ここで聞いたお話が何かしら役に立つ機会があれば良いなと思います。

お読み下さり、ありがとうございました。

参考資料

Developers Summit 2022 Summer 公式HP

Jenkinsとは?

CI(継続的インテグレーション)とは?

Developers Summitを主催している、株式会社翔泳社さまのCodeZineにて、一部の講演資料が公開されておりました!気になる方は、以下、見てみてください。
Developers Summit 2022 Summer 講演資料まとめ

GitHubで編集を提案

Discussion