🐙

2022年の個人のOSS活動のふりかえり

2023/01/08に公開

はじめに

挨拶と自己紹介

こんにちは、 kamiazya です。

普段は、エンジニアチームのリーダーをしています(GitHub にもう少しだけ詳しく書いてあります)。

前職でキャリア形成のために趣味で作ったもの GitHub で公開し始めたことをきっかけに、今でも OSS 活動を続けています。
新年、あらためて OSS とどのように向き合うかを考えるため、私の 2022 年の OSS 活動への実績をまとめ、ふりかえりを実施しました。

もともと誰に向けて書いた文章というわけでもないのですが、OSS 活動自体に関する文書は少ないので、何かしらの参考になればと思い公開することにしました。

OSS に興味がある人やエンジニアとしてのキャリアについて考えている人、OSS で自分のプロダクトを運営している人など、誰かしらの参考になれば幸いです。

ふりかえりの前提

ふりかえりの目的

2022 年の OSS 活動のふりかえりを実施し、2023 年の方針などを検討する材料にする。

OSS 関連の実績

ts-graphviz 関連

npm ライブラリ

ダウンロード数(Weekly)

昨対比、 13 倍に増加した。

  • 去年(2022-01-08 - 2022-01-14)
    • 6,190
  • 今年(2022-12-31 - 2023-01-06)
    • 82,587

リリース

9 月から 8 件のリリースを実施した。

  • v1.0.0(2022-09-18)
    • AST 中心のアーキテクチャへの移行
      • @ts-graphviz/parserパッケージの統合
    • README の刷新
      • 日本語版も用意した
  • v1.0.1(2022-09-21)
  • v1.1.0(2022-09-24)
    • モデルコンテキスト API をリリース
  • v1.2.0(2022-09-25)
    • AST からモデルを出力する関数を提供開始
  • v1.2.1(2022-09-26)
    • ビルドが失敗し、うまく動作していなかった箇所を修正
  • v1.2.2(2022-09-29)
    • ビルドが失敗し、うまく動作していなかった箇所を修正
  • v1.2.3(2022-10-19)
    • CommonJS 向けのビルドがうまく動作しない問題を修正
    • NodeRefGroup の AST がうまくレンダリングできない問題を修正
  • v1.3.0(2022-12-12)
    • adapter モジュールを提供し、Graphviz を実行可能にした
      • @ts-graphviz/nodets-graphviz/denoのパッケージを統合
    • Deno v1.28 から提供された npm モジュールのインポート機能を使い、Deno での実行を可能にした

また、リリースによって npm ライブラリ・リポジトリの統廃合した。

  • @ts-graphviz/parserts-graphviz@1.0.0で統合、元のリポジトリはアーカイブした。
  • @ts-graphviz/nodegithub.com/ts-graphviz/denots-graphviz@1.3.0で統合し、元のリポジトリはアーカイブした。

プロジェクト利用実績

GitHub 内で package.json に ts-graphviz が記載されているリポジトリを調査した。
ビッグネームを含むさまざまなプロジェクトから依存されるようになった。

企業・組織編

まとめ用 Disscussion

個人

他にも色々あったが、未完成や用途がわからないプロジェクトなどは除外している。

利用数

2023-01-07 時点の Used by の数値は、855 だった。

https://github.com/ts-graphviz/ts-graphviz/network/dependents

GitHub Star

主要なものだけ抽出(今年アーカイブしたものも含む)。

Star History Chart

setup-graphviz GitHub Action

https://github.com/ts-graphviz/setup-graphviz

リリース

  • v1.1.0(2022-08-18)
    • パッケージマネージャーでインストールするライブラリのバージョンを指定できるようにした

利用数

2023-01-07 時点の Used by の数値は、680 だった。

https://github.com/ts-graphviz/setup-graphviz/network/dependents

GitHub Star

Star History Chart

その他

npm ライブラリ

リリース

GitHub Star

主要なものだけ抽出。

Star History Chart

Ulauncher プラグイン

リリース

GitHub Star

Star History Chart

実績のふりかえり

  • ts-graphviz は前回のリリースが 2021-07-04 だったので、1 年以上リリースに時間がかかってしまった
    • 2022-01 くらいには同じコンセプトで開発開始していたが、設計や実装を進めるうちに保守性の課題が大きくなり当時の実装を捨てた経緯がある
  • ts-graphviz を利用するプロジェクトが徐々に増え、AWS や GraphQL などのビッグネームのプロジェクトに依存されたことをきっかけに利用が増えた
  • ts-graphviz 以外のプロジェクトへの貢献量は少なかった
  • TypeScript 以外の言語でのなんとなく増やしたいと思っている程度でとどまってしまい、具体的な活動はあまりできなかった
    • Python で Ulauncher プラグインの開発をしただけだった
  • プロジェクトの利用実績やユースケースの調査など、エンジニアリング以外にもプロダクトオーナーとして README でのソフトウェアの見せ方にもこだわった
    • 見せ方を工夫した ts-graphviz や Rediagram のプロジェクトでは Star の伸びがよかった
  • 年内で 13 件のリリースを実施でき、(バラツキはあるが)1 ヵ月に 1 回以上のペースでリリースできた。

KPT

Keep

  • OSS 活動自体
    • 仕事の負荷が高まり OSS 活動のできない時期があったが再開し、リリースも行えた
  • 新しいソフトウェアのリリース
    • Ulauncher のプラグインのみだが、新しいものを作らない年にはならなかった
  • 新しい領域でのソフトウェア開発
    • 上記に関連して、今まで Web や Graphviz、可視化などの領域を中心に開発してきたが、Ulauncher など新たな分野でソフトウェアを開発できた
  • プロダクトの見せ方の工夫
    • エンジニアリングとは別に、プロダクトの見せ方を工夫し、利用を促進した。
  • ユースケースの分析
    • ユーザーの利用状況を分析し、プロダクト自体やプロダクトの見せ方に反映できた。
    • これにより、ts-graphviz の GitHub Star の伸びが改善された。

Problem

  • TypeScript 以外のプロジェクトが少ない
    • 他の人が使えるレベルのソフトウェアを TypeScript 以外の言語で公開できていない
  • OSS 活動のための時間確保
    • 仕事の繁忙期や今まで OSS 活動していた時間で晩酌するなど、OSS 活動をする時間が減った
  • プライベートの開発が得意領域に閉じている
    • 挑戦的な活動ができていない。
    • どちらかというと実験で終わってしまっている。

Try

  • プライベート時間での OSS など開発時間の確保
    • 週で 5 時間は確保できるように
  • DeepDive できていない領域でのソフトウェア開発
    • Linux のパッケージ開発
    • TypeScript 以外の言語を使う
    • など
  • プロダクトの利用状況などがトラッキングできるように工夫する
    • GitHub の Used by などで利用数やユースケースが分析可能なプロダクトづくりを心がける

おわりに

今年の OSS 活動を通じて一番印象的だったことは、Appollo GraphQLAWS CDK のプラグインが私の開発しているライブラリを使ってくれたことでした。
個人的には GitHub アカウントをエンジニアの名刺のようなものだと考えているので、今後のキャリアによい影響を与えてくれるのではないかと思いニヤニヤしています。

今回実施した実績のふりかえりや KPT の内容を元に 2023 年の活動内容や方針を検討し、よりよい OSS 活動ができるように取り組んで行く所存です。

応援・支援のお願い

OSS 活動を今後も続けていくにあたり、皆様の応援や支援をいただけるとたいへんうれしいです。

最後まで見ていただきありがとうございました。

Discussion