複合機やプロジェクタをはじめ、様々なシステムの設計開発を手掛けるリコーITソリューションズ株式会社様のエンジニアを対象に、ドメイン駆動設計(DDD)の考え方やスキルを身につけるための実践的な研修を提供しました。今回は、研修に参加した山根洋平さんと柳宜秀さんにインタビュー形式でお話をお伺いし、研修で得た学びや感想についてお聞きしました。
はい、よろしくお願いします。
山根さん
もともと父が技術系の仕事をしていて、組み込みのエンジニアになりたいと思っていました。そこで学生時代はロボットの開発などをやり、組み込みができるということでリコーITソリューションズに入社したのですが、気づいたらアプリケーション開発の道を進んでいました(笑)
以前は文書管理ソフトの開発チームでアーキテクトとしてシステム全体の設計方針を組み立てていました。そちらのプロジェクトが一段落付き、今は医療用システムのソフトウェア開発を担当しています。
柳さん
私はもともと組み込みシステムのソフトウェアを作っていて、以前はMFP※の操作パネルのUI実装をしていました。10年間ほどそのような仕事をしてきたのですが、そろそろ違うことがやりたいと考えて希望を出していたところ、山根さんと同じ医療用システムの開発プロジェクトに参加することになりました。
山根さん
リコーITソリューションズ(RITS)はリコーグループの中でもソフトウェアの設計開発に特化した機能を持っています。RITSでプロフェッショナルとしてやっていく中で、だんだんと「ちゃんと設計ができるようになったな」と思いはじめてきたのですが、本当に出来るようになっているのか客観的な評価を受けたいと思っていました。また、今後はどの方向にどのように成長していくべきなのかが分からず、悩んでいました。
柳さん
会社としては主力であるMFP以外にも様々な分野における成長を目指していて、ヘルスケアなどの新規分野の拡大にも力を入れているという認識です。そのような中で、チームを超えた横のつながり、拠点間の連携、ノウハウの蓄積と活用などをもっと高めていく必要があると感じています。
自分自身としては、なんとなく設計の基本的なところはできてきたと思っているのですが、次のステップとしてモデリングなどのスキルや経験を積みたいと考えて今回の研修に参加しました。
柳さん
これまでもオブジェクト指向に関する研修やUMLを扱った研修などを受けてきたのですが、それらは形式的なところが重視されていて、自分の経験とつなげていく所が手探りになってしまっていました。
それに対して今回の研修は、実際の業務と紐付けながらレヴィさんと一緒に設計やモデリングに取り組むことができたので、学んだことをどう活用すればよいのか、どのように役立つのかということがとても分かりやすかったです。
山根さん
やはり実際の業務を題材にしているというところがとても良かったです。また、Balusがすごく良かったです。いつも使用しているツールに戻ると、モデルに紐付いたコメント入れることができなくて辛いです(笑)モデルと関連づけながらコメントを残せると本当に議論しやすいし、必要な情報を残しやすくなります。また、モデル構築の履歴を管理できるところも便利でした。
悪かった点というか、要望なのですが、もし時間があればもっと踏み込んだテクニックなどについても扱って欲しいなと思いました。DDDはかなり奥深い世界だということが分かったので、もっと勉強したいです。
山根さん
研修の中で議論していたときは理解していたつもりだったけど、実際にやってみると理解できていなかったという場面はよくあります。そのような場合でも今回の研修のおかげで「ここに軸足を置けばいいんだな」ということが分かってきたので、自分で考えながら取り組むことができています。他の人の設計をレビューしているときに「あのときのアドバイスをここに適用するとどうなるか」などともう一度咀嚼しながら考えたりもしています。
柳さん
モデリングを含めて、考え方の幅が大きく広がったなと思います。今回得られた知識や考え方を活かして、開発チームのみんなでモデル化したり責務分割などについて議論したりできるといいなと思います。レビューの時なども、そのような考え方を紐付けながら良い指摘ができるようにしたいです。
山根さん
これまでは汎用性や拡張性を保つために、特定の業務における使い勝手を犠牲にしてしまうような設計をしてきたなということに気づきました。もちろん汎用性や拡張性も大事なのですが、「そのシステムを使ってやりたい業務はこうである」という事実をモデル化しながら考えるという新しい視点を持つことができて、自分の設計レベルが1つ上がったと感じています。そのような視点を持ちながら上流設計をしっかりすれば、障害などを減らしていけるのではないかと思っています。
柳さん
今回私達はたくさんのことを学ぶことができたので、他のたくさんの人にも同じように学んで欲しいなと思いました。今回は実業務を題材にして頂いたところが肝だったのですが、それだと対象人数が限られてしまうので、ビデオ教材などの汎用的なものもつくっていただけるとうれしいです。
山根さん
チームや組織にモデリングのスキルを普及して、設計力を底上げしたりできるといいなと思います。現状ではプログラムにおけるオブジェクトの関係を表現するためにしかモデルを使っておらず、もったいないなと考えています。情報の整理という観点から、もっとモデルを活用していきたいです。
モデルを活用できると、コミュニケーションがもっとスムーズになると感じています。エンジニアに限らず、企画やビジネス側の人も使えたりするといいかもしれません。巨大なエクセルシートを渡されて「私達が使いたいのはこれです」と言われても、分からないですから(笑)
いろいろな視点を持ってソフトウェアをモデル化するというのは、とても強力で重要なスキルです。それを身につけることができるので、とても良い研修です。前にやって頂いた研修で学んだ内容も重要でしたし、今回の研修ではDDDというすごく難しい内容を実際の業務に沿ってちゃんとわかるように教えて頂いたので、ぜひ他の人たちにも両方を体験してもらいたいです。
山根さん
やっぱり「見ろ、まるで人がゴミのようだ」ですね。
柳さん
「親方、空から女の子が」のところかな。
山根さんと柳さんに参加して頂いたプログラムはオンライン教材による事前学習やBalusを活用した長期のオンジョブ研修など、レヴィでしか提供できない特徴的な形式となっています。これにより、4ヶ月間という比較的長期間ながらも日々の業務と研修によるスキルアップの両立を実現することができました。
リコーITソリューションズ様の場合と同じソフトウェア設計におけるモデリングはもちろん、電子回路設計、IoTシステムの開発、組織開発など、その他の領域のシステムデザインについても同じような形のプログラムを提供することができます。ご興味・ご関心をお持ちの方は、お気軽にお問い合わせください。