目次
- はじめに
- 物作り
- 早いということ
- 綺麗だということ
- 正確だということ
- 木工職人と工場長、エンジニアとPMの関係性
- 共通しないこと
- 最後に
1.はじめに
2021年も早いもので残すところ2週間くらいとなり、「今年も一年早かったね」なんて言葉を言ってみたり聞いたりすることが多くなってきました。今冬は寒くなるんでしょうか、雪は降るのかな、来年の干支ってなんだっけなどと考えたりしてます。
さて、私はというともうすぐAIエンジニアとなってまる2年が経とうとしています。
社会人になってから飽きることなく繰り返してきたこの「今年も一年早かったね」とともにこの2年間を振り返りつつ、16年ほど携わった前職の木工(家具)職人と現在のAIエンジニアの共通することってなんだろうを考えてみたいと思います。
2.物作り
「段取り八分」
職人をしているとよくこの言葉を聞きます。
段取り(準備)さえしっかり出来ていれば仕事の8割は出来たようなもの、みたいな意味です。
8割は言い過ぎだろという思いが頭を掠めまくっていましたが、経験を重ねれば重ねるほどこの言葉の意味を意識することは多かったように思います。
木工職人にとって**「早くて綺麗で正確に」**という絶対的に正しい結果を追求する上で「段取り八分」(いかに効率的なプロセスを辿るか)はもっとも重要な考えの一つだと思ってました。
AIエンジニアと木工職人の間には、アナログとデジタルの違いはあるものの「モノを作る」という大きな共通点があります。
木工職人にとって大切だと思っていたことを半ば無理やりAIエンジニアにとって大切だと思うことに結びつけてみたいと思います。
木工は作り手が図面をもらった時点で何を作るかは明確に決まってます。(まれに途中で変更があったり、一部決まっていない中進めることもありますが、、、)
製作スタートと同時に数時間は図面と睨めっこしながら、部分的な詳細図を描き(組み立て説明書を自分で考え思考を整理し書き起こすみたいな作業)、完成形や製作工程を頭に叩き込み、最短距離でゴール(完成)するにはどうすべきかを考えます。
1つの家具・什器(店舗やオフィスの家具)でも作り方は何通りかあり、製作物の大きさや難易度によって、どの手法をとるかで手間と時間が大きく変わります。この辺りは経験と知識が大きくモノをいいます。(ゴールを「目的」に置き換えるとその時考えてたことはphotoructionのvalueである「目的逆算」に近い気がします)
早いということ
そこで家具や什器をコードに、鉋(カンナ)・ノコギリ・電動工具等をPCに置き換えてみると、この「早くて綺麗で正確に」という価値観は職人からエンジニア業務への延長線上にしっかり乗っかってきます。
IT業界でも「脱・完璧主義」や「7割の完成度」を意識するみたいなことはよくいわれると思います。エンジニアとしても早ければその分多く開発できるし、開発コストも抑えることができるし、組織にとってもメリットは多いはず、やはりエンジニアとしても早いは正義だと(個人的に)思います。
綺麗だということ
AIエンジニアが使用するプログラミング言語PythonにもPEP8というコーディングスタイルガイドがあります。
その目的は読みやすくて、可読性が高く、一貫性のあるコードを書くためにこういうことは守ろうね、みたいなことが書いてあります。Python開発者たちがコードを読みやすく綺麗に書くことを非常に重要だと考えていることをスタイルガイドを通して感じることができます。
開発において、一度リリースしたからといってコードは未来永劫そのままか??というとそんなことはなく、開発したものが使い続けられる限り改修は行われます。その際、開発者本人が改修するとは限らない上に場合によっては、開発者が退職しているケースもあるかもしれません。改修担当者にとってどのコードが何の目的で書かれているかわかりやすければわかりやすいほど、作業も進みます。コードが他者から見てわかりやすいと改修やデバッグする上で作業性を大きく左右する、保守性において重要ではないかと考えます。
正確だということ
AI開発の最終段階では、それまでの開発内で使われていた学習データ(教師データ)とは別に使われていないテストデータをもとに評価検証を行います(開発したAIモデルの精度や処理時間など算出するため)。
リリースした後に扱うデータがテストデータと同じようなものかというと、そんなことは全くなく、開発中には遭遇していない未知のデータに対してもロバスト(頑健)であることが求められます。
ロバストな開発ができるどうかは開発物の品質を大きく左右します。
3.職人と工場長(現場監督)、エンジニアとPM
関係性が似ていると感じることは多いです。
(*木工職人の場合、やりとりの多くは工場長や制作担当リーダーみたいな人とが多いんですが、他の職方だと監督とやりとりする場面が多いと思うので置き換えた方がわかりやすいかもしれません)
制作においては工場長はあくまでもハブです。というと語弊があるかもしれませんが、工場長は内装業者から案件を受注し家具図・什器図をもらい図面だけでは読み取れないこと、スケジュール、お金に関することなどを内容業者と調整します。そして、各制作物ごとに工場長が担当の職人と打ち合わせを通し、制作物の詳細やスケジュールを共有します。職人は制作中に図面に書かれておらず、自身では判断できないことがよくあります。その際は工場長を通し内装業者に問い合わせを行います。。
とざっくりですが、ここまで書いているとエンジニアとPMの関係も同じとはいわないまでも近いと感じる人もいるのではないかと思います。
私はAIエンジニアしか経験がないので、他のエンジニアがどうかはわかりませんが、少なくとも木工職人と工場長、AIエンジニアとPMの関係性は共通点が多く、エンジニアとして仕事を始めた早い段階からエンジニアとPMの間に境界線を引いていたと思います。こっからここは、エンジニアが考える、そっから先はPMの領域、、、みたいな感じに。
ただ、この境界線の置き所が難しく、微調整を繰り返しながら最適なやり方を模索している途中です。
4.共通しないこと
思いつくことはまだあり時間をかけるとまだまだ書けそうですが、そろそろ今行っている開発に戻った方が良さそうなので、最後に共通していないことを書きたいと思います。
一番大きい違いは、グループやチームの存在を近くに感じるかどうかではないでしょうか。
木工職人としてはあまり意識することはなかったように思います。(途中、工場長みたいなこともやっていた時期があり、その際は作ることはどうしても二の次になりチームや組織としてどうするかみたいなことは考えていたような気がします)
Photoructionではいくつかの部署があり縦横無尽に連携していると思います。そういった組織の複雑性みたいなものは木工時代にはなかったので、新鮮であり勉強になることが多く、他者との関わり方みたいな部分で意識の修正が必要でした。
私に開発の話が届くまでに社内で幾つかのプロセスを経てきます。そのプロセスの具体的な内容まではわかっているわけではないですが、色々なプロセスの内容に触れる機会があると小説の一部を読んでいるようで面白いなと感じることもあります。
(あまり関係ないかもしれないが、組織人としてPhotoructionが掲げているvaluesに「敬意尊尚」とういうものがあり、それがどういったものかを共有する勉強会の参考図書となっていたTeam Geak(Googleのギークたちはいかにしてチームを作るのか)は非常に参考になり、これから何度も読み返そうと思う)
最後に
思いつくままつらつらと書きましたが、技術的なことを書くにもう少し時間が必要だと思ったので、あまり考えずに済む題材をチョイスしましたが思っていた以上に時間がかかってしまった。
おが屑に塗れながらにしろ椅子に座ってキーボードをカチャカチャするにしろ、物を作るというのは面白いものですね。
これをエンジニアが読んでためになるとはあまり思えませんが、最後まで読んでいただきありがとうございますmm
株式会社フォトラクションでは一緒に働く仲間を募集しています