Web Developer's Struggle Memories

日々の業務から思ったこと、学んだことを書き連ねていきます。

「環境が人を育てる」ということを痛感している

今更ですが、2017年9月1日に転職し、現在は株式会社ゆめみという会社にいます。あっという間に半年が過ぎてしまいましたが、業務がめっさ忙しいというわけではなく、楽しく働けているからこその感覚です(まぁ他にも色々ありましたがw)。

自分が成長しているのか、まだはっきりとはわかりませんが、できることや新しいスキルも着実に身に付いてきており、力は付いてきているなと実感しています。 また、毎日が刺激だらけで全然飽きず、1日が一瞬で終わる…という毎日を送れているので、とても充実しているのではないかと。

この刺激・体験は前職では到底得られるものではありませんでした。振り返ってみて大きな差は何だったのかというと、やはり「環境」がとても大きかったと思います。 ここで言う環境とは、設備・社内ルール・使っているツールなどのことではなく、メンバーの実力と向上心の高さです。 今の会社は、自分が今まで所属した会社の中ではダントツに環境が良く、正直に自分の実力は低いと痛感させられました。が、これは自分が求めていたもので、正直とても嬉しかったです。

人が成長するための行動について

「環境が人を育てる」という言葉は、よくスポーツや格闘技の世界で耳にする言葉かと思いますが、自分はプログラマ・エンジニアにも通じるなと痛感しています。 人が成長するための行動は、ざっくりと以下の2つに大別できると思います。

1. 自分で何かアクションする(何かを作る、立ち上げるなど)

2. 環境に引き上げられる(周りのレベルに付いて行こうと勉強する)

自分のキャリアを振り返ると、2 → 1 → 2という順番できているなと思います。 その都度、自分の実力にあった環境に身を置けており、一歩ずつ成長できてきたという感じです。これはとても運が良かったと思います。

自分の環境の変化

今の会社で3社目ですが、それぞれの会社での環境について簡単にまとめます。基本的にWEB業界におり、受託でECサイトやWEBサイトを作る仕事をしてました。

▼1社目(2年8ヶ月在籍)

  • プログラミングはほぼ初心者で新卒入社
  • 今思えば会社全体のエンジニアの技術レベルはそれほど高くない
    • 高いメンバーも10人くらいた(約200人中、知る限り残っているのは2人のはず)
    • 自社パッケージのみ精通することを求められる
    • 新しい技術の導入が遅い(というか、よく止められた)
    • 案件では新しい技術・ツールを導入することが禁止されている(必ず上司でNG食らう)
  • コードレビューはエンジニア勉強会でやる(案件ではやらない)
    • 必ず行われるわけではない
    • 定期的に開催されない(案件の進捗によって)
  • テストの自動化も上の人からやめさせられる
    • 最初はやっていた
    • 「その工数がもったいない」とか言うクソな大人な理由で廃止
    • テストは別会社に金払って依頼(これ自体は間違ってはいない)
    • 社内にも品質管理部門もあった
  • 何かと自動化させてもらえなかった

▼2社目(1年10ヶ月在籍)

  • めっさフラットで勉強会参加がめっさ奨励される
    • 勉強会の交通費も出してくれる
    • 優勝の勉強会も社費で参加できた
    • 平日の業務時間の勉強会も案件状況では業務として参加できた
  • 技術レベルは低い
    • 高い人は6人くらい(全員で約70人ちょいだったはず)
    • 基本的に未経験の人を雇って研修させる(経験者があまり来ないのもあった)
    • 独学で学ぶ必要がある
  • 技術書やその他諸々も全額社費で購入できた(一応承認制だが、大抵通る)
  • 技術が好きな人が少ない
    • 嫌いではないけど、休みの日まで勉強する人が少ない
    • 業務以外では技術よりもゲームの方が圧倒的に話に出る
    • 新しいツールとかにアンテナ張っている人が少ない
  • 会社はあくまで学べる環境のみは作ってくれていた

▼3社目(現在)

  • 運良く社内でトップレベルの技術力のチームに配属
  • 自分より技術力高い人ばかり
    • 独学で学ぶスタンスだが、たいていの技術は誰か触ったことある人がいる
    • 技術力高いので教えてもらえる事が多い
  • 基本的に開発速度が速い
  • ちゃんとコードレビューある
    • 悪いところは悪いとハッキリ言ってくれる
    • 自分の最初のMerge Request, Pull Requestはボロっクソに言われた
      • コメントが72件とかいったw
    • でも評価するところはちゃんと評価する
    • 人格の否定は一切しない
  • 無駄なことは技術で解決する文化が根付いている
    • なるべく自動化する
    • テストもちゃんと書くしもちろん自動化もする
    • 何気にRedmineが機能している
    • なるべくDevOpsに近づけようとしている
  • コミュニケーションを最適化
    • お客さんにもslack, Redmineを使わせる(メールのやりとりはあまりない)
    • 固定電話がない(人によっては社用携帯電話を付与)
      • ほとんどかかってくることはない
  • 新しい技術・ツールにアンテナ張るのは当たり前(自分たちが楽になるから)
  • 定時になったら帰らせようとしてくる
    • チーム内に17時くらいになったら帰る人もいる(もちろんやることやってるので凄い)

ざーっと書きなぐりました。「環境」とは関係ない事も書いてしまいましたが、少しはイメージできるのではないかなと思います。

環境が人を育てる

有名な格言にこういうものがあります。

ダイヤモンドはダイヤモンドでしか磨けないのと同じように

人は人でしか磨かれない

教育の現場ではよく用いられているであろう格言ですが、言われたことがある方も多いのではないでしょうか?(かくいう私も、誰かに言われました)

人は人と切磋琢磨しないと磨かれない、つまり成長しないということです。「いやいや、自分一人で修行している人もいるじゃないですか!」「勉強でも、独学で大成した人もいますよ!」という声もあると思います。そして、それは正しいと私も思います。なんなら、昔の学者には自分一人で成功した人も多いでしょう。

しかし、独学や一人の修行には限界が存在します。今の自分は本当に成長しているのか、これを測ることができるでしょうか? 例えば基礎体力的な修行の場合は、定量的な数字が結果として出てくるので測ることはできますが、数値化しづらい or できないものもこの世には多くあります。

ですので、それを測るためにも他者の存在が必要であり、他者からの評価・フィードバックがあって初めて人は今よりも上のステージにいけるのです。 さらに、その評価・フィードバックの質が良し悪しで、今後の成長度合いも変わります(下手したら成長しないこともあります)。だからこそ環境はとても重要であり、『環境が人を育てる』となるわけです。

終わりに

私はプライベートではフロントエンドエンジニアをやることが多いですが、業務ではずっとバックエンド、サーバーサイドの開発をしてきました。 今の会社でもNode.jsAPIの開発・保守を行っていますが、プログラミングという点についてはフロントエンド・バックエンドの差はほとんどなく、むしろどちらにも通じる事が多いです。

ですので、今の私の環境は本当に自分を成長させられる場だなと思いますし、今の環境に本当に感謝しています。 まだまだ実力不足でチームメンバーに迷惑ばかりかけているので、しっかり今の環境を良い意味で利用し、貢献できるようになりたいと思います。では。