mongolyyのブログ

開発(Javascript, Typescript, React, Next.js)や開発手法(スクラム, アジャイル)、勉強したことについて色々書ければと。

顧客体験向上を目指すDX推進をするために重要だと思っていること - システム設計と事業部との関係性

はじめに

メーカーのDX推進組織でテックリードとして働いているモンゴルです。

DX推進組織は自分たちが作るシステムを小さくすることで開発と導入がしやすくなる一方、その状態を継続し続けると自分たちの目的が達成できなくなり、存在意義が見いだせなくなるかもしれないと考えるようになりました。

この想いと、どのように進めていくべきかについての自分なりの考えを残しておこうと思います。

メーカーにおけるシステムアーキテクチャとサブシステムの課題

メーカーにおいては、基幹システムが中心としてあり、顧客向けにはそれに加えてカスタマーポータルがやや中心に近いシステムとして存在すると考えています。
カスタマーポータルからのリンク先として存在する、サブシステムには次の課題があると考えています。

  • メインシステムの変更の影響を強く受ける
  • 目指す世界観は、サブシステムの範囲内になりがち

DX推進組織が目指すべきところと、それに対するアプローチ

DX推進組織が社内受託先でなく、事業部とともにDXを推進していくためには顧客体験向上のための施策の策定 & 実行に関わる必要があると考えています。

ただし、この主導権は、事業部にありがちだと感じています。なぜなら事業部は既存のサービス事業やほかのサブシステムを含めて顧客体験を把握しているという視野の広さがあり、自分たちのビジネスモデル、ビジネスの方向性、将来性、顧客の課題の把握といった視座の高さもあります。

DX推進組織にシステム設計・開発のプロがいたとしても、DX推進の最終目標がビジネスの推進であれば、この責任を持っている、視野も広く、視座も高い事業部が主導権を握るのは当然のように思います。

それでは、そのような状況下で、どのようにして事業部と対等な関係を築けるのでしょうか?

私は次のようなことをしながら、信頼関係作りと自分たちの高い視座獲得 & 広い視野獲得が重要だと考えています。

  • より高い視座の獲得
    • 顧客向けシステムとして新たに必要になったデータの蓄積の仕組みづくりとシステム設計・開発(いわば、新しい基幹システムの開発)
    • 顧客体験の起点となるカスタマーポータルを一緒に作る(より中心に近いシステム設計・開発に携わる)
  • より広い視野の獲得
    • サービス全体の体験設計を一緒に行い、そのうえでサービスの分割、連携に関する方針策定を自分たちで行い、一緒に開発していく(サブシステムの単位でチームが分かれることもあるが、互いに対話し、共通のドメインモデルを見出し、育てていく。)
  • メリットある存在になる
    • システムづくりのプロとして他社事例を引き合いに出したり、データ分析できる基盤を整える、基本的に事業部の方が何でもできる世界で、自分たちにしかできない価値はないか模索する

まとめ

DX推進組織は役割を果たすために、サブシステムの開発だけでなく、広い視野を持ち、顧客体験向上のための施策策定 & 実行に積極的に関わる必要があると思っています。

また、システム設計・開発に関してDX推進組織の方が知っていたとしても、基本的に事業部から教えていただくという立場であることを忘れず、しっかりと対話していく、ドメイン知識を明らかにしていく地道な活動が必要だと思っています。
ただし、DX推進組織としての専門的な意見を主張する場面も時には必要だと考えています。

「情報処理安全確保支援士」の合格体験記

はじめに

メーカーのコーポレート部門でテックリードをしているモンゴルです。
昨年の12月の話になりますが、「情報処理安全確保支援士」に合格したので、どう勉強したかを共有したいと思います。

どう勉強したか?

知識部分は次の本で読んで勉強しました。

第1部、第2部を時間を区切ってテンポよく読みました。
それだけでも自分が思った以上に時間を使ってしまっていたので、第3部は出題率が高い(90%以上)の分野に絞って読みました。

ある程度前提知識はついたように思ったので、午後の試験問題を解くことにしました。
解いた後の解説本としては、ネスぺでお世話になった著者の本を読んで理解を深めました。

