みなさんこんにちは。文系女子SEのほりごたつ(@horigotatsuSE)です。
![他人アイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
という疑問にこたえます!
この記事の信頼性
私は文系からSEになり、現在では開発責任者も任されている
現役のSEです。
今回は私が就活生時代にわからないなぁと思っていた内容を
過去の自分に説明する気持ちでお伝えしていけたらと思っています。
SE(システムエンジニア)の仕事内容
そもそも私が現在どんな仕事をしているのか、
ざっくり3種類に分かれます。
開発がメインであることに間違いはないのですが、
それ以外にも
・見積書を作成してお客さんと開発内容/契約金額の合意を得る
・案件で何人が何時間働いているかを確認、その人たちを働かせるお金(原価)から案件が赤字にならないよう管理する
・何月に何人いれば案件が動かせるのか(要員)の計画を立てる
などもやっています。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
開発以外にもやることはあるのよね。。
今回は多くの人が知りたいであろう
「開発」の部分(図の赤枠)を主に説明していきます!
SE(システムエンジニア)の仕事内容1.基本設計
基本設計という単語くらいはググったら出てきますが、
私が思う基本設計は
「使う人も含めて全体像を考える」ということです。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
個人的に定義するなら、の話ね!
たとえば、ショッピングサイトを思い浮かべてみてください。
普段目にするのは「サイトの画面」だけですよね。
ですが、その裏には莫大なデータがあります。
(細かい話をすると違いますが)
この莫大なデータをざっくり「データベース」と呼びます。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
購入履歴が見れたりするのもデータベースのおかげ!
ざっくり図にするとこんな感じです。
こういった
・誰が何をするシステムなのか
・裏ではどんなデータを持たせるのか
などを考えるのが「基本設計」です。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
「誰が何をする」を考えるから「使う人も含め」なんだね!
上の図にも書いてあるのですが、
この基本設計においてSE(システムエンジニア)が考えることは、
「何を表示するか」とか
「何を入力させるか」とか
「何をデータベースに登録するか」とかとか
プログラミングの知識がそこまでなくてもなんとかなるものばかりです。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
でもここで検討漏れがあると後々バグるんだよね。。
なんだ!設計はラクそうじゃん!と思うかもですが、
決してそんなことはありません。笑
では基本設計のなにが楽しくて何がツラいのか。
まとめてみるとこんな感じです。
基本設計の楽しさ・ツラさ(※一個人の感想です)
①楽しさ
→新しいものを作るワクワク感
②ツラさ
→膨大な調査量、膨大な検討、先が見えない不安、後続が待っているプレッシャー
まずはやっぱりワクワクしますよね!
これが設計工程の楽しいところです。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
ツラさにたくさん書いてあるけど。。
なんでもいいのでパスワード入力が必要なサイトをイメージしてみてください。
こんなことが起こった経験、ありませんか?
パスワードあるある
・ログインパスワードを間違えてログインできない
・ログインパスワードを忘れたので再登録した
・パスワードを数字だけで登録しようとしたら「英数字と記号含めろ」とメッセージが出てやり直し
ログインパスワードが間違ってないかチェックしたり
間違ってたら「ログインパスワードが間違ってます」とメッセージを表示したり
パスワード忘れた人のために再登録できる仕組みにしておいたり
登録するための入力内容を確認したり
・・・・etc
パスワード1つとってもシステム的に考えることが山ほどあるのが分かると思います。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
入力ミスも考慮した上での挙動を洗い出して検討するんだね!
先が見えない中でこういった莫大な検討量や調査が必要になる、
けど新しいものを作っているワクワク感もある、
これが基本設計です。
たとえば、実際に開発現場ではこんなやりとりが行われます。
![他人アイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
このような表示はできるだろうか。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
今の画面設計だと横〇文字が限界なので途中で改行されてしまいますが見にくいですかね。。?
![他人アイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
このように、使用者目線のユーザーさんと、システム目線のSEで話し合いながら「やること」を詳細化していきます。
(まあ、なかなかこんなにスムーズにいかないことが現状なのですが。。)
もちろん、システム目線ではありますが使い勝手などユーザーさんの視点に立つことは大前提です。
この通り、ある程度のシステムへの知識と、
顧客とのコミュニケーション力も問われてくるのです。
SE(システムエンジニア)の仕事内容2.詳細設計
さて、続いて詳細設計を説明していきます。
私が思う詳細設計は
「プログラミングする人への地図づくり」みたいな感じです。
先ほどの基本設計と同じ部分を
詳細設計的に考えるとこうなります。
少しプログラムっぽくなってきたのが分かるでしょうか。
先ほどのパスワードの話でいうと、
パスワード確認の流れ
Aのプログラム
・パスワード入力画面を表示
・入力されたIDとパスワードを取得してBのプログラムに渡す
Bのプログラム
・AのプログラムからIDとパスワードを受け取る
・CのプログラムにIDを渡す
Cのプログラム
・Bのプログラムから受け取ったIDを元にデータベースにアクセス
・登録済のパスワードをデータベースから取得
・取得したパスワードをBのプログラムに返却
Bのプログラム
・Aのプログラムから渡された入力値のパスワードと、Cから渡された登録済のパスワードを比較
・比較した結果をAに教える
Aのプログラム
・Bの結果が「パスワード合ってる」だったら次の画面を表示
・Bの結果が「パスワード間違ってる」だったらエラーを表示
たかがパスワード入力だけですが、
これだけいろいろな処理が裏では動くのですね。
この「それぞれのプログラムで何をするのか」というところを詰めるのが詳細設計です。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
A、B、Cそれぞれをプログラマーさんに作ってもらうための情報を組み立てる!
だから「プログラミングする人への地図づくり」なんですね。
では詳細設計のなにが楽しくて何がツラいのか。
まとめてみるとこんな感じです。
詳細設計の楽しさ・ツラさ(※一個人の感想です)
①楽しさ
→先が見えてくるスッキリ感
②ツラさ
→基本設計をした人の思いをきちんとプログラマーさんに伝えないといけないプレッシャー
基本設計は先述した通り「先が見えない」不安がつきまとうのですが、
それと比べ詳細設計は「先が見えてくる」のが楽しいところです。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
一方でプレッシャーもあるんだね。。
はじめて詳細設計した際、
プログラマーに必要な内容を落としてしまったために
![他人アイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
内容に漏れがあってはいけないんだね。。
基本設計の思いをくみ取りつつ
プログラマーさんが何の情報を求めるかを考える力が必要になる、
けど先が見えてくるスッキリ感もある、
これが詳細設計です。
SE(システムエンジニア)の仕事内容3.プログラミング
これは多くの人が想像できることでしょう。
詳細設計をもとに、プログラミングを行うんですね。
ではプログラミングのなにが楽しくて何がツラいのか。
まとめてみるとこんな感じです。
プログラミングの楽しさ・ツラさ(※一個人の感想です)
①楽しさ
→THE☆開発してる!感
②ツラさ
→バグに直結する不安、自分のスキル不足を痛感
やっぱりなんといっても「開発してる」感がありますね!
以下はちょっとしたプログラミングあるあるで、
プログラミング後には「コンパイル」という機械語に変換する作業をするのですが、
なぜかそれがうまくいかなかったり。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
ほりごたつ
と何時間も頭を捻らせていたのに、
よくよく見たら誤字っていただけ、とか。。笑
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
でもそのコンパイルできない原因にたどり着けた瞬間は気持ちいい!
一方で、既存プログラムの修正などの場合、
目の前のプログラムで何をやっているか分からなくて
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
ほりごたつ
と迷子になったり自分のスキル不足を痛感することも多いです。
プログラミングスキルがあらわになる、
けどだからこそ開発してる感もあって楽しい、
これがプログラミングです。
SE(システムエンジニア)の仕事内容4.テスト
最後にテスト。
これもだいたい想像がつきますかね。
設計書通りに動くのかを確認していく作業です。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
テストは基本的に小さい単位からやっていくよ!
先ほどのパスワード入力の話で言うと、
以下のような流れでテストが行われます。
テストの流れ
①まずはそれぞれのテスト
Aのプログラム
・パスワード入力画面が表示できるか
・入力された値を取得できるか
・パスワードOK時、NG時の表示はそれぞれ合っているか
Bのプログラム
・パスワードの判定は正しいか
Cのプログラム
・データベースにアクセスできるか
・登録済パスワードを取得できるか
②そして全部をつないだテスト
・正しいIDとパスワードを入力したら次の画面に行けるか
・間違ったパスワードを入力したらエラーメッセージ出るか
まずはプログラムごとにテストして、
つづいて全部をつないでテストする、という流れになります。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
①のプログラムごとのテストを「単体テスト」、
②のつないだテストを「結合テスト」と呼ぶよ!
ではテストのなにが楽しくて何がツラいのか。
まとめてみるとこんな感じです。
テストの楽しさ・ツラさ(※一個人の感想です)
①楽しさ
→おおお!本当に動いてるううう!!感
②ツラさ
→ちょっと飽き気味。。
やっぱりなんといっても「動いたことを確認できる」ので感動がありますね!
一方で、結合テストなどは特に
スキルがそこまでなくても(なんならSEでなくても)できる内容になってくるので
ちょっと飽きてしまったり。。笑
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
ちなみに私は入社後初めてやった仕事は結合テストだった!
そう、スキルがなくてもできるうえ、
テストしながら「今開発しているシステム」を把握してもらうこともできるので
新卒の子にはお願いしがちな工程だったりもしますね!
まとめ:SE(システムエンジニア)の仕事内容は幅広い
ここまでお伝えした通り、
スキルがないとできないものから
スキルがなくてもできるものまで
幅広くやることがあるのがSE(システムエンジニア)のお仕事。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
幅広いからこそ、文系でも未経験でも活躍できる余地がある!
それに、
若手のうちはテストやプログラミングでシステムの仕掛けを把握し、
中堅になってきたら設計など上流から考える、
のように、携わる範囲がどんどん増えていくのも
この仕事の楽しいところです。
![ほりごたつアイコン](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)
SEの現場の様子を知りたいならコチラの記事もオススメ!
文学部卒はSE(システムエンジニア)に向かない?SEになって4年経って思うこと
SE(システムエンジニア)はきつい?就労時間とメンタルが比例しない話
SE(システムエンジニア)を辞めたい理由とは?SEの退職理由3選
文系でSE(システムエンジニア)は辛い?現役文系SEが乗り越えた壁
リモートワークがIT企業なのに進まないワケ【SIer勤務の現役SE実体験】
文系のSE(システムエンジニア)が不利はウソ?現役文系SEが思う不利ではない理由
SE(システムエンジニア)の仕事内容は?文系女子SEがわかりやすく説明します
SE(システムエンジニア)に必要な能力とは!現役SEが仕事内容から解説!
文系はSE(システムエンジニア)の新人研修についていけない?研修に向けた心構え
入社前教育だけでOK?新卒SEに内定してる学生が入社前にすべきこと3選
思考力鍛えるならコチラの記事もオススメ!
![SE(システムエンジニア)の仕事内容は?文系女子SEがわかりやすく説明します](https://horigotatsu.tokyo/wp-content/themes/the-thor/img/dummy.gif)