私はスウェーデンの現地企業でソフトウェアエンジニアとして働いています。こちらで働いていて一番感心しているのが「スキルトランスファーの徹底」です。今回は少しスキルトランファーについて語ってみたいと思います。
スキルトランスファーとは、業務や知識を後輩や他のチームメンバーに引き継ぐことです。「特定の人だけができる作業」が減るので、業務が属人化しません。人の入れ替わりがあっても支障が出にくく、誰でも長期休暇を取りやすくなるなどのメリットがあります。
具体的にどんな業務がトランファーされているのか?
私はエンジニア歴2年弱くらいの新人ですが、他のチームメンバーと同じく以下の業務に携われます。
結構すごくないですか?本番環境に直接影響がある業務も自信を持って実行できます。これはスキルトランスファーが徹底しているカルチャーのおかげです。
実際に感じるスキルトランスファーのメリット
会社や製品にも寄るとは思いますが、日本で働いていた会社ではテックリードだけがこのような作業をしていました。結果として、テックリードがお休みのときは他の人がやろうと思っても
- 必要な権限・アクセスがない
- 普段からやっていないので勝手が分からない
という困った状況になっていました。テックリードは有給を取るタイミングを見計らわないといけなくて、残業も他の人と比べて極端に多い事態。でも今働いているスウェーデン企業では、普段からいろんな人が業務を行なっているので、誰が休んでも大丈夫です。実際に先月テックリードが1ヶ月不在でしたが、特に問題はありませんでした。
また、個人のスキルアップにもつながっています。仕事の幅が広がり、ソフトウェア開発の全体像も見えるようになって、エンジニアとしてレベルアップした気がしています。
どのようにスキルトランファーを行っているのか?
誰でも業務を実行できるようにするには、環境を整えることが大事だと感じます。実際、今働いているチームでは、
- 必要な権限はチーム全員付与されている
- 誰でもシンプルにできるように手順が自動化されている
- 丁寧なHow-toドキュメントがある
- 失敗したときのリカバリーシステムがある
このような環境が整っているので、どんなスキルセットの人でも少し慣れればすぐにできるようになります。例えば本番環境へのリリースはクリック一つで終わります。何かエラーが出たら、一つ前のバージョンにロールバックするのも簡単です。
ちなみに、このドキュメントや自動化に使用しているGitHub Actionsなどを作るのもチーム全体でやっています。裏で何が起きているのかまで全員が理解しているんです。ただ単に自動化されているものをクリックするだけだと、何かエラーが起きたときに対応できませんが、ちゃんと対応できるくらいの理解度があるので大丈夫です。
最近で一番感心したのが、DRPまでチーム全員ができる状況にしていたこと。データベースをバックアップから復旧させて他のリソースとつなげる作業を、チーム全員が行いました。
しかも
- このステップが複雑すぎるから他に方法がないか
- このステップをすると他の作業も合わせてやらないといけなくなる
などのディスカッションも行い、開発環境で実験して、実際にディザスタが起きたときに簡単に復旧できるようにDRPも改善しました。
実際にディザスタが起きたときは誰が対応しないといけないかは分かりませんし、ストレスもかかっている状況なので普段からやっていないことはできません。手順もできるだけシンプルにすることで失敗のリスクも減らしています。
また、普段からテックリードが「この作業するけど、一緒にやる?」と新しいことを吸収する機会をくれます。横で見るだけでも、何もしたことがないよりは理解が進むのでとても助かっています。(それにしてもこの声かけができるうちのテックリードは優秀です。)
スキルトランスファーが作るカルチャー
最後に、スキルトランスファーを徹底することで職場のカルチャーも良くなっている気がします。卵が先か鶏が先か、という話でもありますが。
- テックリードも含め、誰とでも対等にディスカッションができる
- 誰でもいつでも休める
- 自動化が進むので効率的
チーム全員が対等に意見を出し合うカルチャーがあると、ミスも減り、気づきも多いです。意見を出すことを求められるので、普段から「自分には関係ない業務の話だな」とはならず(日本の会社にいたときはよくありました)ちゃんと話を聞いて考えています。自分のスキルに自信を持てるようにもなりました。
スキルトランスファー、かなり大事です。