ZOOMと全く同じ機能をwordpressで実装した時の概算見積を真面目に考えてみる

## 前置き

朝起きたら`香ばしいツイート`を発見してビクビクしてしまったので
この問題を解いてみたくなった。

## 該当のツイート

<img width="520" alt="スクリーンショット 2020-06-05 14.02.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/902d95b3-ed76-6b4e-5102-dbbfa854148e.png">

[起きてもまだ通知全然止まらなくてワロ田](https://twitter.com/bassmicrobe/status/1268677587812798464?ref_src=twsrc%5Etfw)


## 今回の問題は

さてさて今回の問題としては

`Zoomと全く同じ機能をwordpressで実装した時の概算見積もり`を出すになりますね。

これを考えるには`Zoom`と`wordpress`について調べることが必要そうですね。

## Zoomとは

Zoomビデオコミュニケーションズ（ズームビデオコミュニケーションズ英: Zoom Video Communications, Inc.）は
アメリカ合衆国カリフォルニア州サンノゼに本社をおく企業。

通称はZoom（ズーム）。クラウドコンピューティングを使用したWeb会議サービスZoomを提供する。
参考：wikipediaより

`Zoom`は会社名でもあり、ツールの名前でもあるので、ここで言う`Zoom`はツールとしての`Zoom`となります。

### 料金プラン

| プラン | 金額 | ホストID| 制限 |
|:--|:--|:--|:--|
| 無料版 | 無料 |  | 参加は100名まで、3人以上のWeb会議は40分まで |
| プロ | 年額/24,000円 | 5ID～9ID | 参加は100名まで |
| ビジネス| 年額/26,400円 | 10ID〜49ID | 参加は300名まで |
| エンタープライズ | 要相談 | 50ID〜 | 知らん |


無料でもそこそこできまずが、制限があるので会社であれば月額いくらか
支払った方が良さそうですね。

### ZOOMが提供している機能

資料などからみたZOOMでできそうなことを洗ってみます。


| 機能 | 無料版 | プロ版 | ビジネス | エンタープライズ |
|:--:|:--:|:--:|:--:|:--:|
| 最大参加人数 | 100 | 100 | 300 | 500 |
| 1対1ミーティング | ○ | ○ | ○ | ○ |
| 会議の時間制限 | 40分 | 時間制限なし | 時間制限なし | 時間制限なし |
| オンラインサポート | ○ | ○ | ○ | ○ |
| ビデオ会議機能 | ○ | ○ | ○ | ○ |
| WEB会議機能 | ○ | ○ | ○ | ○ |
| グループコラボ機能 | ○ | ○ | ○ | ○ |
| セキュリティー | ○ | ○ | ○ | ○ |
| ユーザー管理 |  | ○ | ○ | ○ |
| 管理者機能 |  | ○ | ○ | ○ |
| レポーティング |  | ○ | ○ | ○ |
| カスタムID |  | ○ | ○ | ○ |
| スケジューラー |  | ○ | ○ | ○ |
| 1GB記録 |  | ○ | ○ | ○ |
| REST API |  | ○ | ○ | ○ |
| Skype互換性 |  | ○ | ○ | ○ |
| 専用電話サポート |  |  | ○ | ○ |
| 管理用ダッシュボード |  |  | ○ | ○ |
| バニティURL |  |  | ○ | ○ |
| 業務用導入オプション |  |  | ○ | ○ |
| 管理ドメイン |  |  | ○ | ○ |
| シングルサインオン |  |  | ○ | ○ |
| 会社のブランディング |  |  | ○ | ○ |
| カスタムメール |  |  | ○ | ○ |
| LTI統合 |  |  | ○ | ○ |
| クラウド記録スクリプト |  |  | ○ | ○ |
| 無制限クラウド保存 |  |  |  | ○ |
| 専用マネージャー |  |  |  | ○ |
| 事業レビュー |  |  |  | ○ |


基本的にはビデオ会議機能の提供ですね。
有料版では参加人数や時間の制限が変わる形ですね。

プロ版以降の機能はZoomのメインの機能ではなく、付加機能であると思われるので
Zoomと同じことをしたいと思うならとりあえず、ビデオ会議できればいいんですよね。

## wordpressとは

WordPress（ワードプレス）は、オープンソースのブログソフトウェアである。PHPで開発されており、データベース管理システムとしてMySQLを利用している（後述のプラグインよりSQLiteでの使用も可能）。単なるブログではなくコンテンツ管理システム (CMS) としてもしばしば利用されている。b2/cafelogというソフトウェアのフォーク（後継）として開発、2003年5月27日に初版がリリースされた[4]。GNU General Public License (GPL) の下で配布されている。

参考：wikipedia

簡単にするとWordPress Foundationの開発した`CMS`です。
`PHP`で書かれているのでPHPが書ければ機能開発ができますね。

### wordpressでできること

`CMS`ですので、基本的な機能としては
・Webサイトの構築
・記事の投稿、更新、削除
・プラグイン機能の追加、削除
・デザインのカスタマイズ
と言った所でしょうか。

プラグイン自体はwordpressそのものの機能では無いので追加機能です。

`Zoomと全く同じ機能をwordpressで実装`と言うことになると`wordpressのプラグインを開発する`と言うことと
同義になるかなとか思ってみます。

## wordpressのプラグイン開発を考えてみる

さて`Zoomと全く同じ機能をwordpressで実装`と言うことでwordpressのプラグイン開発を考えてみます。
自分はwordpressのプラグインを開発したことはありませんが、wordpressそのものは使ったことがあります。

**言語の選定**
まずは言語を考えることとしましょう。

wordpress自体は`PHP`で動いているので`PHP`を選択することは理にかなっていると思います。
また、WEB会議のシステムとなるとフロントサイドの機能面もいるので`Javacript`も必要になるはずです。

**DBの選定**
wordspress自体`Mysql`などのDBを使用しているので、そいつをそのまま流用してしまいましょう。


**インフラの選定**
用いるインフラ面は`AWS`や`GCP`などのクラウドサービスを用いることとしましょう。
EC2とかインスタンス上のwordpressをインストールしてその上で動くプラグインとして開発する
と言うていで見積もりをすればいいと思います。

## 作業内容の洗い出し

まず見定める部分が`Zoomと全く同じ機能`と言う所です。
そもそも`Zoom`にそこまで詳しくないので、完全に同じものというを考えるには少し無理があるので
ざっくりで機能を考えます。

WEBのシステムを作るのと同じような考え方でいいんだと思います。
基本フロント側とバックエンド側、双方の機能が必要なはずです。

画面単位で考えた方が良いかもしれませんね。

必要な画面を考えてみます。
`Zoom`のユーザーとしての利用をしたことがないので適当に考えます。

おそらくは
・管理画面
・ユーザー登録
・会議画面

ここがメインの画面だと思うので3つの画面を作り、その機能を考えていきます。



### 管理画面
管理系の機能は必要でしょうね。

**ユーザー管理を作る**
会議単位で会議をすると言うことになると、会議を開く人が必要になります。
どこかで管理ユーザーを作ったり、一般ユーザーを保持する機能が必要です。

**会議を作る**
会議を開くには会議URLを作成してアクセスできるようにする機能が必要です。

**会議の録画の参照**
会議を録画したら参照できるような仕組みも必要ですね。



### ユーザー登録画面

管理ユーザーを登録する用の画面も必要かと思います。

**ユーザー登録**
メアドとかパスワードとかでいろいろ登録できる機能は必要でしょう。



### 会議画面

会議に参加した人が見れる画面は必要ですんで作りましょう。

**会議を開く**
会議URLにアクセスして会議を提供する機能が必要です。

**会議中のカメラ・マイクのオンオフ**
会議に参加した際にカメラとマイクの機能の制御ができないと悲惨なので作りましょう。

**会議で質問チャット**
チャット機能有ったかと思いますので、実装しましょう。

**会議で手を挙げる**
会議中手を挙げるとか有ったと思ったので、そんな機能作りましょう。

**会議を抜ける**
会議から抜けれないとかはギャグだと思うので作りましょう。

**会議を消す**
会議を作成して、終わったら消しておかないとダメだと思います。

**会議の録画機能**
会議は録画できるようなので、録画の仕組みが必要です。


会議画面はやること多いですよねー


## 作業工数の見積もり

作るものが想定できたら次は工数を見積もっていきましょう。

自分がフリーランスで全部自分一人でやったと仮定した際の作業工数を出していきます。
時間単位だと細かいので、全部日単位(8時間)で考えます。

デザインもフロントもバックエンドもごっちゃ混ぜで全部もりです。


| 画面 | 作業内容 | 工数 |
|:--|:--|--:|
| 管理画面 | 画面作成 | 10 |
| 管理画面 | ユーザー管理機能作成 | 15 |
| 管理画面 | 新規会議機能作成 | 5 |
| 管理画面 | 録画参照作成 | 3 |
| ユーザー登録画面 | 画面作成 | 5 |
| ユーザー登録画面 | ユーザー登録 | 5 |
| 会議画面 | 画面作成 | 45 |
| 会議画面 | 会議機能作成 | 30 |
| 会議画面 | チャット機能作成 | 10 |
| 会議画面 | 録画機能作成 | 10 |
| 会議画面 | 会議の削除機能作成 | 2 |
|  | 小計 | 140 |
| テスト | 管理画面 | 5 |
| テスト | ユーザー登録画面 | 5 |
| テスト | 会議画面 | 10 |
| テスト | システム全体 | 10 |
|  | 合計 | 170 |

と、その前に技術調査なんかの時間が必要ではあります。
20日ほどの工数は欲しいなーと思います。

なんやかんやで`200日`くらい働き詰めであれば、全く同じ機能かどうかは置いておきますが
作れるだろうと想定します。


## お値段の見積もり

さて、ここが一番のキモです。

いくつかのパターンを考えます。

まず一番の問題は
`Zoomと全く同じ機能をwordpressで実装`
と言う所です。

そもそもwordpress上に実装が困難かもしれません。
そこは調査をしてみないと分からない所なので、実際にはできないことかもしれません。

まずは調査期間として`20-30日`,費用としては`50-100万円`くらいを欲しい所だと思います。
(この金額でやるかどうかは置いていきます。)

できますね、となったら先ほどの工数の時間がかかる感じです。

**`200日`**

というていで考えると単純に1日あたりの金額をかければ良いと良いと言うことになります。

自分は普段、底辺の金額しかもらっていないので1日あたり**`X万円`**ですね。

ということで見積もり金額は**`200X万円`**となります。

これが企業体になると、だいたい1日あたり10万円からと言う感じになるはずです。
1人あたり月で100万円以上は取ってるはずです。
ということで最低**`2000万円`**は取れるとおもいます。

ざっくり見積もりでは精緻な見積もりは無理なので想定が甘いところや抜けているところがあり
実際にはもう少しかかると思います。

本気でやるなら`Zoom`を買収すれば`Zoom`と同じ機能が手に入ります。

<img width="634" alt="スクリーンショット 2020-06-05 16.33.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/379626/bc44602a-6d66-542f-6c87-b5d976b8dba3.png">
本日2020/06/05の16時時点で時価総額で`593.09億`ですね。
円なのかドルなのか分かりませんがwww

本来それくらいの価格がつく機能のものを作るのですから
それなりの金額が貰えておかしくないはずですので
もっとお金出してくださいですね。

## まとめ

ざっくり見積もりとしては調査用で100万円

作業費用で`200 * 一人当たりの単価 + 技術調査費用`　

という感じじゃあないのかなと妄想します！！！！！！

そもそも`wordpressで実装`ってところが非常にツボですよね。




















## 作者の情報
乙pyのHP：
http://www.otupy.net/

Youtube：
https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter：
https://twitter.com/otupython