Skip to main content

In this article

Snykのエンジニアリング文化:チームを支え、前進させる価値観

著者
Headshot of Sergey Vasilkov

Sergey Vasilkov

2023年5月8日

0 分で読めます

Snykは創業以来、素晴らしく、明確に定義された文化を持つ会社です。成長を続けるなかで、部門や組織ごとに独自の文化を築く余地を残しつつ、私たちの核となる価値観を意識的に共有し、広めていきたいと考えています。そうすることで、Snykらしさを守り、新しいメンバーが円滑にチームに加われるよう支援できます。

エンジニアリング文化は会社の価値観を土台とし、ソフトウェアエンジニアが仕事を進めるなかで、意思決定や行動に影響する信念や価値観を加えたものです。ここでは、あらゆる動機、基準、ベストプラクティス、ツールの選択などを、明確に定義されたエンジニアリング文化へとまとめることができます。これにより、エンジニアリング文化を維持し、仲間のエンジニア全員に広めることができます。

Snykのエンジニアリング文化を通じて、ソフトウェアエンジニアの問題解決、イノベーション、コラボレーションへの取り組み方を形づくりたいと考えています。エンジニアが力を最大限に発揮できる環境をつくり、組織全体の成功を後押しします。Snykでは、エンジニアリング文化は会社全体の価値観に欠かせない要素だと考えています。私たちの価値観や優先事項をさらに強化し、優秀な人材の採用と定着にも役立ちます。

さらに、エンジニアリング文化を十分に文書化することで、次のような効果が得られると考えています。

  • 一貫性のない点を明らかにし、必要な議論を促す。

  • 文化をより予測しやすくする。

  • メンバーが行動しやすくなる(文化に沿っていて、誠意を持って行動していれば、大きな問題にはならない)。

  • エンジニアが同じ方向を向いて進めるようにする。

  • メンバー間の摩擦を減らす。

  • 文化に合う候補者を惹きつけ(合わない候補者を遠ざけ)る。

  • 新しいエンジニアのオンボーディングを支援し、共通の価値観や期待を築く。

Snykのエンジニアリング文化の定義

Snykには、組織全体に根づいた強固で明確な文化があります。互いに話すとき、価値観をよりどころにして認識を合わせ、注力すべきことを定めています。

  • One Team - コミュニティの力を大切にし、熱意と目的意識を持って協力し、大きな成果を生み出します。

  • 深く思いやる — 仲間、お客様、地球、そして私たちが暮らし働くコミュニティへの情熱をもってリードすることを誇りにしています。

  • Ship It - スピーディーに行動し、継続的なイノベーションを取り入れながら、お客様に成果を届けます。常に学び、改善を重ね、より良いものを目指します。

  • Think Bigger - コミュニティの力を大切にし、熱意と目的意識を持って協力し、大きな成果を生み出します。

  • Learn Always - 学びに終わりはなく、学び続けることが個人としても会社としても成長の原動力になると信じています。学び続けましょう。

これらの価値観は、さまざまな状況で実践できます。価値観に意識を向けることで、より成功に近づけると考えています。では、どうすればこれらの価値観を発展させ、すべてのエンジニアが認識を共有し、成功できるようにできるでしょうか。

エンジニアリング部門の各所からリーダーを集め、価値観を共有したうえで、Snykのエンジニアリングの素晴らしさについてブレインストーミングを行いました。核となる価値観をエンジニアリングの実践に結びつけ、文書化したのがSnyk Engineering Cultureです。この記事は、その内容をもとにしています。

One Team

コミュニティの力を大切にし、熱意と目的意識を持って協力し、大きな成果を生み出します。

私たちは積極的に情報を共有します

分散型の組織である私たちは、進捗、プロセス、課題などを詳しく共有します。コミュニケーション、ドキュメント、情報共有のベストプラクティスもその一環です。たとえば、次のような取り組みを行っています。

  • 求められる前に、プロジェクトの進捗や最新情報を定期的に共有する。

  • 新機能や開発中の機能をデモする。

  • 誰でも見られるように、定期的に動画を録画して共有する。

  • 優れたドキュメント作成やテクニカルライティングのベストプラクティスを広める、技術ドキュメントのギルドを設ける。

