見出し画像

書評"システム開発のセオリー4部作"はエンジニアの基礎が詰まっている

#PR

「システム開発」という大きすぎる主語

一般的なイメージだが「IT業界=システム開発」という、漠然とした印象を持たれがちである。
もちろんIT業界で働く立場なら、もっと細かい分類があると理解しているが、それほど「システム開発」という単語は広い意味を持っている。
これは「システムエンジニア」が和製英語であり業務内容は不明瞭になりやすいのに対して、外国では「Software Developer」などより明確かつ狭義の職種名で細分化される点からも伺える。
さらに特定顧客向けに長期間に渡り専用システムを1から開発するため、要件定義、設計、開発、テスト、運用などを一手に担う「SIer」がIT企業の中心を占めている。
メディアにおける「IT業界」は「おしゃれなオフィス」「AI」「スタートアップ」のような華やかなイメージだが、実際に多くのエンジニアが従事する「SIer」は社会を支える基幹システムなどに関わっており、「システム開発」は縁の下の力持ちのような存在だろう。

そんなシステム開発の仕事における、「セオリー」として4冊の本が出版されている。

・エンタープライズアーキテクチャのセオリー
・システム設計のセオリーⅡ
・ソフトウェアテストのセオリー
・運用設計のセオリー

どれも2023年の出版なので、現在のシステム開発におけるトレンドが反映されている。具体的にはエンタープライズアーキテクチャの「DX(デジタル・トランスフォーメーション」、システム設計の「クラウドベースによる開発」、ソフトウェアテストの「CI/CDにおけるDevOps」、運用設計の「セキュリティ」などに説明が割かれている。
本書はSIerとして長年に渡って実績を積み重ねてきた企業と人材によって執筆されており、ノウハウを詰め込んだ内容となっている。
実際に4冊を合計したページ数は1,660ページとなり、技術書としても相当にぶ厚い本である。
まさにシステム開発に必要な要素が十分すぎるほど詰め込まれており、4冊読めばシステム開発を一通り把握できる内容と言えるだろう。

対象読者

まずはIT企業において「SIer」と呼ばれる受託開発企業に務めるエンジニア全般が挙げられる。
上流工程を担当するコンサルタント、チーム運営やプロジェクト管理を担うプロジェクトマネージャー(プロジェクトリーダー)、設計担当のシステムエンジニア、開発・製造のプログラマー、ネットワークやクラウドなどのインフラエンジニア、テスト工程のQAエンジニア、運用・保守担当者など多岐にわたる。
職種名だけでは明確に定義できないものの、業務が多岐に渡るためご了承いただきたい。

本書は基本から実務に必要な応用まで一通り解説されており、新人や経験の浅い中途採用者はもちろん、一定の経験を積んだエンジニアでも読む価値は大きい。
どうしても実務で経験できることは、担当する業務や所属する組織に依存するため偏りがでてしまう。
本書のような幅広く網羅された書籍から抜けや漏れを把握して、自分に足りない部分を補うと良いだろう。

さらに、ITを利用する企業における情報システム部門においても、必読と言える
まだまだ社内の情報システムを「外注任せ」「コストが高いお荷物部門」と捉える風潮は残っている。
こうした意識を切り替えて自社に最適な情報システムを構築するには、CIO(チーフ・インフォメーション・オフィサー)のような指揮を取る人材が求必要だ。
そこで本書のシステム設計やEA(エンタープライズ・アーキテクチャ)の知見、開発から平時の運用保守に至る作業を把握するとが、大いに役立つだろう。

著者の紹介

大手SIerとして、BIPROGY(旧:日本ユニシス)や野村総合研究所、メーカー系として日立製作所に加えて、起業独立したエンジニア、下請けプログラマー出身、ユーザー企業の情報システム部門を長年に渡って経験したベテランなど幅広い。
総じて言えることはシステム開発の現場に長年携わってきた立場である。
実際の開発現場で起きる問題や、現場で抱える課題を把握しており、高い解像度でノウハウを言語化できる執筆者である。
また、今回紹介する4冊中3冊は共著だが、共著にありがちな「内容が重複する」「執筆者毎に文体が違うので読みにくい」などの不満がない
これは本の全体を監修する立場にある編集者が内容を把握しており、うまく執筆内容を調整したおかげだろう。
本の内容だけでなく「読みやすさ」という観点でも、安心して推薦できる。

どの本をどの順番で読むか?

それぞれ「システムアーキテクチャ」「システム設計」「テスト」「運用保守」に分かれており、担当する業務や関心のある分野から読むと良いだろう。
一方でシステム開発は分業化されているが、各工程が密接に関係している。
アーキテクチャや設計の不備は開発に悪影響を及ぼし、開発の問題はテストや運用保守にも関わる。
広い意味でのシステム開発を理解するべく、4冊すべて読破すれば全体像が見えてくるだろう
特に大規模な開発プロジェクトでは、一部のみ担当して自分の役割がわからずにモチベーションの低下や、想定できない失敗を招いてしまう。
他工程を手軽に把握できるのも、本書のメリットだろう。

以下より、各書籍を紹介したい。

エンタープライズアーキテクチャのセオリー

システム開発としては最上流にあたるエンタープライズアーキテクチャについて解説している。前著の「ITアーキテクチャのセオリー」から昨今のDX(デジタル・トランスフォーメーション)まで、最新の情勢も反映されている。
特にDA(データベースアーキテクチャ)とAA(アプリケーションアーキテクチャ)における解説に注力しており、これは大規模化・複雑化する企業の基幹システムにおいて、データとアプリの構造を把握することが難しくなった事が要因だろう。
このようなエンタープライズアーキテクチャは、参考となる資料や書籍も限られており、学ぶことが難しい
著者は現場の経験とIT協会での受賞経験を持つ稀有な立場であり、「現場と理論」における両方の知見をうまく言語化している。
また、旧来の基幹システムでは、既存の環境を維持しつつ新たな機能や環境の移行が求められる。
例としてクラウドへの移行や、IoTやAIやメタデータへの対応といった場面が考えられるが、新旧のアーキテクチャを併存させつつ実用的な環境に仕上げるためのヒントが掲載されている。
特に基幹システムは「長年増改築を繰り返したいびつな建物」と揶揄されるほど、仕様変更を繰り返した結果として複雑な構造となっている。
その構造をうまく読み取ったり、翻訳するための辞書のような扱いとして、本書の助けを借りると良いだろう。
近い将来に発生するエンタープライズアーキテクチャの移行計画や、これからの時代に求められる情報システム部門や人材についても言及されており、長年のキャリアを積んだ著者が、後任への羅針盤を示すような形で締めているのが印象的である。

システム設計のセオリーⅡ

前著の「システム開発のセオリー」からの続編として、クラウドを前提とした業務システムの設計について、解説している。
要件定義やデータ及びプロセスの設計、CRUDマトリクスなど、内部処理に関する設計に加えて、ユーザーが直接関わる機能やUI、ユーザビリティの設計にも言及している。
クラウドを前提としたアップデートされた内容だけでなく、設計において必要となる基本的な業務を抜け漏れなく把握できる構成になっている。
前述の「エンタープライズアーキテクチャのセオリー」と重なる部分は少なく、利用者と開発者側に沿った設計のノウハウについて狭く深く言及する構成となっている。
マイクロサービス、モバイル、ドメイン駆動設計など昨今の開発事情やクラウドを前提とした内容に加えて、アジャイル開発やノーコード・ローコードについても1章を割いて説明している。
旧来のウォーターフォール型の開発体制からの転換を進める場合にも、本書が役に立つだろう。
執筆者は同じ会社の社員で共著する他の本と異なり、立場の異なる3名という体制だが、うまく整合性が取れており違和感なく読めるのもありがたい。

ソフトウェアテストのセオリー

システム開発におけるテスト工程は、自己流だったり、現場や会社ごとに異なるといった点が指摘される。
さらに開発スケジュールのしわ寄せで後回しになったり、開発チーム内でも立場や待遇が悪いといった問題が散見される。
しかしテストは重要であり、ソフトウェアの品質保証が後々の保守運用や会社の信頼などに影響するのは言うまでもない。
本書はテスト業務が初めての人はもちろん、経験者でも自分が身につけていない知見を確認するという意味でも役に立つ
さらに研修用テキストとして利用したり、よく使われる単語だが用語や使い方が微妙に異なる表現について、本書の記述を基準とする使い方もできる。
開発チーム内の認識を合わせるために、全員で本書の内容を把握しておくのも良いだろう
内容はテスト設計の解説を中心に、具体的な事例を交えながら実際に行われたテストをモデルとした解説もある。
テストにおける各種技法、ソフトウェアの要求や仕様に基づいたテストに加えて、プログラムコードや人が持つ情報に基づくテストなど幅広く解説している。
さらに「どうやってテストを実装して実行するか?」まで掘り下げている。
テスト環境についても言及されており、チケット管理やバージョン管理といった一般的なツールの紹介に加えて、CI/CD、アジャイル、DevOps、テストの自動化など昨今の情勢も反映されているので、幅広い開発現場で役に立つだろう。
工程を管理するマネジメント側としては、テスト計画におけるプロジェクト管理、テストにおける計測からの品質向上や制御、問題発生時の分析手法も紹介されている。
人間が行うコードレビューや第三者によるテクニカルレビューなど、テストと名のつくものは一通り解説しており、ソフトウェアテスト全般を包括する書籍と言える。
著者は日立製作所の研究開発グループにおける研究員が中心となっており、自身の経験のみならず会社として長年蓄積されたノウハウも反映されているのだろう。

運用設計のセオリー

テスト工程と同じく、運用設計の初心者から一定の経験を積んだエンジニアに対しても抜け漏れを埋められる本となっている。
管理職やベテランなら、部下や後輩へ最初に読ませる基本的な指導書という需要にも対応できる。
内容は運用設計における全体の流れから、個別の事象について事例を交えながら掘り下げていく。
この点はNRI(野村総研)において50社以上のノウハウを経験している著者4名なので、安心感がある
特に保守運用ではドキュメントの把握や管理が重要となり、計画書や仕様書やテスト項目といった、ドキュメント作成に関するアドバイスも手厚い
システム開発で用いられるV字型の手順を元に、進捗状況に応じて個別に解説しており、順を追って読める点も理解を助けてくれる。
社内で無駄なコスト扱いされがちな運用費についても解説しており、保守運用コストを維持するための説得材料としても良いだろう。
データやログの世代管理といったバックアップや、企業を狙うランサムウェアなどの対策としてのセキュリティについても1章を割いて説明する充実ぶりだ(もちろんセキュリティは奥が深いので、別途技術書を読んだり専門家を招聘するなどの対応は必要である)。
障害対応などの一般的な保守運用に加えて、データベースやアカウントの確認、ヘルプデスクやサポート体制、CI/CDやDevOpsにおける運用など、ここまで紹介した4冊同様に現在の標準とされる内容まで広く深く掘り下げている。
仕上げとして社内のIT統制や教育について補足されており、今後の保守運用を担う世代には深夜休日の対応を強要しない体制作りにも言及しており、働き方改革への配慮が伺える締めとなっている。

・まとめ:システム開発を書籍で追体験できる4部作

今回紹介した4冊はすべて2023年に発売されており、クラウド、IoT、アジャイル、DevOpsなど昨今の情勢も反映されている。
SIerにおけるウォータフォールモデルの開発は古い印象を与えがちだが、実際には常に変化と進化があり、新たな手法にも随時対応している。
その上で長年に渡って培われた知見があり、体系化された知識も求められる。
特にシステム開発では時間経過と規模拡大で複雑化するのは避けられず、永続的に管理しなければならない。
そのために「システム開発」という大きな枠組みにおいて、共通認識が必要となるので、足りない要素は取り込み、古い知識はアップデートしなければならない。
システム開発は同じプロジェクトを長期間担当したり、突如として別プロジェクトに配属されるなど、固定と流動が激しい。
こうした状況ではプロジェクトメンバー間における常識やルールとして、偏りなく一定の知見を持っていなければ戦力にならない。
その点、今回紹介した書籍4冊においては抜けや漏れがなく、開発プロジェクトに関わる様々な立場のエンジニアにとって深さや粒度が適切であり、最新の開発体制について認識をアップデートできる構成となっている。
これは未経験から途中から参加したメンバー、新たにリーダーや管理職となった異なる立場における意思統一のための教科書となるだろう。
4冊合計すると1,660ページなので非常に分厚いが、業務システムを扱うにはこれぐらい網羅的でなければ安心できないだろう。
新人向けの研修、中堅のスキル見直し、管理職やリーダーが最新の動向を知る投資として必要十分であり、時間をかけても読む価値がある。
本書は著者達が長年かけて業務を通じて習得した知見を言語化して、本にまとめられている。
その点で「コスパ(コストパフォーマンス)」「タイパ(タイムパフォーマンス)」が、非常に高いと言える。
1回読んですべて把握するのは難しくとも、定期的に読み返したり、必要に応じて辞書のように使うことで、長きに渡って役に立つだろう。

note記事が気に入ったら、Twitterアカウントをフォローしてください! Twitter : https://twitter.com/maskedanl