Goodpatch Engineer Principlesとナレッジマネジメント

この記事は「Goodpatch Advent Calendar 2021」の25日目の記事です🎄

Goodpatchでエンジニアリングマネージャーをしている関矢が今年も担当します(毎年クリスマスソングが街に流れ出すとお腹が痛いです)。Goodpatchのエンジニアの行動指針を定義したGoodpatch Engineer Principles(GpEP)に関しては初日の記事でUXエンジニアの大角が書いてくれていますが、本記事ではマネージャーとして行動指針をどういう位置付けで捉えているのか、また現在のナレッジ創出の取り組みの結果が最終的なゴールにどうつながっていくかについて説明できればと思っています。

まず、本行動指針に関する活動のゴールとしてはGoodpatchのエンジニアの価値の言語化し明らかにしていくことと考えています。結果として、Goodpatchのメインの事業であるクライアントワークにおいて、よりたくさんのクライアントの皆さんにデザインカンパニーであるGoodpatchにプロダクトのデザインだけではなく開発部分までを依頼してもらうためにも本活動は極めて重要なものであると思っています。前述の記事にもあったように、行動指針それ自体も「自分達はどういうことに価値を置いて仕事をしているのか」という意味ではとても重要なものですが、価値そのものではなくて、現在のナレッジ創出活動の先に価値が生まれていくと考えています。

具体的には各メンバーがプロジェクト内で実践している活動を行動指針と紐づけてナレッジ化して貯める。そして、溜まったナレッジを基に自分達の価値を世の中に発信していきたいと思っています。例えば「チームにとって最適なプロセスと仕組みを設計する」という行動指針は価値の源泉ではあるけれどもそれだけでは価値としては伝わりづらいと思います。そこで、先日の加藤の記事のような「(デザイナーというロールの定義がない)スクラムの中でデザイナーとどのように協業していくべきか」という行動指針と関連した活動をもとにナレッジとして貯めていくことで、価値が生まれていく(具現化していく)というイメージです。

f:id:hiroshisekiya:20211225154619p:plain:w600
Goodpatch Engineer Principleとナレッジの関係

前置きが長くなりましたが、本記事では「実践知からナレッジを生み出す」までのナレッジマネジメント観点での流れについてと、それを踏まえた展望について書いてみようと思います。

実践知からナレッジを生み出すまで

Goodpatchではesaというドキュメンテーションツールをメインに利用していますが、日々様々なプロジェクトでの実践知が共有されており、総記事数は優に3万を超えているような状況です。それら膨大な記事群の中から自分の直面している問題や状況に合った記事を探し出すことが難しくなってきているという話もあるのですが、今日はそれらの記事をもとにナレッジ化を進められないかという別のアプローチについて説明したいと思います。

ナレッジとは?

まずは(私の考える)「ナレッジ」とは何なのか?について触れておこうと思います。ナレッジは日本語に訳すと「知識」で、辞典で調べても「ある事項について知っていること。また、その内容。」といった、分かったような分からないような定義になっています。そこでナレッジの目的を考えてみます。組織としてナレッジマネジメントを行う目的は大きく分けると以下の2つになるかと思います。

  • 個人の暗黙知を形式知化して他者が自分の問題解決に活かせるようにすること
  • 組織として複数の知識をかけ合わせることで新たな知識を生み出すこと

まず、これらの条件を満たすためにはある程度の汎用性や抽象性が必要であることは理解できるかと思います。例えばGoodpatchの中でうまくいったある取り組みがあったとして、そのままではGoodpatchにしか適用できないのでナレッジとしては価値が低いけれども、それがGoodpatchと同じくらいの規模の組織には有効だと解れば色々な組織に適用できるようになるのでナレッジとしての価値が高いと言えます。そこで、私自身は冒頭にあげたプロジェクトでの実践知のことをケーススタディ、それを抽象度を上げて汎化したものをナレッジと呼び分けています。

ちなみに、ケーススタディには価値がないと言っているわけではありません。ビジネススクールなどではそういった学習方法が多く行われており、それはそれで高い価値があると認識しています。また、ナレッジとは補完的な関係にあると考えています。その点については記事の最後で触れます。

ケーススタディのナレッジ化

