こんにちは、プログラマーのだいき(@dotpro_pm)です。
これからWebサービスを開発初心者の人にとって、どのように開発していけばいいのか、どのような点に注意すれば良いのか、どのようにリリースすればいいのかについて分からないことが多いと思います。実際、僕も初めてWebサービスを開発して、リリースしたとき、様々な箇所でつまずき、何回もやり直した箇所もありました。
そこで今回は、Webサービスを何個も開発してきた経験から、どのような点に気をつけて開発を行えば良いのか、どのような流れでWebサービスを開発すればいいのかについて解説していきたいと思います。
この記事を読むと以下のことを知ることができます。
まずは、Webサービスの開発方法について解説する前に、軽く自己紹介させていただきます。自己紹介なんて見たくないよ、読みたくないよという方は飛ばしていただいても結構です。一応どのようなWebサービスを作ってきたのか気になる人だけ読んでいただければ幸いです。
僕は大学3回生、20歳のときにプログラミングに出会い、プログラミングを勉強して2年が経とうとしています。この1年間で作ってきたWebサービスは、6つほどあります。1つ目は、社内用の勤怠管理のWebアプリケーション、2つ目は社内用の会計管理のWebアプリケーションです。
そして、3つ目は社内WikiのWebサービス(Beyonet-Wiki)、4つ目は勤怠管理のWebサービス(Beyonet-TimeCard)、5つ目はタスク管理のウェブサービス(Beyonet-Task)、6つ目はのし紙のウェブサービス(Beyonet-Noshii)を作っています。
つまり、約2カ月に1回のペースで何かしらのウェブサービスを作っている計算になります。実際は、社内関係のウェブサービスは必要最低限の機能しか実装していないため、1カ月ほどで完成しますが、ウェブサービスになるとお客さんに使ってもらうため、機能を増やしたり、企業アカウントログインや企業とユーザーを連携させることで、システムが複雑になったり、テストを入念に行うため、3か月弱ほどかかっています。
このような経験から、どのようにwebサービスを作ればいいのかについて書いていこうと思います。
webサービスを作るにあたって、まず必要なのはどのようなサービスを作るかということです。例えば、仕事マッチング系のwebサービス作りたいのか、業務を楽にする系のwebサービスを作りたいのか、教育系のwebサービスを作りたいのかなど、何を作りたいかを決定する必要があります。
そこであなたが行うべきことは、アイデアを出して、作りたいwebサービスを複数個考えることです。複数のwebサービスを考える理由としては、誰かが必要にしてくれるようなサービスを作るためには、複数の選択肢を用意して、それぞれのサービスを客観的に見る必要があるからです。
どうしても、1つだけしかwebサービスがないと、客観的に判断することができず、結果として自分よがりのサービスになってしまう可能性があります。そうならないためにも、複数のwebサービスを考えて、客観的に考えたうえで、ニーズがありそうなサービスを選びましょう。
webサービスを決めたら、そのwebサービスのアイデアをまとめていきましょう。まとめ方としては、誰に何をどのように提供して、どのような価値を感じて貰うかという点でまとめていきましょう。
例えば、タスク管理のwebサービスを提供しているサービスでは、30人未満の企業に対して、プロジェクト管理とタスク管理を行うことができるサービスをネット上で提供して、タスクを確実にこなせるように仕組みを作り、プロジェクトで成功する体験を得てもらうことを目標としています。
このように、まとめることができると、誰に何を提供すればよかったのかを考えて、設計することができるため、提供するwebサービスと顧客層が一致し、最終的にマーケティングや広報しやすくなります。
次は、ある程度webサービスを決めて、アイデアをまとめたら、競合を調査していきましょう。同じ層を狙っている強い競合がいる場合は、競争しても負ける可能性が極めて高いので、層を外すか、他のwebサービスへとシフトしましょう。
もちろん、その競合よりもより素晴らしいwebサービスを開発して、提供することができると確信できれば、そのままそのwebサービスを開発してもいいですが、かなりの体力が必要になることは覚悟しておきましょう。
競合を調べたら次は、SNSなどでニーズ調査を行っておきましょう。せっかくwebサービスを作っても使ってくれる人が、全くいないと話になりませんので、必ず調査をしておきましょう。
また、ネットの発達もあり、現在ではニーズ調査はアイデア出しの段階で行っている企業もあります。また、アイデア出しの段階でニーズを調査し、webサービスがまとまったらニーズ調査をし、競合分析をしたらニーズ調査をし、ニーズを確認し続けながら、アイデアをまとめていく方法もあり、失敗する確率を減らすことができます。
開発するwebサービスを決めたら、次はどのプログラミング言語を使うか決めていきましょう。例えば、WordPressと連携したwebサービスを作りたいならば、PHPという言語を選択した方がいいですし、単にwebサービスを作りたいならRubyという言語がおすすめです。また、AI系のwebサービスを作りたいなら、Pythonという言語がおすすめです。
言語は、作りたいwebサービスによって選ぶことをお勧めしています。一見、様々な言語を覚えないといけなくて大変と思うかもしれませんが、1つの言語を習得すると他の言語も簡単に習得することができるよになるので安心してください。
あわせて読んでおきたい記事
言語を決めたら次は、フレームワークを決めていきましょう。フレームワークとは、システム開発を効率化してくれる機能をまとめて提供してくれているソフトウェアのことを言います。
簡単に言えば、効率的に開発することができるテンプレートの集まりだと考えていただいて結構です。フレームワークは、言語によって様々ありますが、ある程度メジャーなフレームワークを使いましょう。というのも、作ったwebサービスが売れたとき、複数人で開発してく必要があります。
そのとき、マイナーなフレームワークを選ぶと、開発するために多くの学習コストがかかってしまい、開発速度が遅れてしまいますので、メジャーなフレームワークを選びましょう。
フレームワークについて詳しく知りたい人は「Webフレームワークとは?メリットとデメリットを徹底解説」の記事も合わせて読んでおきましょう。
次は、webサービスで必要になる最低限の機能をピックアップしていきましょう。このとき、できるだけ機能数をどのようにしたら減らすことができるのか、外部サービスを使ったら機能を減らすことができるのではないかと考えて下さい。
たまに、最初から全ての機能を作り、全ての機能を内製化するという人もいますが、それは個人的におすすめはしていません。というのも、webサービスを市場に出すのが遅くなってしまい、フィードバックを貰える機会が遅くなっていくからです。
まずは、必要最低限のwebサービスを作り、素早く市場に出して、多くの人に評価してもらうことが大切です。そして、そのwebサービスにニーズがあったら、少しずつ機能を増やしたり、デザイン性を高めたりして改善を加え、いいサービスにしていくことが大切なのです。
必要最低限の機能を考えたら次は、どのような画面が必要になるのか、実際の画面ではどのようなデザインにするのか、画面にどのような機能をつけるのか画面を設計していきましょう。
よく、画面設計を行わずに、コードを書き出す人がいますが、必ず途中で破綻してしまいますので、絶対に画面設計を行いましょう。
画面の設計図は、個人で開発を行う場合は紙を使用したり、Googledriveのスライドを使用したりするのがおすすめです。一度画面を設計し終わったら、他の人に見てもらい感想を貰いましょう。また、複数人で開発を行う場合は、AdobeのXDをおススメしています。
画面を設計したら、次はデータベースの設計を行いましょう。データベースの設計は、プログラミングの熟年者でもかなり悩むところなので、初心者にとってかなりの難関だと思います。しかし、こんなことを言ったら多くのプログラマーに怒られるかもしれませんが、そこまで深く考えずにデータベースを設計しても大丈夫です。
というのも、初心者がどれだけ必死に考えも、データベース設計は失敗するからです。実際、僕はデータベース設計は少なくても20回以上は失敗して、データベース設計をやり直しています。しかし、失敗するからこそデータベースの設計が上手くなります。最初は考えるよりも、手を動かして、どんどん失敗しましょう。
画面設計とデータベース設計が終わったら、次はテスト項目について考えていきましょう。例えば、パスワードの文字数、パスワードがからの場合は保存できない、順番入れ替えたら想定通りに結果が表示されているかどうかなどどのようなテストを行うべきかについて考えていきましょう。
初めてwebサービスを開発する人は、ピンと来ないかもしれないんので、かるくテスト項目を作るだけで大丈夫です。webサービスを何回も作っていくと、だんだんとどんなテスト項目が必要になるのか分かってきます。
次は、必ずwebサービスのスケジュールを決めていきましょう。理想でいえば、ベータ版のwebサービスは1~2カ月以内に開発するようにスケジュールを組みましょう。
もし、3か月以上開発がかかるならば、何かしらの機能をそぎ落としたり、外部サービスで置き換えることができないか検討してください。
設計とスケジュールを決めたら、次はコードを実際に書いていきましょう。コードを書く時の注意点としては、できるだけ同じ機能やデザインがあれば、汎用的に使えるようにしておくことです。
というのも、機能やデザインを少し書き換える必要があるとき、汎用的に使えるようにしていないと、全てのページ修正する必要がありかなりだるいです。プログラマーにとって、求められる思考は、どれだけ楽にwebサービスを開発することができるかという思考です。
コードを書く時は、どのようにしたら短く簡単に、コード量を少なくして、楽することができるかについて考えましょう。また、分からない箇所があれば、Googleで調べたり、知り合いに聞いたりして、30分以上悩まないことがコツです。
コードを書いたら次はテスト項目に沿って、テストを行っていきましょう。テストは、コードを書いた方が良いですが、初心者の人や初めてwebサービスを作った人は、テストを理解する意味で、実際にブラウザで入力してテストを行うことをおススメしています。
ある程度テストとはどのようなものなのか理解した人は、テストをコードで書いた方が良いです。その理由として、少し変更を加えるたびに、手でテストを行うのが面倒だからです。面倒だと思うことは全てプログラミングで行い、どんどん楽をしていきましょう。
テストが終わるといよいよリリースです。実際、リリースをしてもよっぽど広報を行っていないと誰も登録してくれません。ですので、最初は知り合いの人に使ってもらい、どんどんアドバイスを貰って、少しずつ改良しながら、webマーケティングを行い、知り合った人に営業をしていきましょう。
地道な作業かもしれませんが、webサービスが浸透して、そのお金で生活してくまでには少なくても3年はかかります。ですので、すぐに結果が出なくても落ち込む必要はありません。まずは、コツコツとよりよいサービスにしていきましょう。
これからwebサービスを開発しようとしている人が一番最初にするべきことは、コードを書き出すのではなく、アイデアを出してwebサービスを決定することです。そのwebサービスを実現するための最低限の機能、画面、データベースを設計していきましょう。
設計していない人は、あとから痛い目にあいますので、必ず設計を行いましょう。実際、僕の知り合いは設計書を書かないまま2か月かけてwebサービスを開発したにも関わらず、コードがぐちゃぐちゃになり結局webサービスを1から作り直す羽目になりました。
そうならないためにも、設計書を書いてからコードを書いていきましょう。また、リリースしてもすぐには使ってもらえないことが多いので、辛抱強くwebサービスを改善を重ね、ユーザーにとって満足するものを作っていきましょう。
以上、プログラマーのだいき(@dotpro_pm)でした。