派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

開発や設計ってどんな仕事?

「ITの現場に入る前に知っておきたいこと」として、ITに関するお仕事の前提知識や、開発の流れ、エンジニアが使っている用語やツールなどを、やさしく解説する本連載。前回はIT業界にある会社やそこでの働き方などについて、ざっくりと解説しました。一言で「IT業界」といっても、非常に幅広い仕事があることがわかっていただけたでしょうか。

今回は、IT業界の中でも一般の人に想像しやすい「開発」や「設計」といった仕事について、どのような技術を使っているのか、どんな知識が必要なのが、ふたばさんと一緒にみていきましょう。

前回のお話はこちらから

INDEX ―開発や設計ってどんな仕事?編
  • 開発ではどんなプログラミング言語を使うの?
  • 設計ではなにをしているの?設計の2ステップ
  • 開発はどんなツールを使うの?
  • プログラマーとSEの違いは?
  • 知っておきたいIT用語〜今回のまとめ

開発ではどんなプログラミング言語を使うの?

システム開発というと、プログラミングをイメージする人は多いでしょう。黒い画面に対して、プログラミング言語と呼ばれる専用の言語を使って、暗号のような難しい言葉を入力している姿を想像する人もいらっしゃるかもしれません。

ますい先生:
ふたばさん、プログラミング言語っていくつくらいあると思いますか?
ふたばさん:
えっ?「プログラミング言語」という言語が1つあるんじゃないんですか?
ますい先生:
「プログラミング言語」という言語があるのではなく、人間がコンピューターに指示する言語を総称したものです。

よく使われるものだけで20種類くらい、一般的に知られているものでも100種類くらいあります。その他、個人が趣味で開発しているものや、大学の授業などでプログラミング言語の研究に使われるものなどを含めると、数千種類あるとも言われています。

ふたばさん:
そんなにたくさんあるんですね!もしかして、全部学ばないといけないんですか?
ますい先生:
そんなことはありません。作りたいものが決まれば、ある程度絞られます。

プログラミング言語は作りたいプログラムに合わせて選ぶことが基本です。Webアプリを作るとき、スマホアプリを作るとき、デスクトップアプリを作るときなど、それぞれ向いている言語が違うのです。

たとえば、WebアプリであればPHPやRuby、Java、JavaScriptといったプログラミング言語がよく使われます。また、スマホアプリであればSwiftやKotlinなどがよく使われます。デスクトップアプリであればC#、データ分析であればPythonやR言語などが挙げられます。

企業でのシステム開発であれば、作るものが決まっているので、ある程度は絞り込まれています。その中から、得意な人が多い言語などが選ばれます。

ふたばさん:
特に作りたいものがなければどうやって選ぶんでしょう?
ますい先生:
プログラミングの考え方を学びたいだけであれば、とりあえずなんでもいいので1つ試してみましょう。流行の言語でもいいですし、近くに教えてくれる人がいる言語でも構いません。

設計ではなにをするの?設計の2ステップ

プログラミング言語を学べばプログラムを作れると考えるかもしれません。しかし、前回解説したように、プログラミング言語での実装の工程の前には「設計」の工程がありました。そして、この設計の工程は「基本設計」と「詳細設計」に分かれていました。これらの違いについて考えてみましょう。

 

ふたばさん:
設計では最終的に「設計書」という文書を作る、ということでしたよね?
ますい先生:
そうです。どんな文書を作るのかを考えると、これらの工程の違いがわかりますよ。

基本設計と詳細設計という言葉から、基本設計の方がざっくりした内容で、詳細設計の方が細かい内容だと想像する人は多いでしょう。実際、これは事実ではありますが、もう少し違う視点から考えます。

基本設計と詳細設計を「外部設計」と「内部設計」と呼ぶこともあります。つまり、システムの外側を設計するのか、内側を設計するのか、という違いです。
外側とは、画面や帳票など利用者がシステムを使うときに目にする部分、内側とはデータベースやファイルの構成など利用者が目にしない部分だと考えるとよいでしょう。

これらに分けて、設計書を作成します。

ふたばさん:
見た目と内面、という感じですか?
ますい先生:
そうです。見た目は直感的に把握でき、誰の目にもわかりやすいですよね。
外部設計(基本設計)
画面や帳票のほか、処理の流れなどを設計するため、システムに詳しくない人にもわかりやすいものします。発注者から請けた仕事であれば、外部設計書は発注者も理解できるように作ることが一般的です。
 
内部設計(詳細設計)
データベースやファイルの構成のほか、プログラムの分割などを設計するため、プログラマー以外の人が理解する必要はありません。したがって、作成した内部設計書はプログラマーなどの開発者が理解できれば十分です。
ふたばさん:
Webアプリの開発でもこのような設計書を作るんでしょうか?
ますい先生:
そうですね。きちんとした設計書を作成しておくと、複数の開発者でも認識を一致できます。

システム開発の現場では「昨日の自分は他人」という言葉がよく使われます。自分が昨日に書いたソースコードが、翌日になると自分でもよくわからない、という状況を指す言葉です。設計書を書いておかないと、どんなシステムをどこまで作ったのかわからなくなってしまうかもしれません。

実際にコードを書いていく。どんなツールを使うの?

設計書ができあがると、あとは実装するだけです。このとき、実装とはプログラミング言語を使ってソースコードを書く工程を指します。このソースコードを作成するとき、できるだけ効率よく作業をすることを考えます。

このためには、便利なソフトウェアを組み合わせた「開発環境」を整備します。

