自分の仕事の位置づけを把握しよう

この春ご入社のみなさんも、そろそろ現場に配属のころかと思います。初仕事はどのようなものでしたか。

その仕事がなんであれ「システム開発」という仕事のごく一面に触れるところから始まるはずです。筆者の経験でも、「システム開発」の全貌を知るまで、自分の仕事の位置づけもわからないままハードワークに明け暮れていましたが、それはなかなか辛いことでした。

そこで、本稿ではみなさんに全体を概観し、自分の仕事の意味を理解していただきます。

様々な「システム」の種類

みなさんの多くをソフトウェア開発の仕事についたと想定していますが、ソフトウェアを含むシステムにも様々な種類があります。携帯電話などの機器に組み込まれるソフトウェア、ビジネスを担う会計や生産・販売管理といった企業システム、WindowsなどのOSもそうですし、このサイトも含むWebサイトも各種のソフトウェアによって動いています。

これらすべての根幹は同じプログラミングですが、プログラミング以外の仕事も膨大なら、扱うソフトウェアによってプログラミングの仕方も言語も変わります※1

※1 本稿では主に企業システムの開発を中心に扱います

「システム」を構成するもの

また、システムは目に見えて分かりやすいアプリケーション・プログラムだけでなく、ネットワークやハードウェア、OS、データベース・サーバやアプリケーション・サーバ、運用ツールやバックアップ・ツールなどの多くの構成要素を組み合わせて実現されています。システムという言葉がそもそも「系」の意味である所以です。

これらの構成要素すべてが奥深く、大きなシステムともなればそれぞれの専門家が求められます。大規模ネットワークを適切に設計し、ネットワーク機器を敷設・設定すること。必要充分な性能のハードウェアを、将来的な拡張性を見越して、かつ費用を最小に留めた構成で選定し、性能を最大限に発揮するようチューニングすること。巨大なデータ量を持ち、大量の入出力を処理するデータベースを構築すること。システム障害時の影響を最小限に留める運用の仕方を構想し、様々なツールを駆使して具現化、実際に運用すること。などなど、そのいずれもが、各種の製品に関する知識をはじめとした高度なスキルが求められるとともに、相互に絡み合うものなのです。

システムを開発するという仕事は、これらの構成要素のいずれかに精通することと同時に、構成要素を組み合わせたシステム全体についても知見が求められるものです。一人で全てのノウハウにまで精通するのは困難ですが、自分の仕事が他のどんな要素とどのように関わっているのか、日頃の仕事の中でも留意していくべきでしょう。