Runner in the High

技術のことをかくこころみ

B2Bなソフトウェア開発における必読書3選

B2Bなソフトウェアの開発において業務知識なしにシステム設計をすることはほぼ不可能に近い。

これまで、業務支援系のシステム開発SIer企業たちのお家芸であったが、近年ではWeb系のベンチャー企業やスタートアップであってもこれまでSIerが担っていたようなドメイン領域で戦うことが増えている。

「会計処理」「流通管理」「在庫管理」「人事管理」あたりのドメインにまつわるシステム設計は、B2Bをやっていればいつか必ず遭遇することになる。その際にドメインに関する知識を一切持たずにまともなシステム設計をすることはたいていの場合難しい。

Web系であれなんであれ、B2Bなソフトウェアエンジニアは自分たちが取り組むドメインに関する知識を持ってシステム設計に臨む必要がある。これはデザインパターンや設計手法"以前"の話だ。

ITエンジニアのための「業務知識」がわかる本

財務会計」「販売管理」「物流・在庫管理」など、様々な企業活動の業務知識を集約した一冊。これを読むだけで、ざっくり世の中の企業が日ごろから行っている業務ドメインの活動やそれに関連する法律などを知ることができる。また、各業務ドメインを扱うエンタープライズ系システムにおいてどのような機能が必要とされるか、なども例として紹介されており非常に参考になる。

どちらかといえばこの本は業務のライフサイクルやそれに絡むプロセス、用語などを網羅した本になっている。なので、この本を読んだ上で更に自分が深めたいドメインに特化した書籍に向かうのがよい。その手掛かりをこの本は十分に提供してくれる。

データモデル大全

「データモデル大全」は上の本で学ぶような業務知識をどのようにしてデータモデルに落とし込むべきかが学べる良書。特にエンタープライズ系システムが扱うドメインをテーマとして積極的にカバーしており、具体的には「受注と出荷」「サービスと契約」「在庫」などが含まれる。

ソフトウェアエンジニアである我々は、業務知識を実際のソフトウェアに落としこむにあたってデータモデリングを必ずすることになる。データベース・ミドルウェアを使わないソフトウェアはほとんどないと言っても差し支えない。とくに、在庫管理のデータモデル設計の考え方はECサイトや在庫管理システムを作ることがなくても間違いなく学びになる。

これまでのDB設計で「残り〇〇」のようなデータをDB上の1カラムにステートソーシングで表現してきた人は間違いなく設計の観点がレベルアップするだろう。

システム設計のセオリー

システム設計のセオリー --ユーザー要求を正しく実装へつなぐ

システム設計のセオリー --ユーザー要求を正しく実装へつなぐ

  • 作者:赤 俊哉
  • 発売日: 2016/02/26
  • メディア: 単行本(ソフトカバー)

「システム設計のセオリー」はいわゆる「エンタープライズ系システム」の開発における開発プロセスにおいて、それぞれのプロセスの目的や手法、注意点などを説明している。大規模なソフトウェアの開発プロセスにおいて「どのような観点で仕様を決めるべきか」「どのようなフォーマットで仕様をドキュメントに残すべきか」などを大局的に学べる一冊。*1

アジャイル開発の登場によって、特に新興のWeb系企業でウォーターフォール開発が「時代遅れ」かのように言われがちだが、それがウォーターフォール開発を無視してよい理由にはならない。

どんなソフトウェアの開発にも必ず「要求分析」「要求定義」「外部設計」「内部設計」などのフローが暗黙的に存在しており、それぞれの役割を知って初めて自分たちの開発に特化したプロセスの取捨選択ができる。深く考えずに「ドキュメントは大事じゃないから残さなくていい」「テストはなんとなく画面を触っとけばOKだろう」などの意識でいる人ほど、改めてウォーターフォールに立ち返るべきだ。

izumisy.work

*1:この本に関してはB2Bに限ったはなしではないが、いわゆる基幹系システムの開発という文脈で取り上げてみた。