R4の春と秋の問題を実際と同じく、午後Ⅰを2問、午後Ⅱを1問解いて、解説を読むという流れで取り組みました。
解かなかった問題も問題文と設問を読んで、解説を読んで内容はキャッチアップするようにしました。

その後は午前Ⅱ対策として、過去問道場で前回を除く3回分の過去問を一通り解きました。

www.sc-siken.com

全部合わせて、だいたい15時間くらいの勉強時間だったと思います。

試験結果は?

午前Ⅱ 92点(60点以上で合格)
午後 80点(60点以上で合格) ということで、合格でした!

※ 午前Ⅰは免除でした

おわりに

無事、一発合格できました。
午前も午後も過去問を解くことで良い勉強になりました。
情報処理安全確保支援士に必要とされる分野は広いので、最低限度の基礎が理解できた時点で過去問に切り替えて実践的な知識を習得する勉強法がよさそうだと感じました。

「単体テストの考え方/使い方」を読んだ

はじめに

メーカーのコーポレート部門でテックリードをしているmongolyyです。

最近、単体テストの設計について考えることがあり、その参考として「単体テストの考え方/使い方」を読みました。
気づきを書いていこうと思います。

気づき

単体テストの良し悪しについて、判断する軸ができた

本書では次の観点が紹介されていました。

今までなんとなく良し悪しを判断していた単体テストのテストケースについて、最初の二つの観点により具体的にどう良いか、悪いか言えるようになりました。
業務でも早速この観点をもとに話せたので、役に立つ本だと感じました。

単体テストの手法について、整理できた

本書では次の手法が紹介されていました。

  • 出力値ベース・テスト
  • 状態ベース・テスト
  • コミュニケーション・ベース・テスト

今までは、「書いたことある、見たことあるパターンだなー」となんとなくでテストを書いていましたが、言われてみるとこの三つに集約できると思いました。
また、本書の中では出力値ベーステストが、リファクタリングへの耐性を維持する、保守しやすさを維持する観点でもっとものコストが低いと書かれていて、こういったテスト、インターフェースになるといいんだなーと改めて感じました。

リファクタリングが必要な兆候と改善のアプローチを知った

「コードの複雑さ/ドメインにおける重要性」「協力者オブジェクトの数」の二軸で考えるといいと書いてありました。
これに対して、協力者オブジェクトの数を少なくする、「ドメイン・モデル/アルゴリズム」を抽出するアプローチ、コードの複雑さ/ドメインにおける重要性を少なくする「コントローラ」を抽出するアプローチの2つ手法があることが書かれていました。

個人的には次のことについて、興味深いと感じました。

  • 二軸の改善を単体でするのもいいが、両方をすることで責務が明確になって認知負荷が減りそうであること
  • コードの複雑性だけでなく、ドメインにおける重要性も軸となっていること

おわりに

当たり前から一歩踏み込んだことについて、著者の意見が入っていたのがよかったです。
例えば次のようなものです。

  • 単体テストのテストメソッド名の話
  • AAAパターンの区切りとしての空行の話
  • ログ出力についてのテストの必要性の話

単体テストアンチパターンなど、レビューのコメントで使えそうだと感じるものも多く、「一通り単体テストわかってきた、もう一歩踏み込んで理解したいぜ」という方におすすめな一冊でした。

「エクストリームプログラミング」を読んだ

はじめに

メーカーのコーポレート部門でテックリードをしているmongolyyです。
今回は「エクストリームプログラミング」を読んだので感想を書いていきます。

きっかけとしては、「スクラムに拘らずにエクストリームプログラミングを基にチーム開発を進めるというやり方もあるのでは?」とアジャイルコーチからアドバイスがあり、原点となる本書を読んでみようと思ったからです。

読んでわかったこと

価値、プラクティス、原則の関係性が少しわかった

自分の理解ですが、次のように理解しました

  • 価値
    • チーム開発がうまくいくために大事にすることであり、チームが価値だと感じていること
      • チームがもたらす価値のことではなさそう
    • 普遍的であり、日常にも通じることが理想的
  • ラクティス
    • 価値を実践するために具体的に実践すること
    • ただし、ただ実践するだけでは価値を体現することは難しく、そのために原則を踏まえて価値と向き合う必要がある
  • 原則
    • ラクティスが価値につながるために必要な背景となる考え方、活動指針
    • 一つのプラクティスで複数の原則を踏まえて実践することで価値につなげることもできるし、複数のプラクティス、それぞれ原則を踏まえることで価値につなげることもできる

