やかんです。
最近就活を始めました。
1社だけですが。
現状、大学1年時よりエンジニアとしてお世話になっている会社で卒業後も働くつもりなんですが、外の世界も見てみようという試みになります。
「カスタマー第一」について振り返ったり考えたり。
就活してる1社でありがたいことに最終面接まで進むことになりました。で、その面接を受けるに際して、ある程度自分の中で考えなどをまとめておこう、という試みです。
その会社では「カスタマー第一」という信念があるそうなので、これについて自分なりに、経験も引っ張りながら考えていこうと思います。
大学1年とかその辺の時にやらかしたな。
大学1年冬からエンジニアしてる会社で、実装のミスでプロダクトにバグを生んでしまったことがある。
実装ミスの内容はすごいシンプルで、jsのswitch文で各caseにbreakを書き忘れたっていうものだった。今でも結構覚えてるな。
で、そのミスはプロダクトを利用しているユーザー、そしてさらにエンドユーザーにも迷惑かけちゃったよな。
ユーザーさんは、僕のミスによって起きたバグで顧客機会を喪失したわけで、エンドユーザーさんはシンプルに時間を無駄にすることになってしまったわけだ。
それまで、「開発って楽しーなー」くらいしか考えていなかったけど、仕事上の開発には責任が伴うんだなって思った。
失敗引きずったよな。
で、そのミスを引きずってそれからはあまり開発を楽しめなくなった気がする。
どうやって回復したのかあんま覚えてないけど、確か先輩エンジニアが助けてくれたんだよな。「チームのミスやで」みたいなこと言ってくれて。
「カスタマー」という言葉をどう定義するかだよな。自分が書くコードが製品に反映されたら、その時の「カスタマー」はプロダクトを利用するユーザー、そしてそのエンドユーザーになる。
でも、自分が書くコードが製品に反映されるまでには複数の主体が関係してくる。コードをレビューする人、そしてそれにゴーサインを出す人。彼らも多分広い意味での「カスタマー」なんだよな。
彼らの仕事が不要に複雑なものにならないように、自分が書くコードの品質を上げていく。ひょっとして、自分以外の主体って全員潜在的には「カスタマー」なんじゃないのか?
確かそのあたりから仕事の仕方変わったんじゃないかな。
それがあった時くらいから、
- コミットメッセージをそれなりに丁寧に書く
- コミットの粒度をそれなりに考える
- PRの粒度とか「読みやすさ」にも気を使う
とか、自分にとっての「カスタマー」に対してフレンドリーな仕事をしようって思って、それなりに実践できていたんじゃないかな。
この辺は多分大学2年の春とかその辺だよね。
「全力で議論する」っていう経験的な。
これは別の会社での話。
「反論したらそこで議論終わるから反論してね」っていう趣旨の言葉が結構衝撃だった。「この人に着いていきたい」と思ったのは思えばその時か?もうちょい前から?わからんが。
これも「カスタマー」っていう視点から捉え直すことができそうだよね。それまでの自分、「相手をたてる」とか、そういうことに神経使っていた気がする。「カスタマーを煽てる」的な?
でもそれは誰も幸せにならないんじゃないかなって思い始めたのが多分この辺。カスタマーに対するシンプルなリスペクトを感じ始めたのはこの辺か?大学2年の冬始まったくらい。
なんかこれは、確かに自分にとってクリティカルな出来事だったんだけど、この文脈だと無理やり感出ちゃうね。
時系列ちょっと飛んで、次はnotエンジニアの方々とのmtgで痛感したよね。
受託でプロダクト開発できることになって、依頼主の方々とmtgしたとき。シンプルに言えば、「依頼主(カスタマー)目線で考えないと上手くいかんわ」っていうことの痛感。
エンジニア目線で話すとカスタマーの方々を混乱させてしまう。いかにカスタマーに技術的なことのイメージを持ってもらうか、共有できるかっていう。そんでこれがもうめっちゃむずかった記憶。結局達成できたんかな、、、?少なくともマシにはなったと思うけど。
だから要は、上流も大事にしろっていうことなんじゃないかな?いや、なんかちょっと違うな。上流から自分にやることが回ってきて、そして自分が自分の仕事をすることで下流に流れていく。この流れを重んじなさいっていうそういう教訓なんじゃない?
これが大学3年の春。
「自分が納得すればいいや」っていう考えを改めた話。
タイルマップ用のプロキシサーバーを作った時のこと。
タイルマップの説明は一旦おいといて、これはデバッグが非常に大変だったよな。自分は、時間をかけて一個一個タイル画像について海外線を利用したりしてデバッグして「よし完成だ!」って思った。でも、納品先からしてみたら「いやそれほんとにデバッグできてんの?」っていうところが納得し難いわけで。
納品って、製品作って終わりじゃないなっていうのをつくづく感じた。製品の品質についてお互いに合意が形成されて初めて納品なんだよな。これもまあ、カスタマー目線で納品というか、仕事を捉え直さないとみんな幸せじゃないよねっていう話だと思っている。
大学3年の冬だよね。年末だった記憶。
「カスタマーは何を欲しているのか」っていうことについて口説いくらい合意形成しようと思った話。
これは1月前とかの話だから記憶に新しい。
社内翻訳ツールを作った時の話。要件定義を曖昧にしてしまったことで、作っては「なんか違うんだよねえ、、」作っては「うーん、悪くないんだけど使いづらい、、、」という堂々巡りが発生。
要件定義からカスタマーを外していいわけないですよね。原理的に。
だから、多分自分がする仕事において、カスタマーへのリスペクトが軽んじられていいフェーズっていうのは存在しないんだろうな。要件定義のフェーズ、実装のフェーズ、納品のフェーズ、経過観察のフェーズ。
まあ言うは易しで行うは難しなんだけど。
一緒に働くエンジニアチームに対するリスペクトの話。
これはまあ失敗談だよね。昨日の話だ。めっちゃ最近や。
wafで落ちちゃって不安煽っちゃった話。
書くの疲れたからこれは後回しで。
うーん、振り返りになってんのかなこれは、、まあよしとしましょう。
ということで今回の雑記は終了。最後までお読みいただきありがとうございます。