では、貯まっているケーススタディ集からどうやってナレッジを作り出していくのか、について考えてみましょう。そこでまず前提としたいのは「ナレッジとはパターンである」ということです。つまり、色々な問題、状況に適用できる知識というのはパターンとみなすことができるということです。(この記事の読者は大体エンジニアだと想定していますが)「パターン」と聞いたら一つ頭に思い浮かんだものがあるのではないでしょうか。そう「デザインパターン」ですね。デザインパターンはまさに様々な要件を満たすプログラムを構成するために有益な「ナレッジ」と言えると思います。そして、そのデザインパターンはパターンランゲージというもので書かれています。

パターンランゲージは建築家のクリストファー・アレグザンダーによって提唱され、それをソフトウェアの設計に適用したものがGang of Fourによるデザインパターンです。他にも「Fearless Change」や「組織パターン」などの本にも用いられている汎用的なナレッジの記述方式です。

と言うことで、今回はナレッジの記述方式としてパターンランゲージを試してみることにしました。参考にしたのはクリエイティブシフト社の「パターン・ランゲージのつくり方」で、現在は特定のテーマを使って仮ライティングまでを実施し、今後ナレッジとしての有効性などを検証していく予定です。

学習の段階とナレッジの位置付け

先ほど、ナレッジは「他者が自分の問題解決に活かせるもの」といった説明をしましたが、実際に解決に至る(「できる」ようになる)にはいくつかの学習の段階があります。学習の段階については色々なモデル(NLPの5段階モデルなど)がありますが、個人的には「知る」「解る」「できる」「教える」の4段階で考えています。その中で、まずはナレッジによって「知る」を、ケーススタディによって実際のプロジェクトの実例を通じてより深く「解る」ところまでがカバーできることを期待しています。それ以降の段階は実際にやってみることで「できる」ようになり、ケーススタディの記事を書いたりナレッジ化していく中で「教える」ことができるようになるイメージです。

f:id:hiroshisekiya:20211225225653p:plain:w600
学習の段階とナレッジの関係

つまり「ナレッジ」と「ケーススタディ」の組み合わせを読んだ人がプロジェクト内で実践できそう(or やってみよう)と思えるかどうかが今回のアプローチによるナレッジ化の有効性の確認方法ということになります。

今後の展望

ここまで見た通り、現在のナレッジ創出の取り組みは未だ道半ばですが(パターン・ランゲージによるナレッジの抽出が上手くいった前提で)今後どのような未来を思い描いているかというと、プロジェクトで何か困ったことがあったり(e.g. プロジェクトにスクラムをスムーズに導入するにはどうしたらいいんだろう)、何か新しいことにチャレンジしたいと思った時(e.g. プロダクトの不確実性を減らすためにプロトタイピングした方が良さそうだけど、手法ごとにどんなメリットデメリットがあるんだろう)に、まずはナレッジ集の中から適切なものを探して読んでもらいます。ただし、ナレッジはそれなりに抽象度が高いので、それらのナレッジの実践例として、これまで貯まっているケーススタディ集を読むことで、コンテキストを補完できると良いのではないかと思っています。

言語化、ナレッジ化はエッセンスを抽出し精製していく過程で多くの情報を捨ててしまうので、逆に個人がそれらを取り入れスキル化していく過程では失われた情報を上手く補完していく必要があります。その意味でケーススタディは大きな意味、価値があると考えています。

f:id:hiroshisekiya:20211225154645p:plain:w600
ナレッジ化の流れとスキル化(学習)の流れ

こうしてケーススタディの蓄積とナレッジ化のサイクルが回っていくことで、Goodpatch Engineer Principleで定義された各テーマごとに、具体的な実践例を伴ったナレッジが出来上がっていき、それこそがGoodpatchのエンジニアのバリューとして内外に説明していけるものになっていくという未来を思い描いています。この未来が実現した時にはクライアントの皆さんにもより納得感を持ってもらう&安心して仕事を任せてもらえる土台ができ、デザイナー側のAdvent Calendar初日の大山の記事にもある「つくり手の人生と生活を、より豊かにしたい。」の実現にもつながっていくはずと信じています。

おわりに

最後まで読んでいただきありがとうございました。 それでは、良いお年を!


Goodpatch ではデザイン好きなエンジニアの仲間を募集しています。 少しでもご興味を持たれた方は、ぜひ一度カジュアルにお話ししましょう!