自分が入社してからのフロントエンドの変遷をつらつらと書きなぐる

# はじめに

自分が `フロントエンドエンジニア` として入社してから3年弱になるのですが、年末と云うこともあり、何かしら後ろを振り返るいい機会かな?と思い、今まで辿ってきた変遷を思い出してみようと思います。
以前の職場ではデザインをしながらエンジニアリングをしていたり、合間にマネジメントも行っていて、専業としてエンジニアという枠組みではなかった。
そんな自分がこの3年弱という期間を何となく振り返ってみる。

若干エモい話になってる部分もあるかもしれませんが、、、悪しからず ! :clap:

### 入社当時の自分のスキル

- デザイン
    - WEBデザインは多少できる（でもあまりやりたくない）
- エンジニアリング
    - Angular.js(v1.2) やってた
    - Create.js もやってた
    - でも大体は jQuery メインの開発
- その他
    - 工数管理
    - 勤怠管理
    - 採用活動

まさに何でも屋さん的なプレイングマネージャーでした。


# 入社初期

自分が知る限りこの頃は、運用や保守の案件の場合はだいたい jQuery が利用されていた。
新規のプロジェクトの場合でも過去の環境をそのまま持ってきて始めるケースも多々合った気がします。
古き良きと言えば聞こえはいいですが、昔からこうだから...と何も考えずに踏襲しているだけとも言える。
（とは言え入社したばっかなので、様子見でしばらく猫被ることにする :unamused:）

始めのうちはデザイナーが作業の合間に、JS を書いたりしているケースもあって、それを引き継いでリファクタしたりなどをしてました。
というのも、職種は `フロントエンドエンジニア` だが、所属としては `デザイン部` に属するので、デザイナーとはかなり近しいところで実務を行っていた。
確か当時は `gulp` などのタスクランナー的なものも導入されていなくて、その辺の自動化をちょっとずつやっていた記憶があります。

デザイナーがコードを書くことに対して抵抗を持っている人が少なかった（それはとてもとても素晴らしいことだと思う）が、
コードの資産管理についてまで、突き詰めて行っているところは少なく、
ましてやバージョン管理に Git を利用していないプロジェクトもあったりしていて、 自分が参画したプロジェクトに関しては Git の利用方法を教えながらプロジェクトを進めるケースもあった。

フロントエンドエンジニアとして業務を遂行していく上で、まだまだ1人では手が余る（この時期はフロントエンジニアの絶対数がデザイナーに比べて断然少なかったんです）案件が多かったので、
自分が考える最強の環境をバシバシ作っていくというよりは、如何にアサインされたプロジェクトに属しているデザイナーのレベルを上げていって自分色に染めていくかを考えるようにしていた。

**この時期のホットワード**

- フロントエンドエンジニア = CSS + jQuery + おじさん
    - 何となくこう思われていた気がする（独断と偏見）
- （今までやっていなかった）新しいことを導入することへの抵抗感との仁義なき戦い
    - Git おじさん
        - ずっっっと集中型のバージョン管理をしていたんです!!
    - 黒い画面（Terminal, Console）を見せるだけでアレルギーが起こる人を何とかする
        - やってみせ、云って聞かせて、させてみせ...


# 半年〜入社1年くらい

半年〜入社から1年経たないくらいから、新規のプロジェクトにもアサインされることが多くなってきて、その時は割と自由に環境を作ることができました。なんて幸せな時間 :heart_eyes:
また、Git を導入したプロジェクトのデザイナーが Git の良さが身にしみて分かるくらいのレベルになってきて、いい意味で他のプロジェクトに影響を与えるくらいになってきた。

あと、自分の性格的に **とりあえずやってみる** と云うことが性に合っているので、
自分の責任だけが追求されるような場合では、モダンな開発環境に近づけるよう今っぽいものを積極的に取り込むようにしていた。

（今だから言えるけど）入社当時はこれって誰でもできるんじゃ?みたいなことが多かったけれども、
やっとこのくらいの時期からちゃんとフロントエンドエンジニアっぽい仕事が始められる気がしてきた:triumph:

**この時期のホットワード**

- AltCSS
    - タスクランナーなどの普及によって、利用できるようになってきた
        - そもそも使っていないことが当初はかなり衝撃だった! :tired_face:
- モジュールバンドラ
    - `webpack` 使っても良くなった!
- アクセシビリティ
    - `a11y` に強い人が入ってきて、一気に機運が高まった!
- 技術的✩負債
    - フロントエンドエンジニア界隈で利用できるツールの普及で、現場の抱えている負債が他部門にちょっとづつ認知されてきた
- 闇属性・闇堕ち


