Skip to content

Instantly share code, notes, and snippets.

@tonosaman
Last active August 9, 2024 08:25
Show Gist options
  • Save tonosaman/d68d624d68a61d59435f5b547c65782e to your computer and use it in GitHub Desktop.
Save tonosaman/d68d624d68a61d59435f5b547c65782e to your computer and use it in GitHub Desktop.
インターンシップカリキュラム
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "ed9a4d6b-31ba-4701-8af9-04e83719cd05",
"metadata": {},
"source": [
"# 冨士ベークライト社内SEインターンシップ課程\n",
"\n",
"『学生が自己のソフトウェア開発エンジニア適正を把握する、また社内SEの仕事内容を理解するために行う就業体験』を提供します。\n",
"\n",
"# Day1 要件定義とプロジェクトの立ち上げ\n",
"\n",
"- 現場の要件から真の課題を特定し、システム化を判断する演習を行います。\n",
"- システム化においては予算や保守性など様々な視点で評価を行う必要があります。\n"
]
},
{
"cell_type": "markdown",
"id": "20d79cca-8013-40cf-8210-aab7a5643e83",
"metadata": {},
"source": [
"## 1. システム化案件のプロセス\n",
"\n",
"プロセス間を行ったり来たりしながら、完成へと近づけていくイメージ。\n",
"\n",
"1. 要件定義\n",
"2. 設計\n",
"3. 実装・テスト\n",
"4. 運用・保守\n",
"\n",
"### 様々な手法\n",
"- ウォータフォールモデル\n",
"- アジャイル開発\n",
"- テスト駆動開発\n",
"- ドメイン駆動設計\n",
"\n",
"手法によってプロセスの構成や管理手法が異なるが、目的にフォーカスした手法を選択しよう。\n",
"- [ ] 多くの人員を投入して開発期間を短縮したい?\n",
"- [ ] 少数精鋭で実際に動く実装を担保に開発したい?\n",
"- [ ] 開発コストを抑えたい?\n",
"- [ ] 変化を抱擁したい?\n",
"- [ ] ビジネスモデルを実装に反映させて会社の経営と剥離しない実装にしたい?\n"
]
},
{
"cell_type": "markdown",
"id": "7465d531-c910-4ba9-9e7b-738139df9633",
"metadata": {},
"source": [
"----\n",
"\n",
"## 2. 要件定義\n",
"\n",
"営業部Aさん『注文データ(Excel)の入力がとっても大変、なんとかして』\n",
"\n",
"- 定量化: 年あたり何時間かかっているの?\n",
"- 費用対効果(*1)はとれるの?\n",
" - TCO(Total cost of Ownership,総保有コスト)はいくらかかるの?\n",
" - 初期導入費用 ... 目に見えるコスト(ハード、ソフトの購入費用,システム開発費)\n",
" - ランニングコスト ... 目に見えづらい(教育,保守,サブスクリプション費用)\n",
"\n",
"*1: 費用に対して得られる効果のことを指すビジネス用語。`1時間あたり2,000円`など時間や面積などをコストに換算しても効果として認められる\n",
"\n",
"### 演習) 『システム開発計画書』で申請してみよう\n",
"\n",
"営業部Aさんの立場で項目を埋めていこう\n",
"\n",
"| 項目 | 内容 |\n",
"|--------|------|\n",
"| 目的 | 取引先からの注文データ(Excel)に記載されているカレンダー日程形式のデータを、基幹システムへ一括取込できるようにCSV形式に変換することで、入力業務の負担を減らしたい |\n",
"| 現状の方法での問題点 | (1日x分から年あたりn時間かかっているので大変など定量的な指標を盛り込むと説得力がでる) |\n",
"| 利用者 | (多いほど効果大) |\n",
"| システム運用のルール | (システムができたら 5W1H(いつ・どこで・誰が・何を・どうやって)運用することになるのか) |\n",
"\n",
"(\"システム開発内容(改善内容)\"\"予定効果\"は基本設計の後でシステム開発側の立場で記入します)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d139a082-12c9-44a6-bc2d-8492e98ee741",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "3d0f1f5f-ee8e-4529-9797-42e8cf59c097",
"metadata": {},
"source": [
"----\n",
"\n",
"## 3. 設計(基本設計)\n",
"\n",
"- 開発計画書を元にヒアリング\n",
"- ユースケース図を書いてユーザーとイメージを共有する\n",
"- 入力データ(サンプル)を集める\n",
"- システム運用ルールの大枠を決めながら、実装に必要な**技術選定**を行う\n",
"\n",
"### 演習) 『ユースケース図』でシステムの全体像を描いてみよう\n",
"\n",
"人とシステムの境界線を明確にすることで、システム化の責任範囲を明確にしておく。→『ここから先は運用でカバー』\n",
"\n",
"- 紙に書く\n",
"- [Mermaid](https://mermaid.live/edit#pako:eNpVkL1OwzAQx1-luolKaZqvpmkGJBDwAoUFwuDGThOpiaPERpQqQ9qKlYEPwVQWJBhgBDHwNBYVvAVOo4I4ebj73-_-d_IEfIoJuDDMUBo29re9pCHjICfZxsbnzevy4fl79rglymsxvWw2627OBzXugSjn8i3nC1HeivJFTN_E9F3MzsXs3oOarqJPY7LHE59FNDkS5Z0or0R5sU7my6fF1-zjuOZJgv-OaLRam_-mQYGYZDGKsDx6UoEesJDExANXppgEiI9YtbuQKOKM9seJDy7LOFGApxgxshMheX8MboBG-a-6iyNGszU5oggTWU2AjdPVB0U5k44-TYJoWOk8G0k5ZCzN3Xa7aqvDiIV8oPo0bucRDlHGwpOe3bYN20GGSeyuiTqmif2B3nMCw9ID3NV0A0FRKJCi5JDSeL1fltWSU3AtzVT1rmPppm1bVs_QOwqMwe2aaseotI6jaZqjG9LjbGWgqZLIKB-GtVnxAyuhrps) ... リンク先:Webブラウザ上で動作するEditor\n",
"- [PlantUML](https://www.plantuml.com/plantuml/uml/SoWkIImgAStDuSf9JIjHACbNACfCpoXHICaiIaqkoSpFuqfCBialKb1wEctRiwLhNpQlS7pSEFLnqsGbXSHYXRHaBf2onBpqd5G5fSUDBK3qh6N-uyOPZnlNFMxQ_hXfv-FcjiVD2vGKghaK54gBKvCJYy4gPpvkdFAuiH_20EbQEVz5yrwmeQ7EXborN6d92hgwTc2EGsfU2j250000)\n",
"\n",
"[![](https://mermaid.ink/img/pako:eNpVUT1PwzAQ_SvVTVRK03w1TTMggYCNqbBAGNzYbSI1cZTYiFJ1SFuxMvAhmMqCBAOMIAZ-jUUF_wInUUE9ebh79_zu2TcGn2ICLgxSlAS1g20vrsk4zEi6sfF1-7Z8fPmZPW2J_EZMr-r1qpvxXkX3QORzeZbzhcjvRP4qpu9i-iFmF2L24EHFLqJLI7LHY5-FND4W-b3Ir0V-uUrmy-fF9-zzpOKTGP-bqDUam2u3QYGIpBEKsTQ9LogesIBExANXppj0ER-yYvZEUhFntDuKfXBZyokCPMGIkZ0QSf_ROriLQ0bTFTakCBNZjYGNkvJ_woxJQZ_G_XBQ4DwdSjhgLMncZrNoq4OQBbyn-jRqZiEOUMqC047dtA3bQYZJ7LaJWqaJ_Z7ecfqGpfdxW9MNBJOJAgmKjyj98yTLYsgZuJZmqnrbsXTTti2rY-gtBUbgtk21ZRRYy9E0zdENqXFeCmiqZKSUD4KVGCmftl8tutz35Bdh0rTl?type=png)](https://mermaid.live/edit#pako:eNpVUT1PwzAQ_SvVTVRK03w1TTMggYCNqbBAGNzYbSI1cZTYiFJ1SFuxMvAhmMqCBAOMIAZ-jUUF_wInUUE9ebh79_zu2TcGn2ICLgxSlAS1g20vrsk4zEi6sfF1-7Z8fPmZPW2J_EZMr-r1qpvxXkX3QORzeZbzhcjvRP4qpu9i-iFmF2L24EHFLqJLI7LHY5-FND4W-b3Ir0V-uUrmy-fF9-zzpOKTGP-bqDUam2u3QYGIpBEKsTQ9LogesIBExANXppj0ER-yYvZEUhFntDuKfXBZyokCPMGIkZ0QSf_ROriLQ0bTFTakCBNZjYGNkvJ_woxJQZ_G_XBQ4DwdSjhgLMncZrNoq4OQBbyn-jRqZiEOUMqC047dtA3bQYZJ7LaJWqaJ_Z7ecfqGpfdxW9MNBJOJAgmKjyj98yTLYsgZuJZmqnrbsXTTti2rY-gtBUbgtk21ZRRYy9E0zdENqXFeCmiqZKSUD4KVGCmftl8tutz35Bdh0rTl)\n"
]
},
{
"cell_type": "markdown",
"id": "9f569463-a825-4edd-9a14-f2ab1e6a9117",
"metadata": {},
"source": [
"----\n",
"\n",
"## 4. 技術選定をしよう\n",
"\n",
"メリット・デメリットを挙げてみよう\n",
"(学習コストは無視して、ユーザーに負担が少なくシステムの保守が容易な仕組みを目指そう)\n",
"\n",
"- Excel VBAマクロ\n",
"- Excel アドオン\n",
"- Power Query\n",
"- Windows OS上の実行形式\n",
" - .Net Framework\n",
"- Python スクリプト\n",
"- Web アプリケーション\n",
" - クラウド\n",
" - オンプレミス\n",
"\n",
"実装が楽になるように既存の仕組みをよく調べよう(車輪の再開発は避けよう)\n",
"\n",
"### 演習) 選定した内容をユースケースに加筆してみよう\n",
"\n",
"- ユーザーは内部構造より外部の振る舞いを重視するが、これから作ろうとするシステム全体の概要を掴んでおいてもらうと良いフィードバックが得られる\n",
"- エンドユーザーも開発関係者として巻き込むための説明資料として\n"
]
},
{
"cell_type": "markdown",
"id": "a801c59d-e1cf-4d5d-9618-4f22a4b273a1",
"metadata": {},
"source": [
"----\n",
"\n",
"## 5. WBS を書いてみよう\n",
"\n",
"- WBS(Work breakdown structure)とは、プロジェクトの作業を段階的に細かなタスクに分解して工数を見積もります。\n",
"- WBSで求めた各タスクに依存関係を追加して、ガントチャートとして進捗管理に使用したりします。\n",
"\n",
"<details>\n",
" \n",
"1. データ入力\n",
" - 受注データExcelファイル読込\n",
"2. データ変換\n",
" - カレンダー日程形式の表を行形式に変換\n",
"3. データ出力\n",
" - 基幹システムへ一括入力する様式(CSVファイル)で出力\n",
"\n",
"</details>\n",
"\n",
"### 演習) ガントチャートにしてみよう\n",
"\n",
"[![](https://mermaid.ink/img/pako:eNpdkt9q2zAUxl_FCHrnOJbt2LFvl-0uV4XBhmGolhwbYivY8mgWAktCt5RcFFoItLvY6MaWsS0bDPa36x7GcZK-xWQ7TcuELqRzfuf7OEfqAYdiAizQQiFjdijwxXzWJkI2P88Oxsuvs-X0eTri-yId_k2Hx4sfT5eTj9nRdH15cWf3fjr4kL05XB69SAen6XCSDr-nw5_p6Fk6elWqYcTIPRoFiAnCA74qzWal0ShzaN-PN7mdoLqDy2hMHObTUFjPPq1n48Wfk6vZSZlZvx0sfn_L5mery_cWho9kUVBkRavIJt-iADcCZWEOQFFALiORsIH_c7iaTlanv247rI6_ZOej5bvJ6vOhJWAlr9oqwBuLbP5y_fqgIG48ClrdEPkM8kmMC0i5BRUyQAQB4Z37mA-_l5fYgHkkIDaw-BETFyVtZgM77HMUJYzudkMHWCxKiAiSTj7Who9aEQqA5aJ2vI3exT6j0TXZpggTfusB1u0UD-3HjCs6NHT9Vh5PojYPe4x1YqtazdNSy2desic5NKjGPvZQxLzHpl7VFb2OFJXohopqqoqdPWjWXUWDLjZkqCDQ74ugg8KHlAbX_vyam-wDS5VUo24qplGDsqZqsKaKoAssKNWgoZmmptXrak2DhsFFnhQKUIKabEAe0qEp65yPaNLytv2SotNm-YGLf9z_B9-8CzQ?type=png)](https://mermaid.live/edit#pako:eNpdkt9q2zAUxl_FCHrnOJbt2LFvl-0uV4XBhmGolhwbYivY8mgWAktCt5RcFFoItLvY6MaWsS0bDPa36x7GcZK-xWQ7TcuELqRzfuf7OEfqAYdiAizQQiFjdijwxXzWJkI2P88Oxsuvs-X0eTri-yId_k2Hx4sfT5eTj9nRdH15cWf3fjr4kL05XB69SAen6XCSDr-nw5_p6Fk6elWqYcTIPRoFiAnCA74qzWal0ShzaN-PN7mdoLqDy2hMHObTUFjPPq1n48Wfk6vZSZlZvx0sfn_L5mery_cWho9kUVBkRavIJt-iADcCZWEOQFFALiORsIH_c7iaTlanv247rI6_ZOej5bvJ6vOhJWAlr9oqwBuLbP5y_fqgIG48ClrdEPkM8kmMC0i5BRUyQAQB4Z37mA-_l5fYgHkkIDaw-BETFyVtZgM77HMUJYzudkMHWCxKiAiSTj7Who9aEQqA5aJ2vI3exT6j0TXZpggTfusB1u0UD-3HjCs6NHT9Vh5PojYPe4x1YqtazdNSy2desic5NKjGPvZQxLzHpl7VFb2OFJXohopqqoqdPWjWXUWDLjZkqCDQ74ugg8KHlAbX_vyam-wDS5VUo24qplGDsqZqsKaKoAssKNWgoZmmptXrak2DhsFFnhQKUIKabEAe0qEp65yPaNLytv2SotNm-YGLf9z_B9-8CzQ)\n",
"\n",
"----\n",
"\n",
"## 6. 工数を算出してみよう\n",
"\n",
"WBS で書き出したタスク毎に大体どれくらい時間がかかりそうか記入してみよう。\n",
"\n",
"----\n",
"\n",
"## 7. \"システム開発内容(改善内容)\"\"予定効果\"を『システム開発計画書』に記入してみよう\n",
"\n",
"基本設計で決めた内容を振り返ってみて、システムを作る価値があるか検討してみよう。\n",
"\n",
"$導入効果= 予定効果 - 開発工数(初年度のみ)$"
]
},
{
"cell_type": "markdown",
"id": "c3ff758e-3c2a-432f-95d6-bd30f837131c",
"metadata": {},
"source": [
"の開発を体験できます。"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment