プライベート?

ランチに上司がプライベートで話したいとメールが届いて、1人で行った方が良いのかな?と半分思いながら同僚と行ったら、やっぱり1対1で話そうという意味だった。以前、働いていた職場では、1対1の面談のことを one by one と呼んでいたので、自分の中ではプライベート?って言われて意図がしっくりこなくて、なんか家族のお話でもするのかなぁ (そんな訳あるはずないけど) とかも半分思いながら行って、同僚にはごめんなさいして、お寿司を食べながら話した。

ちなみに private を辞書で引くと、特定の人とか、内密のといった意味があるので1対1で話したいときに「プライベートで」と言うのは英語の用法的には間違っていないと思う。ただ、プライベートというカタカナに違和感がないようにこの単語が日本語化している面もあるので in private (非公式に、こっそりと) といったアルファベットを使う方がより意図を伝えやすいかもしれない。

仕事のことや、会社のことや、開発のことや、同僚のことや、日頃、私が実感していることや分からないことをざっくばらんに話した。私自身、その上司を尊敬しているし、実際に優れた人だと思っている。話してみたら8割ぐらい私の考えていたことや状況把握と一致していて、やっぱりちゃんと分かっているんだと何となく安心した。それと同時に、私が分かっていて、その上司も分かっているんだから、きっと周りの人も大体は分かっているんだろうと思って、これ以上は私が何か行動する必要がないようにも受け取れた。

私はかなりの田舎出身のせいか、けっこう他人の目を気にして生きてきた。田舎の人は大抵は見栄っ張りで格好悪いところや恥ずかしいところは表に出さない。私もそういう遺伝子を受け継いできたわけだけど、そのせいか、この人は何を求めているのか、この人は何を思っているのか、そういうのを類推するのが割と違和感なく考えていたりする。プライベートだと相手に失礼だからそんなことしないけど、あくまで業務上でのお話。

昔働いていた会社で上司から「人をよくみている」と言われたことがあった。システムエンジニアという職種は、色んなステークホルダーとやり取りするお仕事だから、意外とうまく立ち回れて成果を残せていたときもあった。業務において対顧客というのは、言わば、契約もしくはお金だけの関係だ。そういったステークホルダーの利益を担保しつつ、周りの人を調整すれば大抵がうまくいく。普通の会社に入って数年働けば、必勝パターンが分かってきて同じ業界や企業間であればそんな難しくない。分からなくても基本的には、顧客の利益優先とか言って働いていればそれで大体はなんとかなる。

難しいのは社内の人間関係だ。社内の利害関係というのは会社の状況によっても変わるものだし、自身のメディア力によっても変わってくる。基本的に私は、なぁなぁの関係が嫌いなので義理人情で動くようにしている。もちろん論理でも動くw。お世話になれば恩を返すし、攻撃を受ければ戦うし、困っていればできる範囲では助ける。だいたいそんな感じ。義理人情は理屈じゃないので気まぐれと言っても良い。ただ1つだけ、損得で動くのだけはやめとこうと意識的に気をつけている。

社内の人間関係は難しいが、実はもっと難しいものがある。自分の心だ。「本心」という単語を辞書で調べると4つ出てきた。

1. 本当の心。真実の気持ち。
2. 本来あるべき正しい心。良心。
3. たしかな心。正気。
4. 本来の性質。うまれつき。

さっき義理人情で動くとか、よく分からないことを言ったけど、それを決めているのは自分の心だ。これがまたそのときそのときで変わる。年をまたぐと大きく変わることもある。良い顔をしているときもあるし、悪い顔をしているときもある。その時々で飛躍していたり、矛盾していることもある。

あの人は何も分かってないんじゃないか?と考えていたら実は分かっていた。そしたら、何だ分かっていたのかと安堵するものの、分かっていて何もしないのは自分にはみえない「何か」があるのか、ただ何もしていないだけなのか、意図的にしていないのか、いろいろ類推ができる。そして、つまりはまた同じループに入る。きりがないのでそこはあまり深く考えない。