# 入社2年目くらい

入社当時に比べたら、社内的にもフロントエンジニアの必要性や認知度も上がってきて、上流工程を任せてもらうことがかなり多くなってきた。
また、フロントエンドエンジニアの絶対数も段々増えてきて、「**俺たちでやってやろうぜ！！！**」みたいなノリがちょっぴり出てきたw
（実はデザイン部にフロントエンドチームができてから云うほど日が経っていなかったのだ!!）

チーム内でも `コンポーネント指向` の話題がかなり飛び交うようになっていて、自分が新規でアサインされたプロジェクトに手始めに [Vue.js](https://jp.vuejs.org/index.html) を導入してみた。
というのも、別プロジェクトで [React](https://reactjs.org/) が採用されている案件があったのですが、当時そのプロジェクトにとてもとてもとても入りたかったが、大人の事情で入ることができなかった。
それに対する反骨精神ではないけれども、 ~~若干天邪鬼気質な自分は~~ チーム内に知見を深める! 広げる! と云う意味合いで `Vue.js` を採用した。
また、万が一自分が運用・保守から外れた場合でも、日本語での公式のドキュメントが存在しているので、引き継ぐ人の抵抗感はきっと少ないだろうと見込んだ。
実際この辺のドキュメンテーションは説得材料に非常に役に立った。
確かこのときは 1系にメジャーアップデートがかかったばかりだった気がする。

今となっては、 `Vue.js` はかなり大きなプロダクトに成長していて、フレームワークの開発が衰退していったらどうしようというような不安はとっくの昔になくなっている。
結果導入したことはかなりの正解だった。

コンポーネント指向と相性のいい、 **Atomic Design** の潮流がいろいろなプロダクトチームで起こったりもしていて、
エンジニアとしてはコンポーネント指向を導入しやすい環境が周りからも整いつつあった。

**この時期のホットワード**

- チーム感
    - 〜そして伝説へ〜
- Vue おじさん
- Bot
    - `Get Pokemon`
- コンポーネント指向
    - 社内でLTしたり、勉強会したり
    - 周りがかなり興味持ち始めてきた


# 入社3年目

もともとフロントエンドチーム的な扱いだったが、晴れて **フロントエンド開発部** として独立!
部に所属しているエンジニアはもちろんのこと、デザイナーの意識もめっちゃ高くなっている。
自分も何かそれっぽい役職? が付いた(笑
管理側はきっと大変なんだろうけれども、人が増えてかなり部門としては賑やかな感じになりました。
そんなこともあり、部門全体のレベルアップとして割と教育的なことに力を入れることになった。

また、各サービスに専属のフロントエンドエンジニアがだいたいは1名以上アサインできるようになってきて、品質担保や品質向上などエンジニアリングを積極的に行うことで、サービス自体の質を高めることが以前よりもスムーズに行えるようになってきました。

あと（自分の話で言うと）、猛烈に Vue をプッシュする若いエンジニア(口を開けば Nuxt.js の話をしている)が出てきたので、晴れて? Vue のおじさんは卒業しました。
今はなんだろう、TypeScript おじさんか Angular おじさんなのか...、○○おじさんって裏で呼ばれているのか自分では全然把握ができていない:unamused:


**この時期のホットワード**

- スクラム開発
- FE Meetup
    - 3年目にしてMeetupの機会をかなり増やした
- Web Components
    - ぼちぼちちゃんと使えそう :revolving_hearts:
- フロントエンドエンジニアが存在する、しないの差が激しい
    - リソースの奪い合い


# そしてこれから

現場での働き方や、事業として求められるコミットも一昔前と比べてだいぶ変わりました。
入社時期と比べれば雲泥の差です。

（今までもそうだったと思いますが）これからはなお一層、フットワークの軽さや新しいことのキャッチアップが求められるんだろうな〜と何となく思っています。
個々の裁量に委ねられるケースが増え、組織体制として、デザイナーがデザインだけやっていればいいと云うことでもなくなり、エンジニアも然り、サービスの実装だけやっていればいいということでもなくなってきました。
自分の肩書に対して縛られ過ぎてしまうと、逆に見失ってしまったりすることもありますよね。

- 先入観を持たないように努める
    - 現状行っている手法（エンジニアリング以外に対しても）が果たして最善なのか?
    - 常日頃頭の片隅にでも考えられる猶予を設ける
- 自分の意見をしっかり伝える
- 時には勢いに身を任せてみる

を自分は普段から意識するようにしているのですが、
自戒の念の意味合いも込めて、これからも業務にあたらせていただこうと思っております。

明日は @nokkii さんの記事になります。
よろしくお願いいたします！