本文へスキップ
記事一覧

現代の IT インフラにおけるソフトウェアエンジニアリングの重要性

Ghazi Triki 著 · 1 分で読めます

ソフトウェアエンジニアリング

ソフトウェア開発プロセスについての従来の、そして間違いなく最も広く浸透している見方では、テック企業のプログラマーは設計者とはみなされず、他者の設計を実装する人と考えられています。結局のところ、プログラマーの仕事はコードを書くことです。コーディングは「建設」の作業とみなされ、建設を始める前に設計を完了させなければならないことは誰もが理解しています。

本当の設計作業は、専門のソフトウェア設計者が担います。エンジニアが設計を作成し、それをプログラマーに引き渡し、プログラマーがソフトウェアエンジニアの仕様に沿ってコードに落とし込みます。この見方に立てば、プログラマーに必要なのは、渡された設計を理解できるだけのソフトウェアアーキテクチャのスキルだけということになります。

実際の設計作業は専門のソフトウェアエンジニアが担当します。たとえば RIADVICE はソフトウェア設計のスキルを熟知しており、私たちが設計を作成し、それをプログラマーに渡して、ソフトウェア設計者の指示に沿ってコードに変換してもらいます。この場合、プログラマーには渡された設計を理解できるだけの設計スキルがあれば十分です。ソフトウェアエンジニアは、プログラマーがコードを形にする作業を容易にします。

ソフトウェア開発におけるさまざまな「現実」を一つのスペクトルとして例に挙げてみましょう。上で説明した状況は、そのスペクトルの一方の端にあたります。このような引き渡し型の状況は、大規模で複雑なプロジェクトや、伝統的なソフトウェアエンジニアリングの文化が長く根付いている企業でよく見られます。

スペクトルのもう一方の端では、エンジニアはおらず、プログラマーだけが存在し、プログラマーがシステムの設計を担います。

この二つの極の間には、ほかにも多くの現実があります。

  1. a) 純粋で伝統的な、分業型のソフトウェアエンジニアリング。プログラマーには極めて詳細な「完全な設計」が渡されます。
  2. b) ごく小規模な開発チーム。ここではプログラマーが主役です。設計者、リードプログラマー、あるいは「アーキテクト」は、これら両極の間の「中間の現実」で仕事をしています。

RIADVICE は、プロトタイピング、ソフトウェアアーキテクチャから設計、UI/UX、品質保証に至るまで、アジャイルの原則に基づくエンドツーエンドのアジャイルソフトウェアエンジニアリングサービスとして、これらすべてに対応しています。

さらに、製品開発、ソフトウェアのモダナイゼーション、エンタープライズソリューションといった追加サービスにより、テック企業がソフトウェア設計の目標を達成できるよう支援しています。

ソフトウェア設計およびエンジニアリングサービスの全容については、ソフトウェアエンジニアリングのページをご覧ください。

この記事を共有

  • 7 年から 7 日へ
    Education · 4 分で読めます

    エージェント型 AI で 7 年を 7 日に

    チームが 2 スプリントで出荷したプロジェクトに、COCOMO II のスプレッドシートが 33 か月を予測するのを見たことがあれば、問題はすでにおわかりでしょう。見積もりモデルは、もはや存在しない世界に合わせて調整されているのです。