定期的にフィードバックを伝え、受け取ります

メンバーには、頻繁にレビューを行い、同僚やリーダーからフィードバックを求めるよう促しています。また、フィードバックを活用し、そこから学ぶ方法も心得ています。フィードバックは贈り物です。そのことを意識して、いつでも伝え、受け止めています。フィードバックを促すために、年次・四半期・不定期のレビュー、非公開の1対1でのフィードバック、Slackの公開感謝チャンネルを設けています。

一人きりで仕事をすることはありません

意思決定、難しいタスクや簡単なタスクの解決、インシデント対応など、いつでも支えてくれる誰かがいます。メンバーは、他の人に協力を求めることを恐れたり、恥ずかしがったりしません。私たちは積極的に協力し、One Teamの価値観に沿って互いに頼り合うことを推奨しています。

たとえば、多くのチームがペアプログラミング、モブプログラミング、グループプログラミングを実践し、互いに支え合い、集中力を保ちながら、最善の解決策を導き出しています。

責任を追及しない文化があります

私たちの取り組みと、それに対する対応、成長、学びには、全員が関わっています。誰がやったのかを追及する振り返りよりも、こうした姿勢のほうが重要です。問題を話し合うときは、常に改善と今後の対応に焦点を当てます。

他の人の仕事への感謝を、率直に伝えます

Slackの専用チャンネル「#appreciation」を含め、公開のコミュニケーションチャンネルでいつも感謝の気持ちを伝えています。

Care deeply

仲間、お客様、地球、そして私たちが暮らし働くコミュニティへの情熱をもってリードすることを誇りにしています。

品質と非機能要件を重視します

お客様に価値を届ける際は、明示されていない要件にも配慮します。たとえば、使いやすさ、信頼性、テスト容易性、効率性、そして本番環境に展開できる状態かどうかを考慮します。具体的には、次のように取り組みます。

  • 問題を隠さず、修正する

  • 機能に対して適切な量のテストを行う

  • 適切なメトリクス、ダッシュボード、アラートを用意する

  • 自分たちが開発した製品や機能を社内で使う(いわゆるドッグフーディング)

仕事が倫理に及ぼす影響を考慮します

仕事を進めるうえで、社会に対する倫理的な責任を常に意識し、要件にも倫理的な観点を取り入れるよう努めています。

  • UXのアクセシビリティ要件など、支援を必要とするコミュニティに価値をもたらす要件を考慮します。

  • 適用される規制に従ってデータを取り扱い、データガバナンスを重視します。

  • 人々に何かへの登録を強要したり、だましたりするような、誤解を招くデザインパターンは採用しません。

  • エンジニアには、倫理に反する可能性のある行為について懸念を表明する責任があります。報復を恐れることなく、安心して声を上げられる環境を整えています。

お客様を第一に考えます

お客様の課題はどれも重要です。お客様や顧客対応の最前線にいるチームを支援することは、私たちにとって欠かせない仕事です。

  • 修正を迅速に進めるため、エンジニアがお客様とのデバッグ通話に参加します。

  • 課題を明確に把握し、機能開発とあわせて優先順位を決めます。

  • 新機能の開発にあたっては、ユーザーの直接的なニーズやユースケースに基づいて設計できるよう、ユーザーリサーチを行います。

交流の機会をつくります(強制はしません)

交流が好きな人には、より多く交流できる機会を提供します。ただし、誰もが交流を望んでいるわけではないため、参加を強制しません。気軽に参加できるSlackチャンネルやドーナツ企画のチャンネル、チームで楽しむ時間、交流イベント、ハッピーアワーなど、オンライン・オフラインを問わずさまざまな機会を用意しています。

一人ひとり、その日の状況や経験が異なることを心に留めます