先の、若い頃に「人をよくみている」と上司に言われて浮かれていた時期もあったと書いたけど、それはつまり他の人にも事情があって、仲間がいて、家族がいて、生活があって、人生があるんだと言うのを本質的に理解することへの無抵抗感を指していたのかもしれない。自分の心がそれを許せば、別にそれで構わない。それが許せなければ、怒りになったり、反骨心になったり、怠惰になったり、あんまりよくない状況になると思う。

そして、それを自分で気付いてしまった後の判断がすごく重要だ。気付いてしまったら、気付かなかった頃には戻れない。あとは選択するだけだ。許すか、許さないか、もしくは逃げるか。伸るか反るかの二択で考えがちだけど、いまは選択肢を3つ設けるべきだと思っている。人生は長いし、それが本当に重要かどうかも後になってみないと分からないのだから勝負から逃げるのもありだ。逃げ続けるんじゃなくて一時的に逃げるだけだ。逃げるという言葉がネガティブで気に入らなければ戦略的撤退と呼べば良い。

何の根拠もないけれど、経験的にこの決断を損得でやると失敗する確率が上がると思っている。本心で決めた方が良い。そして、一番ダメなのは成り行きで選択してしまうこと、高い確率で望まない状況を招くだろう。

年をとって思うのは、この三択の決断がより短いサイクルで自分の前に提示されるようになってきている気がする。それと、いまは三択しかみえないけど、もしかしたら四択あるのかもしれないし、もっとあるのかもしれない。だって若い頃は二択しかないと思っていたのだから。あと何回訪れるか分からない、その選択を楽しみつつ、反省しつつ、落ち込みつつ、それでもし何かを残せたらきっと幸せな人生なんだろうなと私の場合はそう思う。

求められているのは「提案」です。

私はコンサルと呼ばれる人たちが嫌いだ。厳密に言うと、実力や経験もなく、知識や枠組みだけでコンサルをやろうとしている人たちが嫌いだ。

ベンダーAは問題ないと言っている。ベンダーBも問題ないと言っている。だが、現実には問題が発生している。その問題はベンダーAが対処すべきなのか、ベンダーBが対処すべきなのか、顧客からは切り分けできない。どっちが正しいか分からない状況で調査するのにも工数 (お金) がかかる。そんな状況の中で現実の問題だけが宙に浮いている。

お仕事の中ではちょくちょく遭遇するようなパターンだと思う。そんな中で担当のコンサルが言った言葉は、

この状況で求められているのは「提案」です。

間違っていない。コンサルという立場で顧客に接している人から見たら正しい。自分は関係ないと無視することもできる中で何かしら提案して問題解決に貢献しようという姿勢があって素晴らしいとも言える。

私はなんか違和感を感じていた。だから、私はコンサルが嫌いなんだと再認識した。

私から見ると、顧客が求めているのは「問題解決」だと思う。

提案という言葉の背景に自分は何もしないし、責任も取らないけど、アドバイスだけはするという、他人事の姿勢が垣間見えたような気がした。なぜ自分に調べさせてほしいと言わないのか。なぜ自分が解決へ向けての調査をすると言わないのか。

立派な武器がないと戦えないと思っているうちは、負けることはないけど、勝つこともない。

新卒研修のときに当時の講師が言っていた言葉をたまに思い出す。

この言葉は私のキャリアの中で大きな影響を与えた。これまで何度か転職したきたけど、できるから転職したんじゃなくて、できないことに挑戦するために転職してきた。その結果、できることが増えて、できないことへの挑戦に対する心理的不安は随分と減った。

いまはできない、けれどがんばっていればいつかできるようになるかもしれない。そういう楽観的な姿勢は経験に基づくもので、その実践が自信へとつながる。そして、最近思うのは、その先はたぶん自由につながっている気がする。

自分はどうやって社会に貢献するのか。その提案は他人にはできない自分だけのオリジナルなのか。その提案が本当に必要とされているのか。

お仕事だからポジショントークは必然だし、中途半端はしないとか、儲からないことはやらないといった主義も私は良いと思っている。ただ、本質的なところをポジショントークで語るようなコンサルとは、自分はなんとなくあわないなぁと思った。

良いプログラマーを採用するには

ここで言う「良い」とは、優秀なとか、プログラミングスキルに長けたという意味。プログラマーと一口に言ってもいろんなタイプがいると思うし、お仕事だったら実務をチームでこなせることが第一条件になる。私なら以下の条件を全て満たせば良いプログラマーだと思う。採用やってるわけじゃないから本当にそうかどうかは知らない。

  • リーダブルコードが書ける
  • 継続的な学習習慣が身についている
  • 客観的に理解できるドキュメントが書ける
  • 英語の読み書きができる
  • プログラミングが好き

先日、管理部が上長に新卒採用で未経験であっても、どうやったらプログラマー適性のある新人を採用できるかといった話をしていた。中途採用を待っていても採れないから新卒採用に注力するらしい。そんな中で性格に多少の問題があってもプログラミングスキルの高い人を採用すれば、あとは開発側で何とかするといったことを話したところ、管理部もそれ自体は理解しているが、会社の方針としては「まともな」人しか採用しないから無理だと答えていた。テクニカルスキルよりも管理部や経営陣が重要だと思うヒューマンスキルがない人は採用しないという方針になっているらしい。

そこはさておき、話が発散して、中途採用であってもどうやったら良いプログラマーが採用できるかみたいな話に移っていた。この前、同僚とお昼ご飯を食べていたら、私のブログを読んで入社することを決意したという同僚が2名もいて驚いた。たまに私のブログ読んで面接に来る人もいるらしい。ブログってすごい、、、いや、今日はそういう話じゃない。

会社ブログの存在を知っている人だけ面接すれば良いとか、もっと対外的に情報発信すれば良いとか、インターンシップが良いとか、いろいろ話してたけど、どれも本質じゃないだろうと聞き流していた。良い人が応募してこない、良い人が採用できないといったことを言う管理部の言葉には暗黙の条件が付いている。

  • (他社より魅力がなくても) 応募してほしい
  • (他社より待遇が悪くても) 良い人を採用したい

私が求職者なら、まず業務内容と待遇で会社を選定する。そこで興味がなかったら応募はしない。管理部が業務内容を変えるのは難しいだろうから、変えられるとしたら待遇ぐらいだろう。それ以外のことを管理部がどうがんばったところで求職者には届かない。

当たり前の話だけど、組織で最も重要なのは評価制度と人事制度の2つだ。これがダメだと組織もダメになる。評価制度がまともであれば、優秀な社員にはそれなりの待遇になる。これは社内の話だけでなく採用の話でもある。優秀な社員にそれなりの待遇を用意していないと、それと同等レベルの求職者を市場価値よりも低い待遇で採用せざるをえなくなる。当然、応募が来なくなる。もしくは、社内は無視して同待遇の社員よりも低いレベルの人を採用してみたらどうなるだろう。入社後に業績に差があるにも関わらず待遇が同じだと人事制度が破綻する。入社後に待遇を落とせば良いという考え方もあるけど、一般に待遇を落とすという行為はモチベーションの低下を招きやすいため、その社員の業績がさらに悪化するという負のスパイラルを招きやすい。そして、最も恐いのがモチベーションの低下した社員が周りの同僚に与える負の影響だ。

結論から述べると、管理部がどうやったら良いプログラマーが採用できるかといったことを開発部門に聞いても意味がない。

それっぽい話が聞けて、なにか施策を行ったとしても、残念ながら自社の魅力や待遇が悪ければ求職者は入社してこない。そんなことよりも自社を他社よりも魅力的で待遇の良い会社にするための何かに注力すれば良い。中長期的に見れば、社員の幸福度があがれば業績にも影響を与えるだろうし、業績があがれば待遇も改善されるし、待遇が改善されれば求職者も応募してくるようになる。

もちろんそれは分かっていて短期的に採用実績という結果を出さないといけないというのが実情だろう。そうすると、やることは限定的で何も知らない新卒を採用をするか、半分詐欺みたいなことを言って求職者を入社させるしかない。私の知り合いの中にも、中途採用で入社後に予め確認した業務内容と全く違う業務にあてがわれた人がいる。諦めてそのまま働いている人もいるし、すぐに辞めた人もいる。そういった中途採用のマッチングが難しいから新卒採用に注力したくなるのも分からんでもない。

でもね。新卒を採用するとして、現場の社員が思うのは教育コストを管理部に負担してもらいたい。中途なら「これやって、分からんかったら聞いて」で済む会話が、新卒ならそれで何日費やすか分からない。

過去に学生インターンや新人の教育係をした経験からいうと、真面目に教育するには3倍のコストがかかる。

  • 自分の業務
  • 教育のための準備
  • 実際の OJT 的な業務

これでざっと3倍。あえて教育にかかる業務を自分の業務に含めずに書いたのは、多くの職場が新人に教育しているからといって、その人の業務を減らすような仕組みにはなっていないしそういった施策自体もない。教育という業務の重要性を管理部が理解していない、というのは管理部が採用実績しか評価の尺度にないからだろう。そういう意味で管理部という組織そのものの制度設計も老朽化してきているのかもしれない。

意識的にしろ無意識にしろ、組織には利害関係がある。それを把握した上でのグランドデザインがあって、それを達成するための施策があって、、、といった制度設計をするには、いまの企業の在り方や社会の変化の速さには追随できていないような気がする。

どうやったら良いプログラマーが採用できるか

この質問自体が時代遅れなのかもしれない。

海外インターン生を受け入れること

親会社が進めている海外展開の1つで、昨年からインドからのインターン生をうちの会社でも受け入れている。昨年に続き、今年も5/20 - 7/11 に渡る約1ヶ月半に渡ってインド人学生のメンターとして彼らに接したことの所感を整理してみる。

コミュニケーションの源泉

まずは何と言っても英語が分からない。私の英語力では、彼らの話していることの7-8割は分からない。それでうまくやれるかというと微妙なんだけど、まぁ業務としての成果は出せる。

私の場合、英語が話せないから、

  • 目的を伝える
  • 例や調べ方を教える
  • 一緒にデバッグする

というやり方で接している。どうせ英語だと深いところは説明できないし、自分だったらどこを調べて、どうやってデバッグするかを彼らにみせる。そこから彼らなりに学んでもらう。

もう1人の同僚のメンターは、過去にイギリスの大学に留学していたのもあり、英語が普通に話せるのでもっとうまくコミュニケーションをとっている。すごいなぁと思うのは、業務の話だけではなく、日常会話をしていることだ。そうやって相手に興味を示しながら信頼関係を高めて、さらに高次のコミュニケーションに至るんだろうと何となくみていて思った。自分の場合、あまり世の中のことに興味がないせいか、自分の目的にないものの話は基本的に聞くだけで特にどうでも良いと思ってしまう。また社内にも結構英語が話せる同僚はちらほらいて、そういうのを目の当たりにしてると自分はダメだなぁと良い意味で落ち込む。

とはいえ、プログラマープログラミング言語という共通言語がある。2回目のメンターをやってみて実感できたのは、英語は分からなくてもそれなりにコミュニケーションはとれるということ。いまの技術で大事なことはその背景にあるコンテキストを理解すること、そしてそのコンテキストを抽象化して伝えることだ。

うちの会社でも、数年以内に開発は英語が公用語化される雰囲気がある。個人的には、それが世の中のトレンドだし、英語ができない人は最初からお断りといった明確な姿勢を取る方が分かりやすくて良いと思う。

  • 読む
  • 書く
  • 聞く
  • 話す

英語の4つの能力がある。この中で後天的に最もネイティブに近づくのは「聞く」の能力らしい。どれか1つに自信がつくと、別の能力にも目がいくようになる。言語は生涯学習の1つだから、いまできないことよりも、どうやって学習するかの習慣作りが一番大事なことに思う。

企業の目的

