IMARIB20160807240319_TP_V-2

あなたは、「アプリ開発をやるのに、プログラミング経験は必要か」と聞かれたらどう答えるでしょうか。人によっては、「何を当たり前のことを言っているのか。必要に決まっているではないか」と思われるかもしれません。

ところが、実のところ情報システムにおけるアプリ開発の仕事をしているのに全くプログラミングをしない人がいます。それでは、そのような人はプログラミングをしないで何の仕事をしているのでしょうか。

ここでは、アプリ開発にプログラミング経験が必須かどうかについてお話ししていきます。ここで述べる内容を理解することで、アプリ開発の仕事の全体像とプログラミング作業の位置づけについて学ぶことができます。

プログラミングは、アプリ開発の仕事の一部である

情報システムは、コンピューターやアプリの組み合わせで実現するものです。したがって、システムの構築においてアプリ開発の作業はたいへん重要な位置づけになります。それでは、アプリ開発の工程が実際のところどうなっているかについて、以下の例で見てみましょう。

  • 開発プロジェクト管理
  • 開発仕様書の作成
  • 開発仕様書レビュー
  • プログラミング
  • プログラムコードレビュー
  • テスト仕様書の作成
  • アプリ動作テスト
  • インストーラー作成
  • アプリ出荷テスト
  • 操作運用マニュアルの作成

これらが、アプリ開発における工程の一例です。システム開発会社によっては、まだまだ他の仕事も加わります。これを見ていただければわかるように、プログラミングはアプリ開発の仕事の一部にすぎないのです。

プログラミング以外の作業内容について、簡単に説明します。開発プロジェクト管理とは、一連の開発工程におけるスケジュールや予算、人的資源などリソース全般の管理を行います。

開発仕様書やテスト仕様書、操作運用マニュアルは、すべてドキュメント(文書)です。ドキュメントにプログラムを書くことはありません。

アプリの動作テストとは、アプリが期待通り動作するかどうかをテスト仕様書にしたがって検証する作業です。プログラミングの知識経験がなくてもできます。むしろプログラミングを知らない人の方が、開発者の想定外の操作を行ってくれて結果的にバグを多く見つけられるかもしれません。

インストーラーとは、アプリを実際の使用環境(パソコンなど)にインストールするためのソフトウェアのことです。インストーラー作成も、やはりプログラミングとは異なる作業です。アプリの動作に必要なファイルや設定をインストールメディアに作成するものです。アプリ出荷テストとは、インストーラーを使ってアプリがインストールできるかを検証する作業です。

このように、アプリ開発の中にはプログラミング以外の仕事が数多くあります。これらはすべて、プログラミングの知識経験がなくてもできます。すなわち、アプリ開発の仕事にはプログラミングの知識経験がなくてもできる仕事があるのです。

アプリの開発量が大きくなれば、プログラミング以外の作業にも多くの時間がかかるようになります。例えば、動作テストについてはプログラミングの20%~25%程度の時間をかけることがあります。そして、ドキュメント作成やレビューにはプログラミングと同程度の時間をかける場合もあります。こうなると、プログラミングは全開発工程の1/3くらいの分量にしかならないこともあるのです。

プログラム開発は、外注に任せることが一般的になっている

さらに近年は、システムの機能が複雑になるにつれてプログラミングへの要求事項も高まりました。プログラミングの高度化・専門化が進み、それにしたがってプログラミング作業全体を外注先(ソフトウェアハウスと言われる会社)に業務委託することが多くなっています。すなわち、プログラミングを行う外注先とのやり取りができればアプリ開発ができることになります。

プログラミングに外注を使う場合、どんな些細なプログラム修正が発生したとしても修正にかかる作業は外注先にやってもらうことになります。結果として、システム開発会社でプログラミングを行う機会がどんどん減っていきます。すなわち、「プログラミング経験がなくてもアプリ開発はできる」ということになるのです。

アプリ開発を行うために重要なスキルは、プログラミングの詳細な知識ではなく「ソフトウェア開発全般の知識や管理のスキル」です。単にプログラミング作業に詳しいだけでは、アプリ開発を行うのは難しいかもしれません。

ここまで述べたように、アプリ開発作業にはプログラミング以外の作業が多く含まれています。その結果、プログラミングの知識経験がなくてもアプリ開発の仕事はできます。プログラミング作業が専門的になるにしたがい、プログラミングは外注先に業務委託して開発担当者は開発プロジェクト管理などの作業に多くの時間をかけるようになっていることを知っておいてください。