【質問#111】副業でインフラ構築・保守をするにあたっての相談です

質問・悩み相談の回答です。

質問

こんばんは。少し前から知人から業務外(副業)でのインフラ構築・保守の相談を何点か受けております。

せっかくなので受けてみても良いかな?と考えているのですが、依頼を受けるにあたって悩んでいる点がいくつかあります。withpopさんはおそらく今回私が受けているような小さめのサイト構築・運用を請け負った経験があるのではないかと思い、ご相談させて頂きました。

悩んでいる点を相談させて頂く前にいくつか前提を記載致します。

・こじんまりしたサイトの構築・運用
・インフラ周りを見ることができるのは私のみ
・私が不慮の事故等で保守不能(誰も手が出せなくなる状態)になることは避けたい
・クライアントから契約の継続を断られた場合に次の作業者に引き継ぎ可能としておきたい

その上で以下に悩みを記載致します。

  1. サービス(クラウドやVPS)のアカウントは誰で契約するべきなのか

まず、クラウドやVPSを利用することになりますが、そのアカウントは誰で契約するべきなのかという問題です。考えられるのは...

・私が契約を行ない利用料をクライアントに請求する
・クライアント自ら契約してもらう

の2つだと思います。

この場合に前者であれば好き勝手出来るので楽なのですが、前提の「不慮の事故等で保守不能になる」可能性が高くなりますし、引き継ぎのハードルがあがります。後者の場合であればそういった状況は防げるとしても、顧客がITに精通していない場合であれば結局こちらが契約情報を確認することになります(例えばAWSでIAMを作成して欲しいとお願いしても通常は難しいと思います。ので結局こちらがRootアカウント情報をもらうことになったり...します...よね?)ので、それはそれで問題にならないかなぁ...?と心配しています。

  1. サーバに関する情報共有について

次に懸念しているのが、サーバの情報(鍵、パスフレーズ、ポート等々)です。

こういった情報も一人で保有していると「不慮の事故等で保守不能になる」可能性があるのでできればクライアントと共有しておきたいです。そうなったときに、共有するために別途インスタンスを契約するのか、そのインスタンスは誰で契約するべきのか...などといった問題が出てきてしまい、果たしてどうやって共有するべきかというところで悩んでいます。

  1. 見積もりについて

見積もりですが、どのように行っているでしょうか?やはり時間単価でしょうか?特に保守費をどうするかが悩みどころです。こういったサイトや情報を参考にしている。などあれば教えて頂きたいです。

長くなってしまったのですが、つまるところ、保守周りを一人で行なうとなった場合に(主に不測の事態で)サイトの存続不可に陥らないために各種サービスの契約や情報共有といった部分をどのように行うのがベターかというところをお伺いしたいです。

以上です。大変お忙しいと思いますが、お時間のある時にご回答いただければと思います。

P.S Twitterなどでお子様の様子が微笑ましくてほっこりします。

回答

長らく質問コーナーを放置してしまったため、再開してバリバリ答えていきたいと思います。よろしくお願いいたします。質問してくれた皆様方におかれましてはお待たせして申し訳ありません。

withpopさんはおそらく今回私が受けているような小さめのサイト構築・運用を請け負った経験があるのではないかと思い

あります。ありますが、契約関係はグダグダであまり真面目にやってないので、参考程度といいますか、一例としてこんな人が居ますよ、程度に読んで頂けると助かります。

まず、

  1. サービス(クラウドやVPS)のアカウントは誰で契約するべきなのか

ですが、私ならば

・クライアント自ら契約してもらう

を基本は提案します。インフラとして利用するクラウドサービスへの支払い義務までを負うというのはリスキーな気がします(クライアントが金を支払わなかった場合など)。また、仰るとおり誰かに引き継ぐのも面倒になります。しかしながらメリットもあり、継続してクライアントから金の支払いを受けるために保守費用(作り終わったらどうせ細かい修正が沢山飛んでくる)を請求しやすくなるのと、「引き継ぎが困難」というのはそのまま、仕事を継続して受け続けやすいというメリットにもなります。

ですから、もしそのお客さんの金払いがよく、継続してお世話になりたいのならば自ら契約して保守費用を継続的にもらうというやり方が適していると思います。ただ「継続してお世話になりたい」かどうかは、仕事を始める前に判断しにくいところでもあります。

あとは、その後の自分の仕事をどうしたいかにもよると思います。副業で色々請け負っていずれは本業にしたいという強い意志があるならば、リスクを取る方に判断は傾くでしょうし、なんならインフラを顧客間で共通化して顧客の同業のサイトなどをまとめて面倒見るなどの方法も取れると思います(あくまでの方法の一つの例です)。

