技術情報と日記の融合:ブログ運営の苦悩
休日なのに普通に出勤して普通に働いて帰って寝るのである。まー、非常に退屈な生活であるが、最近はプログラミングの勉強が刺激的でありちょっとでも前進感があるのでマシかもしれない。
今日は何を書くべか? 情報収集はたくさんやってるけど、技術情報ばかりでブログに書けそうなネタがない。ここんところが非常に困りものであるよね。どうも、このブログを始めた時期は技術記事を書くつもりでブログを立ち上げたのに、後から完璧な日記ブログになってしまい、それで読者が付いてしまったので技術記事を書くに書けない感じになっちゃってるというのはある。
一応、技術記事は別に書くかーということでZennにアカウントを作ってそちらで仕事中に気がついた記事をポツポツと投稿している。
技術的なことを学んだ後に記事に整理することは強化せんとならんなとは強く感じることなのである。とにかく僕は、読みっぱなし書きっぱなしが多いというのが問題であり、情報を整理するためにドキュメントをしっかり書くことなどを強化していきたいと思っているのである。
僕は自分なりに生活を楽にするために、色々とプログラミングで自分用のツールなどを作ったりしてGithubで公開してたりするのだけど、そのリポジトリのReadmeの説明を全く書かずに放り出してるということが多すぎなのである。現時点でGithubは単なる自分用のバージョン管理付きのストレージとして使っちゃってる。
プログラマにはこんな悩みを持ってる人は多いかなと思うけど、システムを作ったら作りっぱなしでドキュメントを全く書かない。システムが動いたらそれで満足で、後からバグ修正や改修の時に、泣く泣く自分が書いた意味不明なコードをかき分けながら新しくソースを追加したりするのである。その結果、最終的にはスパゲッティコードが仕上がり、新しく作り直す羽目になる。僕が全くそんな感じだ。
誰が言ったセリフかは忘れたけど「三日前の自分は他人と思え」というプログラマの金言がある。自分が書いたソースコードであれど、後から読み返してみた時には記憶が薄れてしまいどこに何があるかは分からなくなってしまう。「コーディングたのしー」という感じで適当なコードを書きまくると、後悔するのは後からソースを改修する自分のなのである。
自分一人の個人開発でもこんなものであるから、チームでの開発となると複雑さや意思疎通の難しさも相まってさらに負荷が増す。だから、情報共有の重要性というのはシステム開発では強く言われてるのだけど、それをちゃんと実行できてる組織ばかりではない。
開発の他にもドキュメントを作る時間を持たねばならぬのだろうなーと思うけど、それはいまいちダルい。ウォーターフォールの開発なんかでは、システムを作り始める前に設計書を完璧に仕上げたりする。僕もそういう大企業の現場で働いていたことがあるけど、あの手の現場というのはドキュメントのフォーマットでいちいち確認が必要だったりとか、作業の進行がものすごく遅い。取引先がいて資料を用意せねばならぬプロジェクトならともかく、小規模の自社開発であるとか個人開発程度で使うドキュメントというのは、ウォーターフォールほどかっちりと揃えておく必要はないだろう。
開発者が自分で自分を自衛するためのドキュメント制作技術というのが必要なんだろうなーと思う。作業を行いつつ、その作業ログをきちんと保存しておけば、後から振り返るときに役立つドキュメントになる。以前、ネットでこのような記事を見かけた。
この一日単位で自分が何をやってたかの作業ログを残す方法については、僕は「Changelog形式ログ」と呼んでるのだけど、これは僕もやっている。Scrapboxでその日1日の記録のページを作るためのTampermonkeyのUserScriptを作成して、キーボードショートカット一つでページを作れるようにしている。それは公開してるので、下記の方から使うことができる。
Tampermonkeyにて、Scrapboxで日記ページを作るためのUserScript · GitHub
ちなみに毎週土曜日には週報も書いており、そちらもこちらで公開している。ショートカットキーを叩けばコンソールが出てきて、そちらの今日の日付を入力したら過去1週間分の日付とフォーマットが入ったページがScrapboxに作成される。
Tampermonkeyにて、Scrapboxで週報を作るためのUserScript · GitHub
こちらの使い方についてはTampermonkeyをブラウザにインストールしてもらって、上記のURLでそれぞれインストールをクリックしたら自動的に読み込まれる。そしてScrapboxのページの上でmacだと「option + d」で日記ページ作成。「option + w」で日にちを尋ねるコンソールが出てきて、入力したら週報のページが作成される。Tampermonkeyについてはこちらでインストールできる。
こういうログをつけたのならばあとは他人にも伝わりやすい感じでドキュメントを作る習慣というのを気をつければ良いのだろう。日記ブログはめったやたらに書きまくるけども、改めて人が読みやすいドキュメントというのはなんなのか考える必要があるのかもしれない。