ひとり疑似プロジェクトでスキルを高める(要件定義編)
前回は、大したことないし、 さっと決めたいとか言ってけど、機能がいっぱいありすぎて無理だった・・・・
ここで決めることは、 システムの目的/利用者/どんな機能を持っているか/本質的UI/概念データモデル。 くらいにしてたんだけど、すでにお腹いっぱい(ヽ´ω`)
全部色々細かくやっていたら2016年が終了しそうなので、 ログインと勉強会を登録/検索/参加する機能の最小限だけ先に実装する計画に・・・・
使用したツールなど
- Github
- ドキュメント全般ここで管理しました。(github初めて使った。。。。)
- Markdown
- Githubでドキュメント書くならこれでしょうってことで。 ついでにatomも導入。(emacs派だったけども)
- GUI Flow
- 画面遷移およびUIの記述に使用。
- ER Master
- 概念データモデルの作成に使用。
というかぶっちゃけどれも初体験
使用したツールの導入などはまた別途記事に。
要件定義について
単純な機能だろうとか思っていたけど全然そうじゃなかった。
必要な機能一覧を洗い出して、ユースケース記述を書いていくと、 考慮しないといけないところが出てくるわ出てくるわ、、、、、
例えば、登録した勉強会の日時場所が他の勉強会とかぶっていた場合とか、 勉強会の募集人数が開催場所のキャパを超えていた場合とか、 初めは全然意識して無いのがちらほら・・・
こういうのも訓練になって良いと思う。
リポジトリ
とりあえず以下のサイトを参考にアカウントの作成、 リポジトリの作成&公開までした。
2014年版Githubの使い方!Windowsで初心者でも簡単アップロード
作成したリポジトリは以下。
https://github.com/hirohiso/--study
githubのwindowsツールの使い方はもうちょっと調べる必要ありそう。 tortoiseGitの代わりとして使えるのかな?
とりあえず、実装に移っていきます。。。。。。
ひとり疑似プロジェクトでスキルを高める
仕事だけではスキルはあがらない
SE6年目にして実感。今やっていることは、 外部設計でExcelをこねくり回しているだけ(無心でExcel方眼紙作業をやっている)。 やはり、内部設計や実装、単体テストとかもやってみたい。 (しかもできるだけ最新の技術使って)
自分ですればいいじゃん
てなわけで、自分でお題を設定し、 上流~下流までやれば上記の鬱憤を晴らせるのではと考えた。
お題
この設定は割りとむずかしい(自分の想像力の頭ではまず候補が出てこない・・・)。 ネット上にお題一覧が転がっていれば早いけど・・・
ちょっと2,3日ほど考えて「社内勉強会管理システム」という架空のシステムを作ることにした。データ的にマスタ2~3個、トランザクション1~2個のシンプルなアプリケーションで済むはず。
いちおう候補としては以下も考えた。
- 図書予約システム
- CDレンタルシステム
どちらもやりがいありそうだが、業務ルール設定時に無限に想像が広がってしまいそうなので今回はやらないことに・・・。
計画
お題も決まったのであとは計画。 SIer身分なので、要件定義→外部設計→内部設計→実装→単体テスト→結合テスト のオーソドックスな順でやっていくことにした。 要件定義、外部設計は、顧客=俺なのでちゃちゃっと仕様書書いて終わらせたい。
要件定義/外部設計(1週間)→内部設計(1週間)→ 実装(1週間)→単体テスト/結合テスト(3週間) で1.5ヶ月くらいで出来るかなぁ
次回
要件定義/外部設計についてまとめてみる。 この工程で重要なのは合意形成の技術であり、 ひとり疑似プロジェクトだとどうしようもないので簡単にすませるつもり。