昨年のインターンシップが終わった後に親会社のリクルーターに、企業としてのインターンシップの目的を聞いたことがあった。通常の、日本人向けのインターンシップは社会貢献だけど、海外のインターンシップ生はそれとは違う。一説によると、シリコンバレーの半分ぐらいのプログラマーは、インド人と中国人だという調査結果もあるらしい *1 。新卒のプログラマーとしてインド人が優秀だから採用したいが、彼らは日本で言う東大生のようなもので Googlefacebook といった企業からもスカウトされるような存在。つまり、海外のインターンシップ生向けの目的は採用なのだ。

私がメンターとして指示されているのは、この会社で働くと自分が成長できる、この会社の技術力は高いと学生が実感できるようなインターンシップにしてくれということだ。その延長でプロダクトの開発に携わってもらっているわけだけど、日本人/外国人に関わらず、学生がちょっとやってきて、たった1ヶ月半でできることなんかはたかが知れている。メンターがインターン期間を考慮しながらお膳立てして、予定調和な成果を出してもらうのが一般的だと思う。

学生の目的

ふと、学生の目的は何だろうな?と思った。彼らの1人はサンフランシスコで働きたいと言っていた。昨年のインターン生はアニメ好きの親日家で、日本で働きたいと言っていた。実際に親会社からオファーを受けてそのまま入社したらしい。残念ながら勤務地はシンガポールなんだけど、それでも日本企業に勤めたかったんだろうと思う。

彼らの話の中ではどこそこの企業というよりも外国で働きたいという印象を受ける。英語が公用語というのが強いのか、若い頃に外国へ出て働くことがキャリアとして確立されているのか、世界に出ていくことに抵抗がない *2 。だから名前も知らない日本企業のインターンシップにも参加してくるんだろうと思う。

いろんな意味を含め、日本はやっぱり平和でのほほんで良いなと思う。

インターン生を身近でみていての所感

やっぱり学生なので基本的にはお客様扱いだ。会社の目的が採用なのだから尚更そうなる。
居心地の良い職場環境だと思ってもらった方が採用の確率は高まる。企業の中にしかないものを対象に、そこそこの課題を与え、それなりにヒントを出しつつ、解答に導く。それを親切に指導すれば、普通に印象は良くなる。

私の方針としては、細かいことは言わないし、求めなければあえてそれ以上のことも言わない。まだ20歳前後の学生に対して、おっさんがあれこれ型にはめるよりも、彼らなりの感性で良さそうに思ったものを吸収してもらった方が、長い目でみて彼らの財産になる気がするからだ。まぁ自分自身が型にはめられるのを嫌うというのもある。

プロダクトからモダン開発の要点をいくつか学ぶことができたと思うし、ちょっとだけだけど OSS コミュニティとやり取りするきっかけみたいなのも示した。それを次にどう活かすかは彼ら次第だ。

企業でのインターンシップで学ぶことは、こんなところだろう。

  • コードの保守性
  • チーム開発で守るべきルール
  • インターフェースやコンポーネントを意識した開発アーキテクチャ
  • 開発業務としてのワークフロー
  • 中大規模な開発体制

他のことは OSS 開発からも学べるし、純粋に技術的なことはインターネットから出てくる方が多いかもしれない。同僚のメンターは、プロダクトの機能開発のような、一定の手順を踏めばできるような開発よりも、彼らの専門であるコンピューターサイエンスの分野を活かして何かをしてもらった方が良いのでは?と疑問をもっていた。これは賛否両論あるけど、上記のようなことははっきり言って技術的に難しくない、が企業の中でしか経験できない。そして、ほとんどの企業に入社すれば、同様にそういったつまらない仕事をすることの方が多いはずだ。

学生にとってどちらが良いのか、私も明確な答えはもっていないけど、少なくともプログラミングが好きな人なら、自分なりの楽しい領域をみつけて楽しめるだろう。だからこれをしてはいけない、あれをしてはいけないといった制約を設けず、なるべく思ったことはどんどんやれ、好きなようにやれと言ってやればそれで十分な気もしている。

あと思ったのは、他人のソースコードやエラーメッセージを読むのに慣れてないことだ。分からなかったらすぐに聞いてきて、その都度、一緒にコードリーディングしたり、デバッグしたりしていた。ソースコードを読めと何度か言ったんだけど、これはいま一つうまく伝わらなかった。ソースコードのコピペも、そう言えば、私も学生の頃、インターンシップ先でそこの社長に怒られたなぁと懐かしみながら指摘していた。

