HTMLとJavascriptで人月計算をしよう

# 前の記事

の続きからです。
この章では、htmlとjavascriptの話です。
超初歩の初歩なので技術的なテーマとしては面白みはありません…

# ファイルについて

ソースコードはGithubに公開しています。
よくわからなくなったらそちらをご覧ください。

# 要件

解説の前に、動くものを見てみましょう。

その上で、読み進めてみてください。

## 業務委託(準委任)と派遣契約

派遣契約を主にしていた頃は、何もしていなくても時給が発生していたのでそれはそれでおいしい仕事だったのですが、業務としては待機状態時でもこういったツールを作っていたので、業務に関係のある(必要性は別)事はとりあえずなんかやっちゃうんですよね。
それが、業務委託となると仕事ありきで話が進むので、下手すると派遣より厳しいです。
もちろん、派遣と違って成果物を早く仕上げてしまえば後は同じなので、自分ができる仕事を見極めるのが重要です。

まずはこういった前提がある事を認識してもらえば、派遣と業務委託の時給を比較する意味が出てきます。
(個人事業主は有給も自分で設定しますし、国民保険や事業税も納付する必要があるのでその辺りも加味する必要はありますが、本スクリプトでは対象としません)

派遣は時給✕時間がストレートに反映されますが、業務委託は報酬を決めたら原則そのままです。
どちらも成果物の責任を負わないので、内容としては似たようなものと考えても良いですが、給与・報酬についてはアプローチが異なります。

これを一緒くたに扱うわけには行かないので、業務委託と派遣を分けます。

## 派遣だって月にいくら稼がないといけない事もある

派遣のジレンマです。
一日でも休めば月収に直撃します。取り返すことは出来ません。
業務委託だと比較的自分の予定をベースに組み立てる事ができます(客先常駐を求められる場合は別ですが、偽装請負に注意してください)

特に、正月やゴールデンウィークなど祝日が多い月は安定しません。
業務委託だと一日の稼働時間が長くなったり、祝日でも稼働する必要がありますが、大抵の場合、事前に契約時間に未達・超過した場合の取り決めを交わされます。
あくまで「時間」に基づきますが、成果に基づく時間ならクライアントと揉める事も少ないです。

## 派遣契約と業務委託契約のどちらが得か?

いやらしい話をしますが、派遣契約は社保であり、会社所属なのでクレジットカードや賃貸契約に強いです。
また、失業保険も適用できます。

対して、業務委託の場合はこういった福利厚生がなく、直接の金額が大きくても納付すべき金額は非常に大きなものになります。
これを時給で比較する事に意味は薄いのですが、最短時間と最長時間での時間あたりの単価を見るのも面白いです。
特に、未達時間と超過時間の時間給に不利を生じさせる契約を結ぶ会社もありますので、業務委託の経験が浅い場合はこういった点にも注目しましょう。
また、業務委託は160時間を超えたら残業手当が発生する、というような事はありませんが、会社員的には釈然としないでしょうから派遣契約の場合はどうだったのかを比較できるようにしておきたい思いがあります。

## 時間外内訳

業務委託だと夜遅くまで対応したのに報われない、なんて事もあります。
派遣だと徹底されているのになんでですかね?
そういうクライアントとは付き合わないのが鉄則ですが、キックオフやネット、エンジニアリングに知見のないエージェント等では分からない事が多いです。

そうなっても大丈夫なように、予め同単価の派遣の残業・深夜時給を把握しておく事が重要です。
業務委託として知りたいのは時給よりも報酬である事が多いです。
単純に時給が知りたいだけなら*1.25、*1.5をすれば良いです。

## 最低賃金

エンジニアの時給は高い(最低賃金で揉めない)のであってないような項目ですが、一般職の方に需要がありそうなので追加しました。
このスクリプトを使う人が最低賃金に興味を持ってもらうことを目的としています。

# 実装

これらの要件を満たすものが、先のスクリプトです。
基本的に加算・乗算・除算しかしていないので解説も何もないんですが、将来的に保守しやすいようにしておきましょう。

たとえば、要素が変更されたらcalc関数を呼び出すようにしていますが、calc関数内でどこから呼び出されたのか、何をするのかを集約しています。
実際に処理を実行する関数は別立てにして、共通の処理だけまとめています。
そのうち、同じ事を書いている場所がいくつかあります。
プログラマー的には集約したくなりますが、ビジネスロジックとして見たら他の処理について気にする必要はないのです。
なので、他と共通な処理があったとしても、ビジネス的には違うことをやっているという思想でまとめています。

もちろん、この方法が必ずしも正しいとは限りません。
コメントに溢れているのがその証拠で、コメントを書けば読みやすいわけではいないのです…。

せめてファイル名で分けるべきでしたね。

# 次の記事


のむらがあなたの役に立つ記事を書くためのコーヒーを一杯奢ってくれませんか? サポートをすると、のむらの記事を使って、あなたの記事を盛り上げてみませんか? また、有料記事などいただいた収益はすべて、あなたの代わりにアプリやツールを買って色々検証をして記事にするために使っています。