個人開発サービス、皆さん作っていますか?
作っている方、もしくはもう既に開発は終えて運用フェーズに乗せている方向けの「手動運用をどうするか」について書いた記事です。
結論はタイトルの通り「手動運用」はゼロにするべき、です。
本記事の内容
- 個人開発したサービスの手動運用の話
- 個人開発したサービスの手動はゼロにするべき
- なぜ、手動運用はゼロにするべきか
書いている人の実績
- 個人開発したサービスを10年間休みなく運用
- 個人開発したサービスは10年間でPV6億を突破
- 個人開発したサービスで毎月50万円以上の売上
個人開発の手動運用とは?
手動運用とは以下のようなことを指します。
- 毎日アップロードするCSVファイルがある
- 週一回手動で更新するデータがある
- 月一回手動で叩くバッチがある
- 頻度は決まっていないが手動で更新するデータがある
このように、システムに対して自動化していない、人間の手で行う更新作業のことを指します。
定期的に行う運用と、不定期に行う運用の両方を指します。
手動運用をOKとするかどうか
個人開発のサービスは少ない工数との戦いです。いち早くリリースするために、一つでも機能を削りたいと思います。
しかし、運用面の機能の開発をおざなりにした結果、手動での運用が沢山あり、毎日更新作業が残ることはよくあります。
これはおそらく普段の仕事で開発しているサービスでも同じことではないでしょうか。
個人開発のサービスは自分しか対応できる人はいない
普段の仕事での開発の場合、運用を担当する専門のチームがいたりします。
また、開発者自身で運用をすることもありますが、自分が病欠や何かの用事で対応できなくても誰かが必ず対応してくれます。
しかし、個人開発では対応できるのは自分だけです。自分がやらなければ誰も対応してくれません。
様々な理由で対応できないリスクを考えると手動運用はゼロにするべきです。
手動運用をゼロにする理由
手動運用をゼロにするべき理由はたくさんあります。
ここではその理由を、個人開発したWebサービスを10年間運用し続けてトータルPV6億を達成した僕が解説します。
モチベーションの低下による無更新を防ぐ
個人開発でWebサービスをリリースした直後はモチベーションもあるので毎日更新することもそんなに苦ではないかも知れません。
しかしこれが1ヶ月が経ち、3ヶ月が経ち、1年が経ったころ、同じことを毎日続けている自信はありますか?
実際に僕は月に1回手動運用しなければいけないデータ更新を1年間放置していたことがあります。人間そんなものですね…
時間をコストとして考える
例えば、何かの更新運用が1回5分で終わるとしても30日で150分、90日で450分、1年だと1,825分=約30時間もの作業量になります。
30時間は工数にすると5人日です。皆さん5人日あれば様々な機能が開発できるのではないでしょうか。
病気や突発的な理由で運用できないことを防ぐ
時には病気になって対応できないこともあると思います。
また、いきなり職場の飲み会に誘われて家に帰るころには酩酊で更新どころの話ではない…ということもあるでしょう。
手動運用でのミスを防ぐ
手動運用では様々な予期しないミスが発生します。
更新手順を間違えたり、コマンドを打ち間違えてデータ破損を引き起こして修復に時間がかかることはよくある話です。
いわゆるヒューマンエラーでのミスです。
Wikipediaのヒューマンエラーの項にはこのような説明があります。
ヒューマンエラーは様々な職種において、経験を重ねたベテランやルーチンワークでも起こりえる事である。経験で学んだ事により、スムーズに業務を全うする為に、業務に支障をきたさない範囲での基本的な確認・操作を省略し、積み重ねてきた事により「問題ない」という自己確信 (思い込み) が生じる。そのような状態下で、確認・操作を怠ったまま業務を進行させると、非常時に結びついた場合、重大な問題・被害に発展する可能性がある。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
どんな人間でも引き起こしてしまう、それがヒューマンエラーです。
当たり前の話ですが、これらをシステムでの自動的な運営にすればヒューマンエラーはゼロになりますね。
自動運用はモチベーションアップにつながります
僕の経験から、自分の作ったサービスで自動運用が走ると「お、更新されているな」と妙な高揚感を覚えますw
今まで手動で運用していたことが自動化される、これこそプログラマーの原動力の元なのではないでしょうか。
まとめ
さて、まとめます。
- 個人開発の手動運用はゼロにするべき
- 体調不良や不慮の理由により運用ができないときを想定する
- モチベーションが低下してもサービスが動き続ける仕組みを作る
- 運用が自動になるとエンジニアとしての達成感が満たされてモチベーションがアップする
これが、10年間個人開発サービスを運用してきた経験を持つ僕の持論です。
【例外】1年に1回未満の手動運用は残してもよい
極力例外の話はしたくないのですが、1年に1回未満の頻度で行う手動運用は残しておいてもよいかも知れません。
例えば以下がそれに当たります。
- SSL証明書の更新
- フッターCopyrightの年表記(2019など)
それではよい個人開発ライフを!