アプリ版:「スタンプのみでお礼する」機能のリリースについて

ゼロからシステム開発を行うとき、一般的には、まず何から始めたらよいでしょうか、その最終工程までのロードマップが知りたいです。まずは、一人でできる範囲のアプリケーション開発(例えば、今
自分は、勤怠管理システムを作ろうと思っているのですが。)その工程毎におすすめの書籍などがありましたら教えていただけるとありがたいです。ちなみに、自分は開発経験は、ほとんどないです。
初歩の初歩から教えていただきたいと思っています。

A 回答 (6件)

受注S/Wなら、エンドユーザに対するヒヤリングが第一作業。

現場で必要とされるソフトの調査。オペレーションの概要や画面設計、帳票設計のプロトタイプを打ち合わせる。
上の作業が終わったら。この時点で、できることと、できないことをまとめ、大雑把な工数を割り出して、第一段階の見積もりを算出し、
再度、エンドユーザとミーティング。外部仕様(入出力仕様etc)を詳細化する。
上の2作業を何度か繰り返し、外部仕様の詳細を決定し、ユーザの承認を得て、外部仕様を原則として凍結し、最終的な見積もりを算出し、納期を決定し、
ユーザの承認を得る。
尚、ユーザと行ったミーティングの議事録は保管すること。
(SEの議事録は、国会の議事録のように一言一句を記録するものではなく、決定事項を記録するものであることに注意、議事録につては、ミーティング終了後に内容の承認印をユ-ザからもらい、写しの一部をユーザに渡すこと->大プロジェクトにて、後で裁判沙汰になった時に重要な資料になる)
ここから、いよいよ、詳細設計に入るが、その前に詳細な開発スケジュールを立てる。
ユーザによっては、進捗状況を気にする場合もあるので、定例ミーティングのタイミングも明記すべし。
また、受注S/Wなら、詳細設計の検証を行うユーザも多いので、手順や人員を決定すべし。
途中ですが、以上です。
ユーザとか、身内で何度もミーティングが必要ですが、システム設計は、頭ではなく、口で行うもんだと考えるべし(SEは口八丁手八丁であるべし)。
ミーティングに際しては、常に、
ユーザに対しては、信頼の構築。
身内に対しては、目的意識の共有を意識してください。
    • good
    • 0

そのシステムで行いたい内容をすべて完璧に把握する必要があるので、


まずは仕事を覚えるという事から始める。(これは冗談ではありません)

次に仕様書を書くことを覚える。
仕様を決めなければ開発のゴールは見えない。

そして自身で今何ができるのかを把握する。
C言語が得意なら、C言語だけで作っても良いし、
JAVAが得意なら、WEBサイトモドキのローカルページを作っても良い。
自身でできることの把握は必要だ。

また、自身の能力が十分なら一人でできるだろうが、能力が不足しているなら身近な人に対して協力者・アドバイザーを募ろう。
こんなQ&Aサイトを頼らなくても良いようにだ。

・・・
技術的なことは既にあるシステムを参考にすることで何とでもなる。
いろいろなシステムを見て理解して応用すればよい。
(これが凄く面倒なんだけど、難しいことではないと信じて行おう)


・・・余談・・・
個人的な勤怠管理くらいなら自分はExcelで作ってしまうかな。(余裕)
規模が大きくなったらAccsessと連携して動作するように修正する。(関連部署と仕様のすり合わせが必要。すでに個人の域を超えている)
グローバルなシステムにする必要があるなら、仕様書を詳細に作り直して外部業者に委託することを考える。(これは今の自分の能力を超えているので専門家へ依頼するのが正解)
    • good
    • 2
この回答へのお礼

”仕事を覚える”から始めるというアドバイスがとても分かりやすかったです。実際に仕事の手順を洗出して行くことから始めようと思います!ありがとうございました。

お礼日時:2017/04/20 06:08

一般的には、要件定義、基本設計、詳細設計(外部設計、内部設計)、開発・構築、試験(単体試験、結合試験、障害試験、場合によってはセキュリティ監査など)、導入(新規導入の場合もあれば、既存システムから移行する場合もある)という流れです。

