🎳

サービス残業でなく、OSSにする。

に公開

はじめに

私はリーダーでもマネージャでもない、ただのプログラマです。
面倒くさいことに付き合わされるのが大嫌い。
そういう人が書いたものと思ってください。

ツール作りたい

会社で働いてて、 「この作業するならこういうツールがあったほうがいいし、それなら自分で作れそうなんだけど」 と思うことがあります。
勝手に作ってもばれない程度のものなら良いのですが、ちゃんと仕事で作ろうとすると面倒くさくなることがあります。

  • 工数をかけずに作れと言われる。
  • どれくらい効率化できるか (何人日とか) 聞かれる。
  • ツールを提案したり作ったりしたことは褒められない。
  • 周りがそのツールに依存し始める。
  • 頼んでもいないバグレポートが来る。
  • 他の業務に流用できないとがっかりされる。

こんなことが何回かあると、もっと無責任に作りたいと思うようになります。
「じゃあツールは作らずに手作業でやりますよ」ということもできますが、そんなふうに働いて楽しい訳がないのです。

勝手に作る

工数をかけずに勝手に作るとなると、それは業務時間外にやることになります。
つまりサービス残業です。
でもサービス残業以外の方法でもやれます。
趣味で小さな OSS として作って公開して、公開したものを仕事で使えば良いのです。

すでに出来ているものだったらマネージャ連中も「使うな」とは言わんでしょう。
私が「こういうツールがあったほうがいい」と言ったものが「あった」のだから。

それは損か?

仕事でしか使わないものを、わざわざプライベートで作るのは損なのではないか、という点を考えます。

ただ働き?

趣味で作る訳なので、お金はもらえません。
その代わり、自分で作ったものを「会社の資産」にされずに済みます。
あと、「ただで使わせてやってるんだぞ」という気持ちになれます。

評価されない?

OSS を作って導入して業務を効率化しても、OSS への敬意のない連中には評価されません。
でも OSS なので、会社の外の人の目に止まるかもしれません。

社内でも分かる人は分かってくれます。
それでも承認欲求が高まってしまった場合は、アップグレードして「こんなことも出来るようになったんですよ」とさり気なく言いましょう。

メンテは?

OSS を作って、ずっとメンテナンスするのか、という問題があります。
ただ、そういうのはユーザとかスターとか増えたら考えれば良いと思ってます。
とりあえず当初の目的である業務で使って問題なければ良いんじゃないでしょうか。

OSS は良い文化ですが、それに頼り切っている (特に営利目的の) 人たちには、「すべての OSS がメンテしてると思うなよ」と言いたいです。
会社の人が何か注文をつけてきても、飽くまで OSS として対応すれば良いです。
或は業務時間内に Fork して改造するとか。

良い機会だと思えばいい

何かにチャレンジしたいと思ってるなら、これは良い機会だと思えばいいです。
チャレンジのお題をもらったと思って、とりあえずやってみる。
上手く行かなければ、途中で放り出しても誰からも何も言われないし、恥じることもありません。

ユーザの視点を持てる

どんなに小さなツールでも、それを必要としている人がいるかも知れません。
OSS として公開する以上、自分の業務で使うことだけを考えるのでなく、「それを必要としている人」が困らないようにしておくとかっこいいです。

  • README やドキュメントを整備する。
  • 動作をカスタマイズできるようにする。

こういうことをしていると、ユーザの視点を持てるようになります。

おわりに

「OSS にする」という選択肢は、万人におすすめするものではありません。
こういう考え方もあると思って頂ければ幸いです。

あと最近は小さなツールだったら AI でちょこちょこっと作れるらしいので、もうこういうことは必要ないのかもしれません。

最後に、私が仕事で使う目的で作った OSS をご紹介します。
何かの拡張機能とか、あと Excel で何かするというニッチなものが多いです。

  • sphinx-inline-svg
    • SVG 画像をインライン化する Sphinx 拡張機能。
  • sphinx-vb-domain
    • Visual Basic の関数ディレクティブを処理する Sphinx 拡張機能。
  • openpyxl-save-drawings
    • openpyxl でワークブックを開いてセル編集して保存する時に、図形や画像を失わないようにする Python コード。
  • VBScript symbols extension j
    • VBScript-vscode という VSCode 拡張機能の Fork。
    • 返り値の型や日本語の関数名に対応した。
  • vbdoc2sphinx
    • VB のドキュメントコメントを変換して Sphinx にペーストする VSCode 拡張機能。
  • exxm
    • Excel VBA マクロの抽出と書き戻しをするコマンドラインツール。
  • tile_img_on_xl
    • 大きな画像を分割して Excel のシートに貼り付ける Python コード。

Discussion