paint-brush
優れたエンジニアリング文化への究極のガイド@zevireinitz
3,136 測定値
3,136 測定値

優れたエンジニアリング文化への究極のガイド

Zevi Reinitz9m2023/04/17
Read on Terminal Reader

長すぎる; 読むには

それに直面しよう。開発者エクスペリエンスはバズワードです。つまり、内容や定義がほとんどなく、一般的な用語で多くのことが語られることを意味します。 これが、開発者エクスペリエンスの議論により多くのテクスチャと定義をもたらすためのイニシアチブである Dev-X プロジェクトを開始するよう促された理由です。各「エピソード」で、業界のリーダーに開発者の経験について 10 の質問をして、これらの特定のトピックに関する洞察と意見を集めます。その後、これらのディスカッションを公開し、コミュニティと共有します。 ほぼ 20 件のインタビューを行った結果、有益な方法でそれを集約し始め、いくつかの興味深い傾向と繰り返しのテーマを明らかにするのに十分な資料が現在あります。
featured image - 優れたエンジニアリング文化への究極のガイド
Zevi Reinitz HackerNoon profile picture

それに直面しよう。開発者エクスペリエンスはバズワードです。つまり、内容や定義がほとんどなく、一般的な用語で多く語られることを意味します。


だからこそ、私はDev-X プロジェクトを開始することに触発されました。これは、開発者エクスペリエンスの議論により多くのテクスチャと定義をもたらすためのイニシアチブです。各「エピソード」で、業界のリーダーに開発者の経験について 10 の質問をして、これらの特定のトピックに関する洞察と意見を集めます。その後、これらのディスカッションを公開し、コミュニティと共有します。


ほぼ 20 のインタビューで、有用な方法でそれを集約し始め、いくつかの興味深い傾向と繰り返されるテーマを明らかにするのに十分な資料が現在あります。

優れたエンジニアリング文化の作り方

これは、優れたエンジニアリング文化を構築するための究極のガイドです。 DevX Project のインタビューで私が尋ねた質問の 1 つは、「優れたエンジニアリング文化の重要な要素は何か」です。


これは重要な質問です。なぜなら、結局のところ、あなたの会社のすべてが、あなたが築いた文化によって、良くも悪くも影響を受けるからです。リラン・ハイモビッチが言うように、「文化は朝食の戦略を食べる。文化はチームが予測不可能な状況で予測可能な方法で行動することを可能にするからです。」


では、文化とは正確には何なのか?良い質問。私は意図的にその部分を解釈の余地を残しましたが、反応は同様に広範でした.一部のインタビュー対象者は、開発者自身に焦点を当てました。その他は、会社と会社の方針に焦点を当てていました。技術的または専門的なアドバイスを提供する人もいれば、対人関係やコミュニケーションのヒントを提供する人もいました。


そして、これが最初の、そしておそらく最も重要なポイントです。真に優れたエンジニアリング文化は、複数の項目を同時にバランスさせる必要があります。


詳細は組織や状況によって異なる場合がありますが、共通点は、3 次元の文化構築アプローチの必要性です。


そのため、DevX プロジェクトのインタビューから収集および編集された、優れたエンジニアリング文化を構築するためのこの開発者エクスペリエンス ガイドを楽しんでいただければ幸いです。


開発者の自律性

DevX プロジェクトのいくつかの機能は、開発者の自由と自律の文化を作ることの重要性を反映しています。


AxiomSeif Lotfy 氏は次のように述べています。彼は、主な動機付け要因として、自律性、習熟度、および目的を紹介しています。したがって、開発者に技術を習得するための自主性を与えると、彼らは素晴らしい文化を生み出す目的も開発します…そしてエンジニアにツールを強制しないでください。エンジニアに独自のツールを選択させるべきだと思います。彼らに自律性と所有権を与えます。」