世界が身近になって思うことは、普通の日常がやっぱりすごい速度で変わっていっていて、意識的にしろ無意識にしろ、それを受け入れて判断していかないといけないというプレッシャーが半端ないってことかなぁ。

*1:まつひろのガレージライフ: インド人と中国人が支えるシリコンバレー

*2:現にいま日本に来ているのだから、そういう学生だけに会っているというバイアスももちろんある

スタイルを構築するということ

最近やる気のなさがやばい。しんどいことがあったり、嫌なことがあったり、余裕がなかったり、そういったものが重なって持続的なやる気のなさにつながっている。

柔道の世界にある心・技・体 *1 とはよく言ったもので、それなりの時間と量を要するものごとに取り組む上で大事なことを端的に表していると言える。厳密な解釈や言葉の意味はここでは取り上げないけど、そういう要素があるなと、やる気がないときによく実感するのでちょっと書いておく。

プログラマーの世界だと、心・技・体のうち、最も高めるのが容易なのが「技」だと思う。ぶっちゃけ年を経て経験を積めば徐々に高まる。もちろん、その速度や深さに個人差はある。新しいパラダイムや概念は確かにそのときは全然理解できなかったり、難解なものに見えても、時間が経てばそう苦もなくいつの間にか分かるようになってるときがある。ほとんどのケースで勉強すれば誰でも身につく。

その次は「体」だろう。不摂生をやめて普通の生活をしていれば、問題ないはずだけど、人によっては夜型だったり、目が悪かったり、小指が痛かったりすることもあるだろう。うちの職場ではプログラマーに最も重要なのは筋トレだと唱える人もいて内心どうでもいいわと思ってるけど、まぁあながち的外れというわけでもない。自分の経験から大事なことは、食べること、寝ること、歩くことかな。誘惑に負けて怠惰な生活をしなければ大丈夫。

最後の「心」。これは未だに分からないし、たぶん分かったとしても最も難しい。こんなことできたらいいなぁとか、こういうことやりたいなぁとかは何となく思う。だけど、思うだけで終わってしまう。最初のやる気を出す方法の1つとして、タスクを小さくするという手法が良いそうだ。それも効果的だと思うけど、そもそもタスク分割できていない、もやっとしたイメージのような対象には適用できない。イメージをタスクに変換するときの何かがまだ必要だ。

発想の転換で何もやらないというのもそれなりに強力だ。不思議なもので何もやらないことに耐えるのも結構しんどい。何もやらないよりは何かをやっていた方がまだましだ。そこに至るまで何もやらないというのも効率は悪いけど、効果はある。

とはいえ、ほとんどの人は毎日何かしらルーチンを抱えていて忙しい。やりたくないタスクばかりを並べると、その中で最もやりたくなくないタスクに着手できたりする。しかし、やりたいタスクが入ってこないのが前提条件になるため、やはり効果は限定的だ。

たぶん答えもなさそうなので「心」は無視する。考えるだけ無駄だ。やる気があったり、なかったり、そういうものだと認識するだけで十分だと思う。

前置きが長くなった。ここで個々の要素ではなく、どうやって心・技・体としてバランスを取るかということを考え始めた。きっとどれか1つだけ突出していても駄目だろう。この3つが組み合わさったものが自分のスタイルになるんじゃないかと思うようになった。思想、心情、考え方、知識、知恵、技量、生活、体力、健康。キーワードはいろいろ出てくる。このバランスを安定的に保つ、できれば数年間といった期間で保つ。それが次のステップへ繋がるように思う。

もともとは夜型だった生活を朝型に改めた過去の経験から思うことがある。若い頃にそれを目指して私は半年かかった。いまでも調子を崩せば、朝型へ戻すのに2〜3ヶ月は要する。スタイルを構築する、いわば型にはめることそのものに一定の助走時間がかかるんだと認めるようになった。明日からがんばろうと思ってできるものではない、厳密には続くものではない。