やりたいことの規模によりまちまちですが、小規模のインターネットプロバイダのとある一つのサービス(例えばメールシステムとか)を更改する場合でだいたい1年程度の時間を要します。このうち、要件定義と設計で大体半分ぐらいの期間をかけます。

素人考えではどうしても機能ばかりに目が行くのですが、要件定義、基本設計の段階では、性能や運用保守性、多少の障害でも使い続けられるような可用性などといった非機能部分も十分考えなくてはいけません。たとえば10名の従業員の勤怠管理をするのに最適なシステムを作ったが、11人目が入ってきたと単にソフトウェアを大きく修正しなくてはいけないなんてことだと困るでしょうし、タイムカードを押して打刻している間に停電したらこれまでに記録したデータを全部クリアしないとシステムを復旧させられないなんてことだと本当に困るでしょう。そういうことをちゃんと考慮するために、設計にはものすごく時間をかけるのです。

あと、「システム」という言葉はよく誤解されているのですが、システムとは「系統」という意味で、複数のものをつなぎ合わせるという意味合いがあります。「勤怠管理システム」という以上は、タイムカードなどの出退勤情報入力と、出退勤などのデータを蓄積するサーバ、給与計算をするソフトウェアなどと連携することを想定されていると思います。これをゼロから開発する(出来合いのものを利用しない前提)となると、まともな業者に委託すると数百万~数千万円かかると思いますよ。ちゃんとしたものを作ろうと思うと意外と大変なんです。
    • good
    • 1

そうですね、通常の開発案件では、


最初にどんなものを作るかを明確にする必要があります。
これを「要件定義」と言います。(もっと手前で要求定義から入ることもあります)

これがないと正解が分からないので設計することが出来ません。
要件定義自体が難しすぎて出来ないのなら、お絵かきしてみましょう。
どんな画面で、どのボタンを押したらどうなるのか、全て書き出してみてください。

で、その次に「どうすればこれが実現できるか」を考えます。
仮にも勤怠システムを作ろう、なんて思うぐらいですから、
少しは経験があるのでしょう?
そこから設計(基本設計、外部設計、内部設計)、開発、テスト(単体、結合、総合、受け入れ=ユーザー)と移っていくわけです。

全く分からない、という場合には、一旦勤怠システムの件は忘れて、
業務で必要なら外注するかパッケージで間に合わせてください。

自力で何とかしたいのであれば、まずはそれっぽいサンプル教材を自分で組んでみることから始めましょう。
いくつもこなしていれば、そのうち「あれとこれを組み合わせればこういうシステムになるな」と考えられるようになります。その時に再度チャレンジです。
あるいは運良く勤怠システムのサンプル教材が見つかればそれでも良いですけどね。
    • good
    • 0
この回答へのお礼

要件定義が非常に重要だということが分かりました。
回答ありがとうございました。

お礼日時:2017/04/20 06:24

全く「ゼロ」からのシステム開発は、はっきり言って無理です。


開発環境(ハード・ソフト)及び実行環境に関する知識と、開発しようとしている
業務に関しての知識(または、理解するのに必要な地頭)は、最低限必要です。

まず一人でできる範囲の例として「勤怠管理システム」を上げていますが、それ
だけでは、どれ程の作業量が必要になるかは、解りません。

システム開発をする時に最初にしなければいけない事は、何をどこまでやるかを
具体化する事です。
同じ「旅行に行く」でも「豪華客船で世界一周旅行」と「近くの温泉に一泊旅行」
というのでは、費用や期間も準備に必要な手間暇も、大きく違うのと同じです。
大まかな目的や予算・期日が決まったら、できる(できそうな)事とできない事を
判断して、目的を満たす条件が整うまで調整します。
開発経験が豊富な場合には、その判断が早く正確にできますが、経験が無い場合
は一つ一つの作業が試行錯誤の繰り返しになるでしょう。
#その辺りは、システム開発も、旅行プランを決めるのも同様。
    • good
    • 0

最初はもちろん仕様策定。



質問者さんは本当にド初心者の方なんだと思うんですが、外注した方が賢明ですよ。
勤怠管理システム、一人で品質の保証されたものを作れるとは到底思えません。
成果物が玩具レベルでいいなら別ですけど、バグがあってちゃんと勤務時間反映されてませんでしたとか笑えないですよ…
想定外でした。で済まされるなら止めませんけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!