Viktor Farcic は次のように付け加えています。多くの企業は、エンジニアを子供のように扱い、手を握って指示を出していると思います。これで通りを渡れるようになりました。停止する必要があります。今度は左に移動し、右に移動します。私にとって、これは開発者の間で創造性と学習能力を大幅に低下させる可能性があります。開発者としての私たちの仕事のほとんどは、物事を考えて理解することだと私は信じているので、これは壊滅的です.コードを書くのは簡単です。何を書くべきかがわかったら、少なくとも構文などの基本的な理解があると仮定すると、コードを書くことはプロセスの最も簡単な部分です。何をどのように書くべきかを考え出す - それは複雑な部分です。そして、このようなことを理解するのに十分な自由を人々に提供しないと、私たちが望んでいない結果になってしまいます。自分の考えや創造性。」

真の関係を築く

開発者の自律性の利点は、技術的な決定に限定されません。また、チーム メンバー間のより良い対人関係を促進するのにも役立ちます。 Seif Lotfy は、本物の関係を築くことのメリットを強調し、「スーパープロフェッショナルな関係を超えて、チームが自由に動き回り、自分らしくあり、ありのままの状態でお互いに感謝できるようにします」と説明しました。


自律性とは、人々が自分自身の最高の本物のバージョンになることを意味します。そして、これが起こると、チームと会社にプラスの結果をもたらすことがよくあります。


また、 Barak Schoster が言ったように、「一緒に仕事をするのが楽しくて賢い人を雇う」ことができれば、それも役に立ちます。

積極的な所有権と説明責任

開発者に自律性を与えることは、開発者が自分の仕事に対して積極的な所有権と説明責任を負う必要性と一致します。


リラン・ハイモビッチによると、オーナーシップと説明責任は、優れた文化において最も重要な要素の 2 つです。


Shawn “Swyx” Wang は、この所有権は「積極的な所有権」であるべきだと強調しました。この文脈では、それが重要だと思います。なぜなら、積極的に所有権を持っていなければ、多くのことは成し遂げられないからです。したがって、これは健全なエンジニアリング文化にとって非常に重要です。」

「なぜ?」を伝えて説明する

Seif Lotfy 氏は、開発者がコミュニケーションを取り、その理由を尋ねることが重要であると述べています。そうすれば、たとえ意見が一致しなくても、すべてを考慮して最善の道を見つけようとすることができます。


Amir Shevat は、これは誰かが説明を求めることに依存すべきではないと付け加えました。 「理由」を前もって提示する文化を構築する必要があります。


「あなたの知識を共有し、y ではなく x を選択した理由を説明してください。そうすれば、人々はあなたから学び、あなたのベスト プラクティスや独自の考え方を日常的に取り入れることができます。」

透明度

同様に重要な価値は透明性です。


Amir Shevat 氏は次のように説明しています。これは、エンジニアが全体像を見ることができる環境を作ることを意味します - 私たちがどこに向かっているのか、なぜ私たちがしていることをしているのか。開発者のためにこの種の環境を作成することで、開発者はより優れたコードを作成できるようになります。」

威厳

コミュニケーションと透明性が適切に維持されると、「誠実さ」という重要な文化要素も得られます。 Amir 氏は次のように述べています。プロセスはより良い方向に変化し、進化することができますし、そうすべきです。」


Wilco のShem Magnezi 氏も同様の見解を示しました。システムの構築には数え切れないほどの側面があり、決して完璧ではありませんが、改善する方法を常に模索する必要があります。」これは、コミュニケーション、透明性、および誠実さが優れたエンジニアリング文化に現れる方法です。

無責任

Swyx とJason Bosco はどちらも、非難の余地のないフィードバックと事後分析の文化が重要であると示唆しました。


Swyx の言葉を借りれば、「製品を出荷し、製品を維持している場合、製品は常に壊れることを忘れないでください。そのため、非難のない死後の文化を持つことも重要です。」


Amir Shevat 氏もこれに同意し、チームの全員がフィードバックを受け入れる必要があると付け加えました。


どうすれば責任ゼロの文化を実現できるでしょうか? Seif Lotfy によると、それは自分の根底にある仮定に取り組むことから始まります。これは、タイムゾーンやスケジュールが異なる分散したチームにとって特に重要です。」


他の全員が善意であると誰もが想定し、各チーム メンバーが責任を問われることなくフィードバックを受け入れる場合、チームは物事を効果的に遂行するのに有利な立場に立つことができます。