Snykは、複数のタイムゾーンにまたがる環境での業務や分散型チームの運営に慣れています。育児や通院などの予定を含め、メンバーのカレンダーを尊重します。また、他のタイムゾーンにいるメンバーへの会議設定やSlackの返信を期待しないなど、それぞれのタイムゾーンにも配慮します。さらに、「Timezones for managers and those being managed」という学習セッションも提供しています。

多様性、公平性、インクルージョン(DEI)を基本原則として重視します

違いを受け入れ、一体感を保ち、誰もが職場でありのままの自分でいられるよう互いに力づける、Snykのインクルーシブな文化を強化しています。社会的に疎外されているさまざまなコミュニティを支援するSnyk Resource Groups(SRGs)を設け、社内のMosaic@Snykの取り組みを通じて、インクルーシブな文化の強化にも努めています。

Ship It

スピーディーに行動し、継続的なイノベーションを取り入れながら、お客様に成果を届けます。常に学び、改善を重ね、より良いものを目指します。

機能を小さな単位に分けて開発します

どの仕事も、ユーザーを中心に据えた明確な成果を念頭に置いて始めます。成果はスタック全体にわたるもので、将来必要となる作業のリスクを減らすものであるべきです。反復的な開発を行い、早い段階でフィードバックを得ます。

おすすめの資料: Marshmallow Challenge、Innovation Games: Creating Breakthrough Products Through Collaborative Play、Mark Finnern | Any significantly advanced work is indistinguishable from play、Visible Architectures、How Big Tech Runs Tech Projects and the Curious Absence of Scrum

チームが自分たちのプロセスを自由に選べます

リリースに役立つプロセスなら、XP、カンバン、Shape Up、スクラムなど、自由に選べます。同時に、チームのために機能するよう、共通の枠組みのなかで自由に進められます。ただし、チームはある程度グループ全体との足並みをそろえる必要があります。グループ内のチーム同士で計画を立て、依存関係を明らかにし、短期目標について連携できるようにします。

たとえば、XPを採用するチーム(スプリントを行わず、ストーリーポイントも設定しない)もあれば、Shape Upを採用するグループもあります。また、Infraではコミュニケーションと意思決定に1-pager/6-pagerモデルを使っています。

「完了の定義」に沿って、作業の本当の完了を確認します

本当の完了とは、本番環境にリリースするだけでなく、実際に利用するユーザーや関係者の手に届くことです。「完了の定義」については、社内チャンネルで継続的に検討しています。

DevExを大切にし、支援するツールを開発・導入します

より良い方法を常に模索しています。そのため、新しいツールは提案、テスト、検証を経て、標準ツールとして導入できます。たとえば、Polaris、Jira、CircleCIはエンジニアが利用でき、サポートや新しいツールの追加について話し合うSlackチャンネルもあります。

Think Bigger

並外れた成果を生み出すという志を原動力に、限界を超え、世界を変えるソリューションを築きます。

自動化します

定型業務、繰り返しの多い作業、時間のかかる処理に、時間や労力を費やしません。

プロセスを見直します

長年そうしてきたというだけで、同じやり方に固執しません。会社にとって最善の方法になるよう、プロセスを工夫し、改善します。

チームの境界を越えて考えます

依存関係を把握して明らかにし、チーム内だけでなくグループの一員として行動します。上位の組織にも進捗を共有し、グループ全体からフィードバックを集め、「Xの仕組みを変えよう」といった大きなアイデアを促します。チームを越えたコラボレーションを楽しく促進するため、ハッカソンなどのイベントを開催し、皆が集まる機会をつくっています。

将来を見据えて設計し、今すぐ開発します

アーキテクチャや設計ではThink Biggerの視点を持ち、実装では小さな単位で開発して、段階的にスコープを広げることで、Think BiggerとShip Itのバランスを取ります。

Learn Always

オープンで好奇心旺盛な姿勢を大切にし、互いに学び合いながら、常に成長の機会を探します。

