
私が現在のプロジェクトで働き出してから4年半が経ちました。
初めのうちは学ぶことがたくさんあって毎日張り切って仕事をしていましたが
段々慣れてくると、他の仕事をしてみたくなるものです。
このままでいいのかな、なんだか何も新しいことを学んでいない。
私のプロジェクトには私ともう一人、2年半前に入社した新人君がいて
二人でフロントエンドの仕事をしています。プログラマーになってインターンの時期も含めるともうすぐ10年。
この10年という数字に見合ったスキルを、果たして私は持ってるんだろうか、と
時々考えるのです。
そんな時、上司の上司からUIコンポーネントライブラリのプロジェクトの話がありました。
UIコンポーネントライブラリとは
私の現在のプロジェクトではReactを使っています。Reactを使ってウェブを作るのはまるでレゴブロックを使って何かを組み立てる様なもの。レゴブロックはコンポーネント、まるで部品。
ボタン、リンク、段落、などの部品を使ってウェブを組み立てるという感覚です。
私の働く会社には30以上のプロジェクトがあり、今までは
それぞれのプロジェクトで好きなようにそのレゴブロックを作り、ウェブを組み立てていました。
でも、このコンポーネントライブラリを使えば、自分たちでブロックを組み立てずにウェブを作ることができ、
見た目のデザインの統一性と、時間の短縮が会社全体でできる、という利点があるのです。
プロジェクトに入れてもらいたかったら、自己アピールと根回しが必要?
プロジェクトの話が出てきたのは1年前、直属の上司ではなくその上の上司から「うちの会社でコンポーネントライブラリを作るとしたら、どうやって作ったらいいか知ってる?」と聞かれます。
正直確かな答えはその時言えず、会社内の知り合いの別のディベロッパーに相談して、
結局その人主体で話が進み始めました。
そして実際にプロジェクトに誰が参加するかという段階で、私のチームで人が足りなくなるし、20%くらいしかこのプロジェクトで働けないなら意味がないからとかそんな理由で
一旦私の名前が外されます。
ですが、私は1週間に1日でいいからメンバーに入れて欲しいと、直属の上司とその上の上司に別々に話をして、直談判しました。
- もし私がプロジェクトに参加してら、実際に作ったコンポーネントを一番に使って直接意見が言える
- 私にはデザイナーの経験があるため、デザイナーとプログラマーの橋渡しになれる
- 20パーセントと言えども、もし他のディベロッパーが風邪や休暇で穴が空いたらその仕事をカバーできる
- そして、何よりも私がやりたい、というその熱意
言いたいことは言ったし、と諦めて数時間後、直属の上司が話があると言って来てくれて、無事にプロジェクトに参加することになりました。直属の上司が私のやる気を無駄にしてはいけないと、その上の上司を説得してくれた様です。
歳をとってくると段々怖いものがなくなってくるのかも知れません。やっぱりやりたいならやりたいって言ったら、誰かが応援してくれるんだなと強くその時思いました。
プロジェクト開始。そのプロセスについて
一番最初に決めたのは他の部署の人たちも閲覧できるようにするためのサイトのドメイン名を決める。
デザイナーとの会議。どのコンポーネントから作り始めるか。デザイナーとディベロッパーとの意思疎通をスムーズにするためにはどうしたらいいか。
コードのリポジトリを作る。
私たちはTurborepoをベースにモノレポを作ることに決めました。
将来的にもしかしたらReactだけではなく、他のFrameworkを使うかも知れないということも見越したからです。
実際にコンポーネントをまとめるフォルダ
storybookを使って実際にコンポーネントを使用例を集めたフォルダ
そして、Next.jsのフォルダ とRemixのフォルダを作りました。
メンバーは私の他に3人のフロントエンドディベロッパー。1人は100パーセント、私ともう一人は20パーセント、一人は50パーセントで仕事をします。
知識も経験も違うし、そして普段は働いているチームも違う、4人が週一回金曜日だけ集まります。
プロジェクトスタートしてもうすぐ1年ですが、たかが1週間に一回とはいえ
普段のチームでは私の間違いを指摘してくれるフロントエンドの同僚がいないためとっても刺激のある金曜日になっています。