ふたばさん:
何か有料のソフトウェアが必要なのでしょうか?
ますい先生:
もちろん、有料のソフトウェアを購入して導入する方法もありますが、無料のソフトウェアでも十分です。

ソフトウェアを開発するとき、手軽なのが「IDE(統合開発環境)」を導入する方法です。これは、ソースコードを入力するエディタなど、実行に必要なものがすべて揃ったものです。

デスクトップアプリの開発であればMicrosoft Visual Studio、スマホアプリの開発であれば、iOSアプリの開発に使われるXcode、Androidアプリの開発に使われるAndroid Studioなどがあります。IDEを使うと、ソースコードを入力する段階から、コンパイルやリンクなどの「ビルド」と呼ばれる処理まで一貫して1つの環境で作業できます。

一方、PHPやRubyといった言語を使ったWebアプリの開発では、コンパイルやリンクなどの作業が不要で、ソースコードを記述するだけです。このため、ソースコードを入力する「テキストエディタ」と呼ばれるソフトウェアが使われます。たとえばVisual Studio Code(VS Code)やEmacs、Vimなどが代表的です。

ふたばさん:
IDEですべてできるなら、テキストエディタは使わなくてもいいのではないでしょうか?
ますい先生:
IDEは機能がたくさん用意されていて便利なんですが、動作が重くなるので、軽量なテキストエディタが使われることも多いです。

Webアプリの場合は、テキストエディタに加えて実行環境を用意しなければなりません。たとえば、Webサーバーやデータベースサーバーなどが挙げられます。これらは一般的にLinux上で動くことが多いため、WindowsやmacOSとは異なる環境が必要です。

ただし、新たなハードウェアを用意するのではなく、仮想的な環境を使うことが一般的です。仮想的な環境として、VMwareやWindows Virtual PCなどの仮想マシンが用意されることもありますが、最近ではDocker(ドッカー)などを使うことが一般的です。

ふたばさん:
Dockerはどういう仕組みなんですか?
ますい先生:
Dockerはコンテナ型と呼ばれる仮想環境で、仮想マシンよりも軽量で動作し、設定をテキストファイルとして記述できることが特徴です。

Dockerを使うと、設定ファイルだけで環境を統一できるため、チームで開発を進めるときや、1人で複数台の環境で開発を進めるときも確実です。また、本番環境などとまったく同じ構成を手軽に実現できるため、多くのWebアプリ開発で使われています。

Dockerについて詳しくは他の記事を参考にしてください。

Dockerゆる入門(全3回)

プログラマーとSEの違いは?

プログラムを作る人はプログラマーですが、それ以外にもシステム開発には多くの職種の人が参加しています。たとえば、SE(システムエンジニア)やPM(プロジェクトマネージャ)などがいます。

ふたばさん:
プログラマーとSEは違うんですか?
ますい先生:
会社によって役割は違い、プログラマーとSEの線引きは明確ではありませんが、一般的にはプログラマーとして経験を積んだ人がSEとして働くことが多く、担当する範囲の違いが大きいです。

SEは要件定義から設計、品質管理などを含めてシステム開発の幅広い工程を担当する人を指すことが多く、プログラムを作成するだけでなく、設計書などの文書を作成する時間が長くなります。当然、顧客とのコミュニケーションや開発チーム内での調整が必要で、豊富な業務知識も求められます。

ふたばさん:
なるほど。プログラミングの知識に加えて、さまざまな経験が必要なんですね。
次回は、運用や保守、インフラ構築などにおける具体的な部署ごとや職種ごとの違いについて詳しく解説していきます。お楽しみに!

知っておきたいIT用語〜 今回のまとめ

■プログラミング言語
よく使われるものだけで20種類、一般的に知られているものでも100種類くらいある。
WebアプリにはPHP、Ruby、Java、JavaScript。スマホアプリにはSwiftやKotlin。デスクトップアプリにはC#、データ分析にはPythonやR言語などがよく使われる。
 
■基本設計(外部設計)と詳細設計(内部設計)
基本設計は画面や帳票など利用者がシステムを使うときに目にする部分、詳細設計はデータベースやファイルの構成など利用者が目にしない部分。
 
■IDE(統合開発環境)
ソースコードを入力する段階から、コンパイルやリンクなどの処理まで一貫して1つの環境で作業できる。Microsoft Visual Studio、Xcode、Android Studioなど。
 
■テキストエディタ
ソースコードを入力するソフトウェア。Visual Studio Code(VS Code)やEmacs、Vimなど。
 
■Docker
Dockerはコンテナ型の仮想環境。仮想マシンよりも軽量で動作し、設定をテキストファイルとして記述できる。多くのWebアプリ開発で使われている。
 
■システムエンジニア(SE)
要件定義から設計、品質管理などを含めてシステム開発の幅広い工程を担当する人を指すことが多い。設計書などの文書作成や、顧客とのコミュニケーション、開発チーム内での調整をするため、豊富な業務知識が求められる。
 
【筆者】増井 敏克さん
増井技術士事務所代表。技術士(情報工学部門)。情報処理技術者試験にも多数合格。ビジネス数学検定1級。「ビジネス」×「数学」×「IT」を組み合わせ、コンピューターを「正しく」「効率よく」使うためのスキルアップ支援や、各種ソフトウェアの開発、データ分析などを行う。著書に『Pythonではじめるアルゴリズム入門』『図解まるわかり プログラミングのしくみ』『「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック』(翔泳社)、最新刊の『実務で役立つ ログの教科書』(翔泳社)がある。

※本記事に記載されている会社名、製品名はそれぞれ各社の商標および登録商標です。
※本稿に記載されている情報は2025年10月時点のものです。

リクルートスタッフィング