メンタリングやコーチングを推奨し、実践します

強いピアメンタリング文化に勝るものはありません。組織を急速に成長させるための競争優位性になります。その実現に向けて、#miyagi-academyや#mentorship-*のチャンネルを設け、知識を気軽に尋ね、共有しています。「How to be an effective educator」という学習セッションも提供しています。

Snyk Employee Exchangeプログラムを提供しています

反復を通じて改善するため、Employee Exchangeプログラムを開始しました。エンジニアリングチームのメンバーがスプリント単位で別のチームに移り、新しい技術を学び、新しいプロセスを経験し、One Teamとして成長できるプログラムです。

Snykerには、学習リソースの活用を勧めています

私たちは知識や学習、自己成長を大切にしています。Snykは、学習のための予定をカレンダーに確保し、その時間を尊重することを推奨しているほか、年間の教育予算やLearnerbly、Udemy、O’Reillyなどの学習リソースを提供し、学びへの投資を支援しています。

定期的に振り返りを行い、経験から学んでいます

多くのチームがスプリントやプロジェクトの振り返りを行っていますが、新しいプロセスや取り組みについても、早い段階で振り返りを実施し、変更、修正、改善できる点を見つけています。レビューやハックのプロセスは、すべて私たち自身のものです。

インシデントレビューを実施しています

インシデント発生後にレビューやポストモーテムを実施しています。これにより、インシデントへの対処方法と、同様のインシデントを将来防ぐ方法という2つの観点から改善できます。そのために、インシデントギルドと重大インシデント専任プロジェクトを設けています。

Snyk Schoolに参加しています

Snyk Schoolは、Snykerが主催する、魅力的で双方向性のあるフォーラムです。学習と成長に欠かせないテーマについて、さらに学ぶ機会を提供します。

成果をデモで共有しています

私たちは、実際に動くソフトウェアをデモすることで、技術的な変更を積極的に共有しています。仲間やサポート、ビジネスなど、対象に応じたさまざまなミーティングで成果や進捗を共有します。全社向けの隔週デモや月例デモコールもその一環です。

エンジニアリング職の役割を明確に定めています

役割を明確に定義することで、キャリアパスを通じた専門的・個人的な成長を後押しできます。エンジニアは現在の自分の立ち位置と、改善すべき点を把握できます。

まとめ

私たちの信念や実践をすべて文章にまとめたことで、世界各地で活躍する優秀なエンジニアたちと、より簡単に共有できるようになりました。学びながら内容を改善し(常に学び続ける!)、エンジニアが最善の判断を下せるよう支援できます。私たちの価値観とエンジニアリング文化に沿った判断なら、道を誤ることはほとんどありません。

文化は、最初は定義しにくいものです。文化とは、身につけて実践するものです。一歩引いて見つめると、仕事や問題への取り組み方を導く価値観が見えてきます。ぜひ試してみてください。チームが最大限の成果を上げるために、どのような価値観が大切だと思いますか?

カテゴリー:

続きを読む

Blog

Stadium Summer:Snyk Connect Fan Zone Tour

SnykのFan Zone Tourでは、8都市と3回のオンラインセッションで、AIセキュリティのワークショップやネットワーキング、楽しい競技を開催しました。参加者はスキルを磨き、アイデアを共有し、共に成長しました。

Blog

Snyk VulnBench JS 1.0:LLMは同じバグを2回見つけられるか?

Snyk VulnBench JS 1.0:300回の反復スキャンで、LLMのセキュリティ検出結果は実行ごとに異なる一方、SASTとモデルはそれぞれ異なる脆弱性の見落としを検出することが明らかに。

feature insights context
Blog

お客様と築くAIセキュリティ:Evoのデザインパートナープログラムから得た5つの教訓

SnykのEvoデザインパートナープログラムから得た5つの重要な教訓をご紹介します。AIの検出、リスクインテリジェンス、ポリシーの自動化によって、チームが生成AIを保護し、拡大するAI利用を大規模に統制する方法をご覧ください。