医療、通信、小売、製造など様々な分野の顧客に対してITパートナーとしてシステム開発を手掛ける株式会社GxP様に、「変化に強いシステムをどう作るか?」をテーマに業務知識をシステムに取り込むためにシステムデザインやオブジェクト指向、DDD(Domain Driven Design:ドメイン駆動設計)を体験する研修プログラムをフルリモートで提供しました。
(GxP様には以前同じプログラムをオンサイトでも提供させていただいたので、その際の写真も載せています。)
今回の研修は「保守性が高い」=「変化に強い」システムをどのように実現するか?ということをテーマにしています。
GxP様は顧客企業のITパートナーとして、顧客に寄り添いシステム開発を続けることを強みとしています。しかし、業務の変化や拡張に合わせてシステムを変化させていく中で、徐々に積み上がった技術的負債とどう付き合っていくかが大きな課題となっていました。変化に応じてその都度対処するものの、結果として業務に関するロジックがシステムの中に散逸してしまい、少しずつ変化への対応が難しくなっていくためです。
そこで、現場主導で設計手法や考え方を決めるこれまでのやり方に加えて、組織的に変化に強いシステムを作るための新たな考え方を身につけていくべく、業務を理解してシステムを設計するDDDの考え方を取り入れることを検討されていました。
今回の研修では、業務から設計、ソースコードまでが一体としてつながっている感覚を身につけていただくことを第一目標とし、業務知識を理解するためのモデリング、およびDDDをベースとしたワークショップを実施いたしました。
システム開発においては、顧客の要求をソースコードに落とすまでの間に、要件定義や詳細設計、画面プロトタイプなどの様々な「モデル」を経由することでシステムの理解を深めていきます。しかし、なぜ、なんのためにそのモデルを作るのかを理解していないと「適切に変化を捉える」ことも、「変化をシステムに取り込む」ことも難しくなってしまいます。
このパートでは、システムデザインを学ぶことで、一度に全部を捉えることが難しいシステムを、視点「ビュー」で切り取ることで様々な「モデル」として捉えることを学びます。上流設計やDDDが何を行っているのかを俯瞰的に理解することで「業務の変化」がどのようにシステムに取り込まれていくのかの全体像をイメージできるようにします。
このパートでは、視点(ビュー)を行き来しながら、システムの全体を捉えていくシステムデザインの考え方を実体験に結びつけるために、ワークショップを通じて、ユーザーの業務フローと概念の橋渡しを行い、それがどのように設計に落としこまれるのかを体感します。
オブジェクト指向設計はソフトウェア開発において普遍的な手法ですが、実践するために「どのようにオブジェクトを分けるのか?」「オブジェクトにどのような責務をもたせるのか?」という問いを常に投げかける必要があります。
このパートでは、オブジェクトの分割に対して概念モデルという足場を提供し、「察するな尋ねよ」「分けれると分かる」という基本原則をベースにして、「どのように情報を整理するのか?」「責務をどのように割り当てるか?」というオブジェクト指向設計の意味を体験していただきます。
オブジェクト指向設計を実践する上で、DDDという枠組みは非常に示唆に富んでおり、なぜこのようなフレームワークになっているかを考えながら実践することには大きな意味があると考えます。とはいえ、DDD自体をこのワークショップで完全に理解し切ることは難しいため、このパートでは全体像と基本的な考え方、自習するためのリファレンスを提供します。
今回紹介したプログラムは、システムデザインの観点から業務知識をモデリングし、それをDDDにつなげることで、変化に強いシステムについてワークショップを通じて体験していただくという構成になっています。システムデザイン領域において多数の研修・ワークショップを実施してきたレヴィの強みを活かしながら、システムデザインの全体像と業務の繋がりを体験できるプログラムを提供いたします。
フルリモートでこちらのプログラムを提供するノウハウも蓄積していっておりますので、このタイミングだからこそ攻めの研修を提供したいという場合にもご活用いただけます。
また、GxP様の場合と同じソフトウェア設計におけるモデリングはもちろん、電子回路設計、IoTシステムの開発、組織開発など、その他の領域のシステムデザインについても同じような形のプログラムを提供することができます。ご興味・ご関心をお持ちの方は、お気軽にお問い合わせください。