いかにして質の高い設計をやるか

本書を読んで、「質の高い設計」を目指すということに関して考えさせられました。

質の高い設計をするために、次のようなことが必要かなと感じました。

  • 環境を整える
    • 創造的な時間を持つ
    • 心の余裕を持つ
  • 知識をつける
    • 知識なしに創造はない
    • 今までの知識もそのまま受け入れるのではなく、改善しろがあったはずと考えて、批判的思考でより良い設計をする
  • フィードバックを得られるようにする
    • 一気に設計するのではなく、ぎりぎりで設計する
      • 一気に設計すると、そのプロダクト開発中の学習を活かす機会が生まれない
    • 本気で設計、実践する
      • 受け取ったフィードバックを学びレベルに昇華させるために、「本気」が重要
    • チームメンバーの学びを設計になるために、チームで一丸となる必要がある
      • コミュニケーションが大事

おわりに

エクストリームプログラミングを読んだのは実は2ヵ月ほど前で読み返しながら感想を書いていたのですが、読み返しても非常に勉強になることが多いなーと思いました。
本書でも、学ぶのと実践することには隔たりがあるという記述がありますし、たまに読み返して実践を広げていこうと思います。

「ソフトウェア設計のトレードオフと誤り」を読んだ

はじめに

メーカーのコーポレート部門でテックリードをしているモンゴルです。
設計の本が出たらついつい読んじゃう質なので、次の本を買って読んでみました。

わかったことを書いていこうと思います。

わかったこと

API、ライブラリ、ツール設計におけるトレードオフがちょっとわかった

API、ライブラリ、ツールにおいて、「内部で使っているライブラリの仕様をどこまで隠ぺい化するか?」という話が興味深かったです。
個人的にはあまり隠蔽しない派だったのですが、本書を読んで、共通して使われる社内向けAPI、ライブラリ、ツールを開発している場合は適切に隠蔽しないと、内部で使っているライブラリの変更の影響をもろに受け、メンテナンスコストが大きくなることが理解できました。

共通部分を作るチーム、それを使うチームは分かれることが多いですが、互いに歩み寄って全体としてどうあるべきかを考えないと、長期的に見て不満がたまる結果になりそうだと思いました。

日時の扱いの難しさを垣間見た

特に「UTCで保存すべきかどうか」の話は興味深かったです。
個人的にはUTCで保存すべきという考えでした。
しかし、本書の説明を読んで、「制度が変わってタイムゾーンが変更されたときに、日付をどう表示するかということを考えるとローカルタイムでもデータを保持したほうがいいんだなー」と理解できました。

また、一か月後の定義も閏年を考慮するとしっかりと考えるべきだなーと理解できました。
普段は日付を扱うためのライブラリを通して、例えば"一か月後"の設定などをしていますが、しっかり挙動を理解してやるべきだなーと思いました。

他にも、うるう秒、サマーゾーン、相対性理論を考慮した話は、実務にどこまで活きるかはわかりませんが、グローバルなシステム、日付の扱いにセンシティブなシステムの場合「こういうこともあるんやなー」と勉強になりました。

おわりに

パフォーマンスなどについて、実際に測定されている節がちらほらあったのが印象に残りました。
予測だけでなく、実測に基づいて考えるというのが大事だと再認識しました。

また、グローバルなシステム、大規模なシステムを経験してきたであろう筆者の、細かい考慮の話も勉強になりました。

「人を動かす」を読んだ

はじめに

メーカーのコーポレート部門でテックリードとして働いているモンゴルです。
テックリードというロールになったときにアジャイルコーチにおすすめの本を聞いたところ、「「人を動かす」がチームをリードするという視点で万能の本だから読んでみるといいで」と言われたので読んでみました。

印象に残ったことを綴っていきます。

印象に残ったこと

笑顔で接する