Earthly.devAdam Gordon Bell は次のように述べています。どちらも、共有された経験に基づいて時間をかけて構築されます。」

コラボレーション

驚くべきことではありませんが、エンジニアリング文化の重要な要素としてのコラボレーションは、私たちのいくつかのインタビューを通じて繰り返されたメッセージでした。


WixHila Fish は次のように述べています。


Amir Shevat 氏は次のように説明しています。私は個人的に、あまり協力的ではないエンジニアリング チームの一員でした。彼らにはすばらしく素晴らしいエンジニアがいましたが、彼らが何をしているかはあまり共有されていませんでした。人々が協力し、共有し、フィードバックを提供し、各人が取り組んでいることの間のインターフェースについて話し始めると、はるかに有益です。」


クラフトと製品への情熱


NorhflankTom Snelling氏は次のように述べています。私が投資したプロジェクトと投資していないプロジェクトの両方に取り組んできたので、士気 (および結果としてのアウトプット) の違いは驚くべきものです。エンジニアが自分の仕事に真剣に取り組んでいるとき、文化は 10 倍向上すると思います。あなたのプロジェクトに取り組みたい賢い人を雇ってください。」

プロフェッショナリズム

Amir Shevat 氏は、優れたエンジニアリング文化を生み出す上でのプロフェッショナリズムの重要性を次のように強調しています。これは仕事のあらゆる側面に当てはまります。技術的であることは素晴らしいことであり、必要でさえありますが、ビジネス マインドセットをトレーニングすることは、最も技術的なソリューションだけを優先するのではなく、達成に役立つソリューションを優先する文化を生み出すのに役立ちます。会社にとって最良の結果です。」


RoundforestGil Tayar 氏は次のように同意しています。自我はあまりありません。職人技と誇り。これらの要素はクリエイティブな環境を確立しますが、これらの要素がなければ、ポジティブで生産的な文化を作ることは困難です。」

優れたドキュメンテーション文化を築く

より技術的な観点から、Swyx は、チームがドキュメントに重点を置くようにアドバイスしました。言い換えれば、何かを実装する前に、それを設計し、提案を熟考し、全員と高レベルのものに同意するように努めるべきです。しかし、良い文化はこれをさらに一歩進めます。これは、誰もがドキュメントを受け取ったときに実際にドキュメントを読むことを意味します。そして、それは非常にまれです。したがって、優れたドキュメンテーション文化は、優れた文章と優れた読み物を意味し、設計上の問題や期待の不一致を遅かれ早かれ発見することができます。」

配信頻度

Amir Shevat 氏は、健全なデリバリー ケイデンスの価値を強調しました。


バラク・シュースター氏も同様に、チームに「イテレーション速度を最適化する」ことを奨励しました。


Jason Bosco 氏は次のように述べています。

謙虚

これは多くのインタビューで何らかの形で出てきましたが、 CircutIn Plain EnglishSunil Sandhu は次のように述べています。チーム メンバーは、他の人を助ける準備ができており、質問をするのがばかげていると誰も感じない環境を育む必要があります。」


ここで私ができるクリシェな答えはたくさんあると思いますが、ある程度は、これにより適切に答えることができる経験豊富な開発者がもっとたくさんいると感じています。最後に 1 つ申し上げたいのは、チームが使命志向であり、そのチーム全員が同じ賛美歌を歌っている場合、驚くべきことが起こる可能性があるということです。


Gil Tayar の言葉を借りれば、「私にとって、優れたエンジニアリング文化の重要な要素は、ナイスな人々です。自我はあまりありません。クラフトに対するプロフェッショナリズムと誇り。」

最後に

明らかに、優れたエンジニアは技術的能力の特定のベースラインを持っている必要があります。しかし、チームを構築して管理する場合、これらの追加要素によって、チームはお互いに高い基準を維持し、好奇心を持ち、前向きであり続け、継続的に改善に努めることができます。

それこそが、優れたエンジニアリング文化のすべてです。


ここに表示されているものが好きですか?注目されたいですか?その他の優れた機能については、DevX プロジェクトをチェックして、独自の開発者エクスペリエンスの知恵を共有するために応募してください。


ここにも掲載されています。