なんか回答になっているかどうか微妙ですが、以上のようなことを考えました。もし私が質問者様の立場(メインの仕事が他にあり、副業でやる)というのであれば、とりあえずはより低リスクな方法と思われるクライアント自ら契約してもらう、という方法を取ると思います。

また、本質問に付随する部分

顧客がITに精通していない場合であれば結局こちらが契約情報を確認することになります(例えばAWSでIAMを作成して欲しいとお願いしても通常は難しいと思います。ので結局こちらがRootアカウント情報をもらうことになったり...します...よね?)ので、それはそれで問題にならないかなぁ...?と心配しています。

についてですが、私の今までの経験上はITの知識が無いお客さんというのは結構カジュアルに認証情報や契約情報を渡してきます。

そしてこれはご指摘の通り、問題でもあります。ただ、こういった情報が流出して困るのは顧客側なので、本来ならば発注する側がNDAや覚書の類を書いて顧問弁護士に見てもらったりなどして書面を交わし、発注側が防衛する(万が一の際にはそれを根拠に損害賠償請求する)というのが普通であると認識しています。だから受注する人が別段なにかアクションを起こす必要があるかというと、無いような気もします(この辺りはあまり詳しくないです)。

ぶっちゃけ、お客さんは個人に発注しようとしている時点でその辺りはあまり厳しく考えてないと思います。

自己防衛(顧客から訴えられないために)という点では、アカウント情報の流出に関する一般的な防衛策(二段階認証や開発用マシンのHDD暗号化)くらいかなぁという気がします。

  1. サーバに関する情報共有について

私の経験上、ITリテラシの低いお客さんとは真面目にこういうことをやった経験が無いです。申し訳ないですが…。

ぱっと思いつくのはG Suiteを契約してGoogleスプレッドシートやGoogleドキュメントなどで共有するのが楽でしょうか(無償のGoogleアカウントでやるのは規約違反だったと記憶しています)。二段階認証を設定していれば十分にセキュアですし、リテラシが低くても普通に使えると思いますし。

メールは最も手軽ですが、情報流出や情報の散逸というデメリットがあるのでやりたくないですね。

  1. 見積もりについて

時間単価でしょうか?

結論から言うと開発は時間単価かなぁという気がします。というか私が教えてほしいです。IT業界においていかなる方法で見積もりをするか、どのようにすれば正確な見積もりになるかは永遠のテーマであると思ってます。

時間単価のしんどいところは、自分がスキルを付けて安く仕事を済ませられるようになった時にも報酬が上がらないという点ですね。早く終わらせることが出来るようになったらその分他の仕事に回すことで結果として売上は増えると思いますが、一人では高が知れてますし。では時間単価以外に見積もれる方法があるかというと…。FPとかCOCOMOとか?

というわけで私は過去の実績値から見積もった工数×時間単価に対して×1.2〜3くらいのリスク分をのせて見積もりを書きます。過去に似たような事を同一のクライアントにした経験があれば、それと大きく矛盾しないような見積もりにしておくか、何か乖離があることに対する言い訳を考えておきます。

…と、こんなことを書いて私のお客さんに読まれたら困りますね。でも書いちゃいました。やっほー、見てる?

あと、参考にするサイト等ですが、基本は皆さんあまり出したくない情報だと思うので中々見当たらないような気もしますね。Webサイトの製作であればネットで検索すると1ページ幾らとか見積もりを公開しているところもあるので、一応はそういうのも参考にします(びっくりするくらい安い金額を載せてるところが多いですが)。

あんまり質問の主旨とは関係ないですが、結局、IT関係で収入(売上)を増やすならいいお客さんを見つけるのが最短かなぁという気がします。これはエンジニアリングの放棄とも言えますが、でも清く正しく見積もりをすることで売上が伸びるって話も聞いたことが無いですし。

保守費ですが、私はサラリーマン時代にそういったことを副業でやっていたときは、そもそも保守費を貰っていませんでした。1番目の質問と被りますが、あんまり付き合いたくない顧客だった場合は次回発注を受けなければいいだけなので。

継続的に面倒を見ることが確定しているのであれば貰っておきたいところですね。保守費の見積もりも同様に難しいですが、自分なら実際かかる費用+月間x時間を上限とするサポートの費用、とかで見積もりますかね。で、x時間を超える分に関しては別途発注して下さいと言います。

と、そんな感じで回答になってるかどうか微妙な文章でしたが、一例として参考にして下さい。

実際はうるさいお客さんか否か、お金を持ってるお客さんであるか否かで色んな所が大きく変わって来ると思います。

P.S Twitterなどでお子様の様子が微笑ましくてほっこりします。

ありがとうございます。なんだかもうTwitterが本拠地みたいになってるのが最近ですが、もうちょっとブログもまともに更新したいですね。まずはSashimiを…(まだ開発を諦めてない)