仕事をやって身に付けたノウハウとか心構え的なものを書き出してみる。
品質の話はレビューの時に
あなたがコーディングの腕に自信があり、メンバーが書くコードの品質にモヤっているならレビュープロセスがおざなりになっていると思った方がいい。コードレビューでも設計レビューでも、質の高いセッションができているだろうか?
これはどちらかと言えば品質をコントロールしたい立場に与えられる指針だと思う。レビュー以外の場でクチバシを突っ込まれたら担当者もいい気はしない。
プロセスを守ることでメンバーに敬意を示す一方で、レビューは品質について話し合う貴重な場なのだから、アサーティブに行われるべきだろう。あなたがレビュイーのコードを理解できなければリッチな図がついたドキュメントを要求してもいい。それはリファクタリングの契機になるかもしれないし、中長期的なチームの資産になり得る。レビュイーがヒントを得るために必要な指示を出すのもあなたの仕事だ。
もちろん納期とリソースの問題はあるかもしれないが、そこに待ったをかけるのはチームの成果を維持するための重要な仕事なので、状況に応じてできる限りこのプロセスに時間を割こう。
ミーティングが長いのは根回しが足りない
我々暇な若者だけで集まるならともかく、忙しい大人のミーティングの前にはある程度の合意を取る必要がある。
ミーティングの目的は大抵意思決定だ。少し社会人をやれば何案かに絞って提示するのが大人のやり方だってことが分かってくるけど、俺たちの世間知らずな提案には大抵ブロッカーが存在する。彼らと合意を取って不確実性を排除するのが"根回し"の目的だ。
根回しは概ねリスク管理の観点で進めるのが良いだろう。あなたの提案はどのようなリスクを抱えているのだろうか。あなたがそれをクリアにする必要はないが、どんな問題が起こるのか想像がつくなら、社内でそれに責任を持っている人に聞いてみよう。あるいは同じ部署の先輩が誰に聞くべきか知っているかもしれない。リスクを洗い出すのはその領域のオーナーの仕事だが、それを把握するのはあなたの仕事だ。
もちろんリスク以外にもケアすることはある。その提案に潜むポジティブな機会を見つけ出し、受益者と一緒に利益を試算できれば、意思決定者にその案の良さを十分にアピールできるだろう。
根回しをサボった場合、あなたの自信満々な提案には即座に待ったがかかり、単価×時間×人数の損失が発生する。そんなのはミーティングの前に片付けておく事案なので、根回しはちゃんとやろう。
手続きでなく成果の効率化
業務効率化といった時に、効率化された業務が成果に直結しないものでは意味がないが、手続きを効率化しようとすると簡単に陥る誤謬だ。効率化の話が回ってきたら、まずはその業務がどのようなインパクトを持っているか精査しよう。それを効率化の手間賃と比較してみると、やめてしまった方がいいという場合もある。あるいは、業務の構造を一切合切変えてしまうこともありえる。もはや原型を留めていなくても目的を達成する手段は無数にあることを忘れてはいけない。その判断が最適化であり、手続きの効率化の視点とは壁一枚で隔てられている。この壁を意識的に透視してみるとよい。そのためには目的とインパクトに立ち返る必要がある。
ユーザーの行動変容が成果物
ソフトウェアのリリースは当然そのユーザーに影響を及ぼす。俺たちが書いたコードは人の認知と行動を変えることを目的に本番環境にデプロイされる。
この原則に立ち返れば、ユーザーが使い方を学ぶためのコンテンツを用意する必要性が理解できる。ハウツーガイド、チュートリアル、ワークショップなどを整備し、ユーザーがスムーズに機能にアクセスして成果を得ていることを最終ゴールに設定するべきだろう。
効果測定をゴールに置くなんてのはビジネスマンの基本だが、俺みたいに社内で宙に浮いてるエンジニアには馴染みがなかった観念なので、未熟な組織で働く人は意識すると良いと思う。
モデリングはエキスパートと一緒に
中規模のプロジェクトから小規模な依頼の解決まで、まずはドメインエキスパートと一緒にモデリングすることから始める必要がある。
俺の場合はまずFigmaに自分の理解を作図する。それは大抵役立たずの妄想画だが、その図が何を表しているのか、そして俺が何を間違えているのかくらいはドメインエキスパートに伝えることができる。
これは最初俺にとって不思議なことだった。彼らはUMLを知らないのに、なぜかそれを理解できる。おそらくUMLで書き表されるモデルというのはそこそこ普遍的な観念だし、UIデザインなどを通じてミーム化しやすい。さらに自身の専門領域で例示されることで、案外容易く理解できるんだろう。
間違いを仕込んでおくというのも一つのテクニックで、ドメインエキスパートは修正を通じてモデリングに没頭することができる。そうなればこちらのものだ。Figjamボードの世界でユビキタス言語と饒舌なモデルを用いながら質の高いコミュニケーションを取り放題になる。