人に好かれる原則の一つになります。
笑顔であると、周囲の人間も明るくし、自身の精神状態も良いものになるということが書かれていたのですが、確かにそうだなと思いました。
厳しい状況、私が場に対して厳しい発言をするときにニコニコしている同僚がいるのですが、思い返すと自分は間違っていないんだなと認識できて励まされます。

人を説得する原則の一つとしても「穏やかに話す」として書かれていますが、口調も大事だと思っています。
笑顔であると勝手に引き出されるとも思いますが、ゆっくりと、明快に話すといいと思っています。

人の誤りは指摘しないが、自分の誤りを認める

人を説得する原則として「相手の意見に敬意を払い、誤りを指摘しない」「自分の誤りを直ちに快く認める」というのが紹介されていて面白いなと思いました。

相手の細かい誤りは触れず、自分が間違えた時はすぐに認める。
一見不公平にも見えますが、相手に対して敬意を払うとはこういうことなのかなと思いました。

人の美しい心情に呼びかける

美し心情とは、冷静に判断できる状態ということを表しているのですが、この状況を作ってそこに対して呼びかけるという考え方はいいなと思いました。

私は「私たちVS問題の構造」という言葉が好きなのですが、この言葉に通じるなと感じました。
また、本書を読んで、相手を信頼し、非難せずに冷静になってもらい、情報を整理して判断できる環境を整えるということが大事だと認識が整理できました。

おわりに

節毎の独立性が高いので、目次を読んで気になったところだけ読むというのもありだし、目次を読むだけでも学びがあるなと思いました。

文庫版でkindleだと700円台ということを考えると、相当お得だと感じました。(コスパで本は選ばないですが、安いのは助かる)

「抵抗勢力との向き合い方」を読んだ

はじめに

メーカーのコーポレート部門でテックリードとして働いてるモンゴルです。
JTCに所属していると、今までのやり方、考え方を踏襲したい人たちがおり、衝突することがあるので今まで悩んできました。
ちょうど良い本があったので読んでみました。わかったことと再認識したことを書いていこうと思います。

わかったこと

抵抗は生理現象であると考える

抵抗は悪いでもなく、駆逐する対象でもなく、向き合うものと捉えて対応していくことが大事と理解しました。
むしろ歓迎すべきものと捉えることができ、検討の甘さや抜け漏れが発見でき、企画の質を上げる機会になるということも書かれており、確かにポジティブに捉えると良さそうだと思いました。

自分が抵抗と遭遇しそうなときに気を付けているのは、フラットに複数のプランを出すということです。
こうすることで、自分への批判ではなく、自分たちが考え出せるプランに対する批判になるし、検討の観点も広がると思っています。
ただし、このやり方をしたとしても、自分の推しのプランがあったときにそれに対する反発の意見があると、ついついネガティブな気持ちになっていました。
しかし、本書を読んだことで、生理現象であること、プランが磨かれる機会だと捉えてフラットに、なんならポジティブに捉えて意見に向き合おうと思いました。

再認識したこと

抵抗は成長する

色々なリーダーと話していると、言葉の歯切れが悪いことがあります。
今までもその人に、裏側の問題に向き合うという目的で、その場、もしくは別の場で早期にもやもやを確認していました。

本書ではこのちいさなもやもやを放置していると抵抗の強さがどんどん高まるということが書かれていました。
強まっていくという認識はありませんでしたが、そういう認識も持って引き続き向き合っていこうと思いました。

考えをとりあえず書き出してみる

本書では思考が連鎖したり、整理されると書かれていました。

私はこれ以外に、周囲の安心につながるとも思っています。
最近若手から、「モンゴルさんがわからないと言ってくれると安心する。わからなくて普通だと思って気楽に発言できる」というFBを受けたことがあった。
私のふるまい的に、触れがたいオーラを放っているのかもしれませんが、自分の気持ちを素直に表現するほうが相手は自分や場を理解し、安心して話せるかもしれないと感じたのを思い出しました。

おわりに

抵抗と向き合うとは問題自体、人と向き合うことだ、ということが繰り返し書かれていることが印象的で、かつ分かりやすかったです。
人と向き合うということに近道はないですが、これを確実にやっていくことで信頼関係が構築され、今後も素直な筋道で議論が進められるようになると思うので、ひたむきにやっていこうと思います。