教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
本教材では、Tinder 風マッチングアプリを題材に、要件定義と設計について学びます。
要件定義や設計はソフトウェア開発のプロセスの中でも特に知識と経験が求められる分野です。要件定義や設計に関する書籍はたくさんありますが、そこそこ分量があり、かつ身につくまでに時間が必要なものが多く、どれか一冊で入門したいというニーズに向いているとは言い難いです。本教材は、そうした膨大な知識のほんの一部を抜き出して、入門書的な内容を目指しました。要件定義と設計への興味を持っていただき、これなら自分にもできそうと思ってもらえれば幸いです。
必要条件は特にありませんが、一度はご自分でなんらかのウェブアプリケーション(チュートリアル程度のものでも可)を作られた経験があると望ましいです。
本教材では、ウェブアプリケーションを題材に要件定義から内部設計(バックエンド)までを学びます。したがって、主にウェブアプリケーションのバックエンドエンジニアの方が対象ですが、UI 設計に関する記述もありますし、開発の全体像を理解するという点では、フロントエンドエンジニアの方にも参考になる部分はあると思います。
また、上記に加えて、以下の条件のいずれかに該当する方:
本教材で使用するツールは、macOS (Catalina) で動作確認していますが、Windows でも同じように動作するはずです。
本教材で使用する Figma や Cacoo は無料で使えるプランがありますが、作成できるデータ量や機能面で制限がありますのでご注意ください。カリキュラムを進める中で、有料プランでないとできないことはありませんが、ご自身でデータを多く使いたいということであれば、有料プランを検討してもいいでしょう。詳しくは以下のリンクからご確認ください。
フリーランスのウェブアプリケーションエンジニアとして、近年は主にスタートアップ企業にて、サーバサイド(PHP)およびフロントエンド(JavaScript, TypeScript)のプロダクト開発をしています。開発以外にも、技術選定、設計、スクラム開発導入、テスト環境の整備など、チームにとって最適な開発プロセスを回せるよう、様々な側面からサポートする仕事をしています。
この教材を執筆した背景としては、近年、アジャイル開発が浸透し、細かく作って細かくリリースすることが多くなっています。しかし、柔軟性が高くなった一方で、スピードを優先することにより要件定義や設計がおろそかになっている事例を見聞きすることが少なくない、ということです。
どのような方法で開発しても、上流工程のミスは下流工程に比べリカバリが難しくなるので、これらのスキルは非常に重要なものです。
この教材では、いざ要件定義をしようとしてもなにをしたらいいかわからない、なにが正しい設計なのかわからない、といった疑問を解消したり、実装に入る前に素早く要件定義や設計ができるように、基本的な知識やコツなどをこの教材でお伝えできたら、と思います。
本教材を進める上で使用するツールの紹介や学習の進め方などについて解説します。
要件定義に入る前に、どのように開発を進めていくかといった方針やおおまかな計画をします。方針や計画を決める際のポイントについて学びます。
要件定義に関する基礎知識や気をつけるべきポイントについて学びます。漠然としたアイデアを整理して要件をまとめる方法、上手に要件を記述する方法、ユースケース図の書き方などが身につきます。
外部設計に関する基礎知識や気をつけるべきポイントについて学びます。UI 設計やデータベース設計のコツやわかりやすい API 設計などが身につきます。
内部設計に関する基礎知識や気をつけるべきポイントについて学びます。フレームワークに Laravel(PHP)を使うことを想定し、モジュール分割のコツやより良い関数の書き方などが身につきます。