Subscribed unsubscribe Subscribe Subscribe

SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

職場を改善すること.

少し前、上司である部長から突然仕事を振られた。「レガシーなプロジェクトをモダンな開発に変えてくれないか」と。なかなかふわふわした指令だった。レガシーをモダンに変える。レガシーをモダンに変える。メールを見返してもその言葉以上の内容はない。ただ、なんとなく言いたい事は伝わったので一度飲み込んだ。

僕の会社はおそらくIT業界を見渡した時に先進的な開発をしているとは言えないだろう。勿論半径50m内のプロジェクトしか見えないのでここまで括ってしまうのは暴論に見えるが、当たらずとも遠からず、といったところじゃないか。レガシーとモダンを定義するのは難しいが、部長の想いはわかる。社外の情報やソフトウェア工学辺りの本を読み耽っているやつならなんか改善出来るんじゃないか、というところだと認識した。

しかしこの仕事はあーだこーだとやり取りしたあと断った。どこかのプロジェクトにメスを入れることは多分僕のキャリアの中で最も難易度が高くて、時間も莫大に取られるので、それをやる余裕はないという理由だった。既に成熟した文化に外から手を加えることの難しさは重々わかっていた。

ドキュメントを英語で書く

小さな例を出そう。最近あったこれの縮図のような話。僕のプロジェクトではアルゴリズム検討チームなるものがいて、僕はそこに属しているのだが、書いたコードはGitLabにPushしてメンバー間でシェア出来るようにしている。そしていつの間にか根付いた文化として、コメントやドキュメント、Commitメッセージは英語で書いている。これは僕がただ英語でコメントを勝手に書いていたことから波及した取り組みだった。外国人エンジニアがいた時期もあったため自然とそれがデフォルトになった。

最近になり、チームに新しい人が入ってきた。その人は以前プロジェクトに属していた人だったが、稼働の空き具合からまたお手伝いに来てくれるようになった。その人にある時呼び止められて言われたことは「英語をやめませんか」ということだった。何故わざわざ英語でコメントやドキュメントを書いているのか、Commitメッセージを英語で記述なんてしていたら変に稼働がかかる。日本語に戻したい、と訴えられた。ちゃんとこちらの意図なども説明したが、彼にそれは受け入れられなかった。英語が苦手な人のことを考慮されていない、という意見だった。

この話を受けた時、心の中で「エンジニアやるんだったら英語くらい読み書き出来るようになってくれよ」と苛々しながら思ったのを覚えている。ただこれも一つの文化の違いによる衝突の一例だと思う。

日本の開発現場で英語で全てが回っている環境はなかなかないだろう。それが突然、「今後のことを考えて全て英語にしましょう」なんてことを言われたら、そりゃ反感を持つだろう。英語が出来ないのなら勉強しろ、と言われれば余計腹が立つ。

ドキュメント関連を英語にするのは一つの新しい取り組みだったが、それを受け入れられない人は当然いる。なんでもそうだが、新しい取り組みは反感を買ってしまうものだ。定着する前に頓挫することが多いだろう。英語という新しい文化に対して、嫌な顔をされるのは当然の反応だと思う。

文化にメスを入れる

先の話に戻ると、レガシーをモダンにするのは最たる例だ。どうして今のままで回っているのに、新しい取り組みをしないといけないの、と思われて、反感を買うだろう。新しい取り組みを導入したことで、現場の人は新しい何かを学ばなければならず、そんな努力は払いたくないと思う人が必ず現れる。何かを改善することの一番難しいところはここにある。

開発現場にメスを入れることは確かに僕もやりたいが、自分のような一兵卒には難易度が高過ぎた。この手のことをボトムアップ式で実践するのは難しくて、ある程度トップダウン式でやらないとうだうだとしてしまい、最悪戦争になってしまう。だから、これは僕の考えだが、文化に向かっていくときはある程度の権力が必要だと思う。

いつかは

いつかはこうした他プロジェクトを改善する、ということをやれるようになればいいなとは思う。ソフトウェア工学の本を漁っていれば、改善出来るところは多くある。正解は先人達の本の中にある。SoRとSoEの共存、MicroServices、DevOps、、、勿論、現場は全てがその通りになり得ないのだが、チャレンジしがいのある問題だ。

僕がやろうとするとまだまだ知識と経験が足りない。もうちょっと偉くなったらチャレンジさせてくれ。まぁ今のところで偉くはなれないと思うけども。

Remove all ads