もし自分がスタイルを構築する段階で、その障害となるものがあれば、それは全力で排除しないといけない。何となくいまそういうのを実感していて、客観的に自分が悪いのは認識しつつ、それでも引かずに押し通そうと考えている。そうやって面倒くさい人間になっていくのかもしれないけど、分からなかったことが分かるかもしれないと思ってしまった時点で自分はおとなしく振る舞うみたいなことはできない方なんだと諦めてもいる。

もう何年も前の話だけど、筆跡鑑定というのを受けたことがある。その鑑定士の先生が

あなたはものごとを壊すのが好きな人だから仕事はあまりうまくいかない。向いている業種をあげるなら新規開拓の営業とかだ。

のようなことを言っていた。結構きつい先生で他にもぼろくそに言われた。結構当たってるかもなと自分でも思うところがあって、何かうまくいかないことがあればよく思い出す言葉の1つでもある。自分の納得感、興味へのわくわく感、そういったものを他人の迷惑よりも優先してしまいがちなので、きっと端からは壊しているように映るのかもしれない。

とか、なんか最近やる気がないから、やる気がおきそうなことを考えたりしていた。

辞める雰囲気、辞める時期

もう1ヶ月半ぐらい前のこと。殴り書きして放置していたのを思い返しながら書く。

その日は退職する同僚が最終出社日で、夕方からラジオ体操してコロコロで筋トレやって、挨拶まわりやって、みんなに激励されながら会社を去っていった。

うちの会社はちょっとおかしいと思うんだけど、会社を辞めるときの雰囲気がすごく良い。ふつう辞めるというのは何らかの不満や欺瞞があったり、政争があったり、会社のごだごだがあったりしてあまり良いものではない。実際にはそういったことも多少はあるだろうけど、前向きの理由で辞めていく人が多いのか、特にエンジニアは明るく元気に辞めていく *1 。これは2年前から同じ。

辞めた彼は私よりも5歳ぐらい若い、サーバーサイドも UI もこなす優秀なプログラマーでチームリーダーも務めていた。

その日、送別会があったので私も参加していた。聞いてみると、次の職場が決まってるわけでもなく、しばらくはのんびり趣味の開発をしたり、勉強するといったことを言っていた。本当の意味でちょっと疲れたから休もうかといったものかもしれないし、自分で考えていろいろやってみたいといったものかもしれない。堅い会社のおじさんならそんな曖昧な理由で辞めるなと説教するのだろうけど、プログラマーの世界はそんな緩さで良いと私は思う。

いまの技術の世界は広くて、膨大な知識に溢れていて、全てを把握できるわけでもなく本当の意味で真面目に取り込むと正直しんどいと思う。ここで言う「しんどい」というのは、しんどいから大変だとか、しんどいから嫌だとか、そういうのとも違う。日々勉強するのが普通の、そういう職業の感覚の中で、疲れたから休む、飽きたから別のことをするという緩さや余裕がないと心がまいってしまう。いや、これはその彼がそうだと言ってるのではなく、自分がそうだ (笑) 。

送別会のときにちょっと話してたらこんなようなことを言っていた。

いまの職場で技術の上位の方にきているのに不安がある。もっといろいろ学びたい。

そういった話を聞いていて、彼は良いタイミングで辞めたなと素直に思った。環境を変えるのはリスクもあるけど、プログラマーの世界は比較的リスクが小さいように思うし、辞めてもまた戻ってこれるような制度を設けている会社もある。うちにもそういう制度を作ったら?と同席していた管理部の人に聞いたら、制度を作ると別のバイアスや政治力学が働くようになるので制度がない方が (その人の技術力次第で) 何とでもできてプログラマーにとっては有利だと言っていた。だから、うちは制度を作らないとも。

後日、どこかで見聞きしたのを朧げに覚えていたのが何だったのかずっと思い出せずにいたのを アプレンティスシップ・パターン の一節で見つけた。

Be the Worst

http://clabs.org/blog/BeTheWorst

もっと勉強しようと思ったら環境を変えるのは強力なプラクティスの1つだ。

