従業員数 10 万人の企業では、単体テストもコードレビューもなく、QA のみに頼っていますが、これが「効果的な」方法です。
多くの中国海外企業が急速に海外市場を占拠しています。たとえば、TikTokは2021年に、当初のリーダーである米国アルファベット傘下のGoogleを超え、世界で最もアクセス数の多いインターネットWebサイトとなった。
中国人が作ったインターネットプラットフォームは、常に世界を支配してきたアメリカのプラットフォームを超え、実質的かつ象徴的な意味を持つ発展である。
同時に、中国のテクノロジー企業の影響力が日に日に増大するにつれ、多くの人が中国企業の労働文化に興味を持ち、何がこの成功の原動力となっているのかを理解したいと考えています。
最近、米国の中国企業 (TikTok) で 1 年以上働いている中国系アメリカ人 (以前は Snapchat と Facebook で働いていた) が、YouTube に「働くことについての 5 つのおかしなこと」というビデオを投稿しました。 for Tiktok (なぜ私たちが PM とエンジニアリングの仕事を辞めたのか)』では、中国企業から学んだ経験を 5 つの側面にまとめています。
YouTube 地址: https://www.youtube.com/watch?v=RNUrZFkHXlo
彼の見解は、中国と米国、あるいは中国のテクノロジーに興味を持つ多くの人々を Twitter 上で惹きつけました。ネチズンは、この投稿がエンジニアリングの違いを正確に説明していると信じました。中国と米国の文化について、次の点を翻訳しました:
最初の点: 多くの西側企業が単体テストを作成しますが、これが非常に基本的なことであることは誰もが知っています。もの。しかし、ここの中国人エンジニアは単体テストを書く必要がありません。すべてのコードのコミットは QA 部門による手動テストに依存し、チームは各コードのコミットをコミットする前に手動でテストします。
これは完全にクレイジーだと思うかもしれませんが、単体テストを書いてみてはいかがでしょうか?実際、テストに QA を使用するということは、エンジニアが機能に集中して迅速に開始することが期待される一方、テストの作成は完全に QA に任せられることを意味します。
そしてもう 1 つの衝撃的なことは、コードのマージ リクエストには承認が必要ないことです。 10万人の会社(これは小さなスタートアップではありません)では、単体テストもコードレビューもなく、QAに頼るだけですが、これが「働く」方法です。大規模な停電は発生していません。
中国企業は、より多くの製品チームを抱え、ビジネスの成長を推進するために運用チームに依存する傾向が強いですが、これは米国の受動的でデータ主導型の成長の考え方とは異なります。私が気づいた中国とアメリカのテクノロジー企業の主な違いは、中国企業は人的資源への依存度が高いことであり、この利点が中国企業が新しい市場を迅速に占有できる主な理由でもあります。
2 点目: 中国企業では拡張性が低すぎるため、1 対 1 の会議はほとんど見られません。各チーム内ではそれ以上の細分化がほとんどないため、より多くの同僚とのやり取りが必要になります。 60 人以上が同時に参加し、90 分以上続く典型的なトップダウンの会議をよく目にします。ほとんどの場合、1 人が前で発言し、残りは会議資料に目を通します。欧米の企業によくあるような、オープンな話し合いや議論はほとんどありません。
3 番目のポイント: ヘッドハンターによる人材の引き抜きを防ぐために、ここでは明確な組織構造システムは発表されていません。組織構造は非常にフラットで、一部のエンジニアリング マネージャーは 200 件を超えるパフォーマンス レビュー レポート (部門なし!) を処理しなければならず、レポート提出者の中には直属の上司がどのような人物なのかさえ知らない人もいます。
4 番目のポイント: プロセスと実行の点では、中国企業では大したことは起こっておらず、誰もが頭を下げて仕事に忙しく、噂話や道徳的な判断をすることはほとんどありません。一方で、中国企業はプロセス設計において十分に成熟していません。文書化および改善チームの同僚は、どれだけうまくやってもやる気を引き出すのが難しいです。エンジニアのコードをレビューする人は誰もいません。
5 番目のポイント: ワークライフバランスの観点から、アメリカチームは 996 を必要としませんが、中国のタイムゾーンに適応する必要があります。それは本当に大変で、それが人員削減の主な原因でもあり、私が対応したPMは全員1年後に辞めてしまいました。
中国には米国の 4 倍の STEM (科学、技術、工学、数学) の博士号取得者がいますが、技術職の数は米国よりも少ないため、中国での競争は中国よりも高いです。アメリカ、誰もが考えるこの状況を「巻き込み」といいます。中国人の同僚は、自分たちが技術的な優位性を失い、社会の発展から取り残されるのではないかと恐れているため、膨大な仕事エネルギーを爆発させることができます。
人間のQAについて話しましょう
中国と米国は、この分野で互いに歩調を合わせてきたと言えます。近年のテクノロジーやインターネットの革新の分野で中国は世界的に発展しており、企業が市場をうまく掌握できれば、少なくとも競争において一定の優位性を持っていることを示すことになる。
しかし、ルーカス氏の説明からは、中国と米国のソフトウェア開発プロセスにおけるいくつかの違いもさらにわかります。例えば、アメリカ企業はソフトウェア開発において技術文書や利用文書の詳細な仕様に細心の注意を払い、コードの提出とレビュープロセスに重点を置き、単体テストにも細心の注意を払っており、人手に頼らず開発に依存しています。最終的な品質を確保するためのプロセス。
インターネット企業の台頭により、多くのソフトウェアの設計、開発、リリース モデルが変化しました。
単体テストに関して言えば、従来の開発プロセスでは、一般的に QA (品質保証) がプログラムのブラックボックス テストを担当し、インターフェイスを呼び出すときに決定されたパラメーターを渡し、インターフェイスの応答値が満たされていることを確認します。ある期待です。単体テストはホワイトボックス テストの一種で、プログラムの各分岐のロジックを検証するテスト ケースを構築するために、テスト担当者がテスト対象のプログラムの構造を理解する必要があります。
明らかに後者の方が難易度が高く、ブラックボックステストのようにマンパワーの蓄積に頼って迅速に作業を完了することは不可能であるため、単体テストは納期の遅れにつながります。リリース サイクルをスピードアップするために、業務の分業は徐々に変化し、開発者は機能の作成に集中し、ビジネス リーダーは配信に集中し、開発者のテスト作業は無視されています。
開発と QA テストは、長い間注目を集めてきた古典的なトピックです。企業ごとに手法が異なり、現時点では中国とアメリカのソフトウェア開発チームの違いは非常に大きいです。 Google はその一例で、テストディレクターの James Whittaker 氏は 2011 年に、Google には「大規模な」テスト部門はなく、テスト作業の一部は開発者に委任されていると述べました。 「How Google Tests」の中で、James は次のように書いています。「テストと開発は同時に行われます。コードを書いたら、すぐにテストしてビルドします。その後、さらにコードを書き、テストを続けます。さらに良いのは、コードを作成するとき、またはコードを作成する前にテストを計画することです。独立したプロセスではなく、開発の一部です。品質はテストと同じではありません。品質を確保するには、製品の場合、開発とテストは、相互に区別できなくなるまで密接に連携する必要があります。品質はテストではなく開発から生まれます。 "
Google では、テスターは主に「開発者が自動フレームワークと関連プロセスをテストできることを確認します」。開発者が他者に依存するという問題を解決するための重要なアイデアは、チームに多数のテスターを配置しないことです。 10 年以上前、Google の開発とテストの比率は 10:1 で、後には「Go to QA」というスローガンを叫ぶようになりました。 「QA 部門が死んだ日」という記事の中で、Google の専門家は、単体テストが QA キラーであるとさえ考えています:
単体テストは、コードの特定の部分をテストして、それが機能することを確認する方法です。そして、それはソフトウェアパズルに適合します。単体テストでコードの 90% 以上をチェックできるという証拠があり、QA の手動テスト ツールとは異なり、適切に構築された自動単体テストはコードベースに合わせて進化し、リアルタイムでコードをテストできます。
2017年、Googleは「自動テスト技術よりエンジニアリング効率の向上を重視している」という理由で10年間開催してきたテスト技術カンファレンスGTACの中止を発表しました。実際のエンジニアリング効率の実装は通常、「開発者が開発作業を完了したことに基づいて、テスト、オンライン、運用と保守のすべての作業も引き受ける必要がある」という事実に反映されており、開発者向けに必要なすべての完全なリンクが提供されています。 「ワンストップ」作業道路ツールチェーンのサポート。 しかし、Googleが以前提唱していた、開発に全面的に依存して品質を確保する手法は、ルーカス氏が述べた「QAへの依存」とはまさに対極にあるように思えます。 国内のインターネット企業は近年急速に台頭しており、2018 年初頭のメアリー ミーカー氏の年次インターネット レポートでは、時価総額/評価額トップ 20 のインターネット企業の半分を中国が占めています。国内のインターネット企業はビジネスモデルの革新を重視しており、ソフトウェアの開発プロセスも従来のソフトウェアと比べて変化し始めています。たとえば、問題がないことよりも反復速度の方が重要です。問題が発生した場合は、できるだけ早く特定して迅速に修復でき、影響を軽減できます。スケジュールどおりに納品することよりもユーザーからのフィードバックの方が重要です。最速のイテレーション速度で開発し、ユーザーのフィードバックを収集してこれを決定する 製品の機能を変更するかどうか、またはどのように変更するか; 納期の遅れにつながる可能性のある「テスト」リンクを放棄する...ただ、それはただのことです。この技術的な利点が改善なのか、それとも全員が徐々に変更する必要があるのか、私たちには明確に言うのは困難です。おそらく、欧米のソフトウェア産業の高度な管理手法や技術を組み合わせ、中国開発者の利点や専門知識を最大限に活用することで、ソフトウェア開発全体のレベルをより向上させることができるでしょう。 プログラミング関連の知識について詳しくは、Google は、テストの責任が開発者に移れば、開発者はよりクリーンなコードを記述し、欠陥の少ない高品質のソフトウェアを構築できると考えています。すべては、品質を損なうことなくコストを削減するために会社がどのように組織されるかにかかっています。
プログラミング ビデオ
をご覧ください。 !