個人開発するエンジニア「個人開発の場合にはWikiは必要なのかなあ…確かにあったら便利なんだろうけど書くのが面倒だしなあ…有料サービスもあるしどこを使えばいいか悩む…悩みすぎて禿げてきた…」
そんな疑問に答えます。
結論は、個人開発でもWikiは必須です。
Wikiは使用用途的に「情報を共有すること」がメインです。
そのWikiを、共有する相手がいない個人開発でも使う必要があるのかを解説します。
僕は10年間個人開発でサービスを作っていて現在月間700万PVです。
ほぼノーメンテですが、サービスの月の収益は50万円〜100万円です。
Wikiは頻繁に更新しています。
それではその理由を順番に解説していきます。
この記事の内容
- 個人開発でもWikiは必要
- 一ヶ月も開発をしているとやったことは必ず忘れているので記録に残しておく意味も含めてWikiを書く
- Wikiが充実してくるとサービスができてきた感が上がるので、開発のモチベーションも上がる
- おすすめのWikiはGithubのWiki機能(無料)
Wikiとは?
皆さんご存知だと思いますが、一応解説します。
Wikiとは自分や複数人でコンテンツや文章を投稿・編集して情報を作り上げていくシステムです。
世界で一番有名なWikiはWikipediaですね。
職業プログラマであれば仕事で何からのWikiを使って情報をまとめたり共有していると思います。
プログラマ向けにWikiを提供している代表的なサービスは以下があります。
- Confluence
- DocBase
- Qiita:Team
- esa.io
また、Wikiを機能として内包しているプロジェクト管理ツールやバージョン管理ツールも沢山あります。
- Github
- BitBucket
- Redmine
- Backlog
それでは、普通はチーム開発で使うWikiをなぜ個人開発でも必須なのか解説していきます。
1ヶ月も経つとやったことは必ず忘れている
個人開発でWikiを使う最大の理由はこれです。
人間は忘れる生き物です。
サーバーに何かをインストールした時のコマンドなんぞ1ヶ月も経てば何も覚えていません。
その度にまたググってコマンドを調べる必要があります。
僕は今まで何度も同じことをやってきました。
その時に目当ての同じ情報に辿り着けるかどうかは分かりません。
「同じことは2回もやらないから問題ない」
それは幻想です。
必ずと言っていいぐらい2回目の日はいつか訪れます。
その時にWikiに情報を残してあれば、最高に自分を褒めてあげたくなります
Wikiが充実してくるとモチベーションがアップする
サービスを開発していてWikiが充実してくると「開発している感」が出ます。すると、もの凄くモチベーションがアップします。
エンジニアが作るモノは、サービス以外にも、その情報を集約したWikiにもあると言っても過言ではないです。
これは10年間個人開発を続けている僕が保障します。今の僕のサービスのWikiはこんな感じになっています。
どんな情報をWikiに書けばいいのか
それではどんな情報をWikiに書けばいいかを解説します。
サーバーへ何かをインストールした時のコマンド
これは必須で書いておきましょう。絶対に忘れます。
綺麗に書く必要はありません。
こんな感じで *コマンド+一文メモ* みたいに残しておくだけで十分です。
同時に、confやymlなどの設定系ファイルを修正した場合はその修正内容も残しておきましょう。
コマンド一覧(チートシート)
サーバーのコマンドやgitなどでよく使うコマンドはメモっておきましょう。
いわゆるチートシートです。
こういった類いの情報はネットに溢れているのでその都度ググってもいいのですが、Googleは検索順位が常に変動していますので思った通りの情報が前と同じ状態で見つからないことがよくあります。
以下が僕のCentOSのコマンドメモです。
難しいことは何も書いていないですが、この手の類いのコマンドはたまにしか実行しないのですぐに忘れてしまいます。
Wikiを外部に公開しないのであれば、参考サイトの情報を丸々コピペしてもOKです。
サイトのURLとともに自分のWikiに貼り付けましょう。
ここで注意したいのは、Qiitaや技術ブログなどのURLだけ貼り付けて「このページを参照」とするのはやめておくことです。
なぜならば、投稿者が記事を削除したり、ブログが閉鎖されていて「ああああ!!ない!!!」ということがよくあります。
かならずURLと共に内容も一緒にコピペしておくことが重要です。
DBなどのリストア手順
DBをバックアップデータからリストアする手順は必ず残しましょう。
バックアップからリストアするなんてそれこそ緊急事態です。
そんな時に悠長にググって調べるている時間なんてありません。
これだけは正確性と再現性が求められますので、マジでコピペ一発でリストアできるぐらいの情報を残しておくとよいです。
以下が僕のDBリストア手順です。
(セキュリティ的に見せられないところがありますので一部にモザイクをかけています。ご了承ください)
ハマった時の解消手段
サービスを開発していると必ずハマることがありますよね。1〜2時間どころか半日同じところウンウン唸っていた、というのはよくあります。
原因が分かってしまえば「なんだ!そんなことか!」と思うものですが、5分前の自分には分からなかったのです。
1ヶ月後に同じことが発生する可能性がとても高く存在します。
なぜなら、人間は忘れる生き物だからです。
マジ人間ってポンコツですね。
自分のことは過信せずに、どうやって解決したかをWikiに記録しておきましょう。
これで同じことでハマることは皆無になります。
トラブル対応
サービスインした後によくあるのですが、何らかの原因でいきなりサービスが止まってしまって対応したとか、機器の問題でサーバーがいきなり強制シャットダウンしてDBのデータが壊れたとか、たまに希によくあります。
トラブル対応しながらWikiを書くのは難易度が高いのですが、叩いたコマンドなどをエディタに常に貼り付けながら対応していって、対応が完了した時にある程度体裁をまとめてWikiに記載すればそんなに難しいことはありません。
実は同じトラブルは忘れたころにやって来ることが多く、僕はWikiに書いていたことで随分助けられました。
サービスの仕様はWikiに書かなくてもいい
仕事で使うWikiには仕様などがよく書かれていますが、自分一人で開発する個人開発の場合は自分が一番仕様をよく知っていますので書く必然性は低くなります。
また、仕様は意外と忘れにくかったりします。
書く場合には、サービス仕様を全て書くとかなりの労力になりますので、ややこしい仕様だけを書いておけばOKです。
あとは実際のソースコードにコメントを書いておけば問題ありません。
個人開発のWikiはGithubのWikiを使う
様々なWikiサービスがある中でどのWikiサービスを使うか。
僕の一押しはGithubのWikiです。
GithubのWikiはそこまで機能が充実している訳ではないのですが、ソースコードの管理と同じサービスを使うことで利便性が一気に上がります。
僕はWikiの有料サービスと無料サービスを色々試してみましたが、最終的にGithubのWikiに落ち着きました。
GithubのWikiを一番オススメします。
Wikiに情報を書くのは面倒だけど価値はある
Wikiに情報を書くのは面倒ですが、情報が溜まってくるとモチベーションのアップにも繋がります。
コードとはまた違った、個人開発のエンジニアにとってかけがえのない資産です。
書く内容はコマンドそのままコピペでも全然OKです。
綺麗に体裁を整える必要はありません。
基準としては「1ヶ月後の自分が見て分かる」程度でOKです。
コードであればGitのコミットコメントや差分を見て思い出すことも出来ますが、historyぐらいしか残らないサーバーのコマンドなど1ヶ月経てば必ず忘れます。下手したら昨日のことでも怪しいぐらいです。
そんな時、最大の手助けとなるツールがWikiです。
面倒だなと思っている方、書かないとのちのち必ず後悔しますよ。
是非書きましょう。
まとめ
さて、まとめます。
- 個人開発でもWikiの作成・管理は必須
- 1ヶ月もすればやったことは忘れている
- サービス仕様はWikiに書かなくてもいい
- 個人開発のWikiは将来の資産になる
- WikiサービスはGithubのWiki機能がおすすめ
世界にたった一つのサービスを作る手助けのために、世界にたった一つのWikiを積み重ねていきましょう。
書いてないと必ず1ヶ月後後悔します。
それではよい個人開発ライフを!