不満をもって辞める人はきっとその不満から逃れられないだろう。挑戦するために辞める人はその時勢に依るだろう。そして、何となく辞める人はたぶん幸せな人だ。

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

*1:ベンチャー系の会社だから自身のキャリアを最優先するような人が集まってるはずで当然といえば当然かもしれないけど、もう創業10年以上に経つのでベンチャーとも言いにくいちょっとした中堅企業になりつつある

望んだ環境

昨年、自分が開発したコンポーネントが実運用されるようになりつつあり、多くの開発者が経験するように実運用ではなかなかうまくいかず、サポートでトラブル対応をしてたりする。最近導入したお客さんなので、私の担当コンポーネントのトラブルだけでなく、他にもいくつかトラブルがあり、会社のお偉いさんからミーティングの召集がかかって私も関係者の1人として出席していた。

お客さんに対して、担当営業さんがいて、コンサルがいて、そして開発の人間がいる。開発部にはプログラマーとインフラ担当もいる。

昔、私は SIer にいて、いまの会社でいうコンサル (SIer で言うところの SE に近い) のお仕事をしていた。お客さんとの技術的な窓口になったり、直接的なサポート対応をしたり、お客さんの環境で実作業をしたりもする。だから、そのお偉いさんが考えることも、コンサルや担当営業が気にかけるところも何となく分かる。そして、私の代わりに見えないところで誰彼なしに怒られていることも想像がつく。

その場では言わなかったけど、私が低品質なものを作ったがために嫌な思いをさせてごめんなさい。

さて、そんなコンサルさんたちを見ていて過去を思い返したりしていた。業務の中でお客さんの相手はやはり疲れる。そして、合理的ではないこともしばしばある。お客さんからも社内からも怒られるこのポジションは辛いことも多いだろう。昔の私も、この社内・社外に対しての関係者の調整という煩わしいお仕事をせずに、もっと自分の好きな技術的なことに専念できるお仕事がしたいと考えていた。そして、転職を繰り返すうちに、いつの間にかそうなっていた。

いまの会社のお仕事はパッケージ製品の開発という、お客さんとも他の部署とも直接やり取りせずに自分の開発に引きこもれる。唯一、サポート対応だけは日課にあり、自分の担当コンポーネントや自分がつくったコンポーネントのサポートは (社内で) 日々やっている。そして、いま思うことは、このサポート対応がなければもっと開発に集中できるのに、と思うときもある。

そう、過去を振り返ったから分かることだ。

もし現状がこうだったらアレができるのに、、、

それはある意味で事実だけど、そのときの状況が変わったとしても、その先で自分の考えることは何も変わらないだろう。世の中がそういうものなのか、人間の欲望が尽きないのか、また新たな煩わしい事象があってそれがなかったらいいのに、と思うだけだ。

親会社でゲストフェローを務める CTO がチーム開発の書籍を管轄部署のメンバーに読ませたいと言っていた。よく分からないけど、その部署のメンバーが傲慢過ぎるから、謙虚になれと言ってるそうな。そこは親会社のエリートの集まりの部署なので、おそらくは相当に優秀な人たちばかりだと思う。そこ出身の知り合いも何人かいるが、いずれのもすごく優秀な人たちだから何となくイメージはつく。普通の開発者の技術レベルだと釣り合わず、うまくコミュニケーションがとれないのかもしれない。

傲慢になる要因の1つも、それが自分の望んだ状況と違うからかもしれない。自分ならもっとうまくやれる。自分なら失敗しない。でも、やはりあえて現実は違うと私は思う。いま置かれた状況を自分の力で変えていけないとしたら、それが変わっても、また結局同じことで悩むことになる。何から始めても、どこから始めても結局は同じ。最終的には同じなんだ。それぞれがやってきたことの先にあるものは、人が変わっても、状況が変わっても、みんな同じところに行き着くような、何となくだけど、最近はそう思うようになってきた。

目先のことをどう判断しようと、その結果がどうであったとしても、中長期的にみたら自分の目指すところにあまり影響を及ぼさない。けれど、その時々で自分が考えたこと、行動してきたこと、それが望んだものかどうかを決めることになるだけだ。