仕事を受けてみたいけど、不安で一歩踏み出せない…
上記にお悩みの方向けの記事を書いていきます。
システムを作成する上でいくつか工程があり、ほとんどの開発が各種工程のプロセスを踏んで最終的に本番稼働していきます。
とりあえず、プログラミングの勉強をはじめました!最近流行っているのでやってみました!って方も少なからずおられるでしょう。
おそらく、その先にはフリーランスとして稼ぎたい!その業界に転職したいと思われている方も多いかと思います。
そういった方々の参考になれればと思います。
システム開発の作業の流れ
システムの開発手法で有名なのは以下になります。
・アジャイル開発:機能単位で開発工程を小さいサイクルで繰り返し行っていく方法
案件によりますが、だいたいウォーターフォール型がほとんどですので、ウォーターフォール型について書いていきます。
ウォーターフォール型とは簡単に言うと各種工程を順番に行っていく手法です。
会社によって呼び方が違う場合がありますが、各種工程は以下になります。
②基本設計(外部設計)
③詳細設計(内部設計)
④製造(プログラミング)
⑤単体テスト
⑥結合テスト
⑦総合テスト
顧客よりヒアリングして、顧客の要望や要求をもとに具体的にどういったシステムを作るのかを決める。
システムを作る上でどういった機能が必要か、どういったデータを保持する必要があるかなどのシステムの土台を決める
基本設計で決めた内容を具体的にどう実現するかを決める。
処理フローなど、システムの詳細部分を決める。
詳細設計をもとにプログラミングを行う。
作成したプログラムが詳細設計どおりになっているか確認する。
※PCL(プログラムチェックリスト)を作成して、テストを実施する。
基本設計通りにシステムが出来上がっているかを確認する。
主に機能間の試験を実施する。
要件定義で決めた内容が満たされているか確認する。
上記、いろいろと書きましたがもっと簡単に書くと以下になります。
分かりやすく料理で例えると、以下みたいな感じです。
上記のように物作りを始める際には設計書を作成する作業があります。
はじめに基本的なことを設計して、その後に具体的な内容を設計してようやく製造になります。
なので、物を作り始めるまでにそれなりに時間がかかります。
プログラマーがするお仕事
簡単に仕事の流れを書きました。
経験が浅いプログラマーは、基本的には製造と単体テストが主な仕事になるかと思います。
具体的に書くと、以下の内容です。
②設計書をもとにプログラムチェックリストを作成する
③作成したプログラムチェックリストをもとにテストを実施する
④不具合があれば修正する
そこで不安になるのがどういった設計書が渡されるのだろう…と思われている方もおられるかと思うので、簡単に説明していきます。
結論から言うと会社や案件によって設計書の内容(フォーマット)はそれぞれ違います。
一例として記載しますので参考程度に見ていただけたらと思います。
WEBアプリケーションを例に書きます。
おおよそ以下の設計書が出来上がっていることが多いです。
※場合によってはないこともありますが。。。
・インターフェース設計書
・画面設計書
・処理フロー(API仕様書)
最低限、画面設計書もしくは処理フローがないと製造ができないので、これらはあるかと思います。もしくは似たような資料があるはずです。
順に書いていきます。
まず、画面設計書ですが概ね以下の内容が書かれています。
手書きやもしくはエクセルなどで画面の見た目がどういったものかが表現されています。
この見た目をもとにHTMLでWEBページを作成する形です。
各配置されたオブジェクトの仕様が書かれています。
レイアウトイメージでテキストボックスやボタンの配置が定義され、
画面項目で各々の仕様が記載されています。
例えば、最大文字数は何文字まで入力可能かや、フォーカスが外れたらどういった動作するかなどです。
後は、必須の入力項目などもここで記載されます。
もしかしたら画面項目と合わせて記載されることもありますが、ボタン押下時などの挙動を記載しています。
見た目とは別のビジネスロジック部分です。
主に、サーバとの問い合わせ部分がメインになります。
上記は、フロントエンジニア向けになります。
ほんと案件によって様々なので、だいたいこういうものがもらえると思って頂けたらいいと思います。
逆に上記の情報がないと、何を作成したらいいか分からないので、もしもらえない場合や製造してて疑問点がある場合はすぐにリーダーに報告したほうがいいです。
考えても無駄に時間が過ぎていくだけですので。
バックエンドは以下の通りです。
データの取得や更新、追加、削除などを行うので、これらの処理を記載する場合に必要になります。
案件によっては細かくどういった条件で取得するかが処理フローとかで記載されていたりしますが、たまに簡単にしか書いていない場合もあるので、その場合は自分自身でデータベースの仕様書を確認してSQLを書いていくことになります。
クライアントとやり取りする上で必要になっていきます。
クライアントからどういったデータが送られてきて、サーバはどういった情報をクライアントへ返すかが記載されています。
実際の処理部分の仕様になります。基本的にはこれを見て製造していくことになるかと思います。
最後に
作業の進め方のイメージはわきましたでしょうか?
作業内容はプログラミングをするだけでないということが理解できたかと思います。
技術的な能力も確かに必要ですが、実際に仕事をしていく上では以下の要素も重要になってきます。
→内容をちゃんと理解する。分からないことを分からないままにしておかない。
・自分が作成したものに責任をもつこと
→試験を実施し品質をあげる。
上記のように品質の高い作業を行っていけば、おのずとその実績から信頼が生まれていきます。
アジャイル開発だったとしても、「設計→製造→試験」の流れは変わりないので、本記事の内容は役立つのではと考えています。
はじめは分からないことばかりですが、とりあえず行動して試行錯誤を行って、自身の経験として積み上げていきましょう!
コメント