10만명 규모의 회사에서는 단위 테스트나 코드 리뷰도 없고 QA에만 의존하는데 이게 "효과적인" 방법이에요!
많은 중국 해외 기업들이 해외 시장을 빠르게 점유하고 있습니다. 예를 들어, 2021년에 TikTok은 미국의 Alphabet이 소유한 최초의 리더인 Google을 제치고 세계에서 가장 많이 방문한 인터넷 웹사이트가 되었습니다.
중국인이 만든 인터넷 플랫폼은 항상 세계를 지배해왔던 미국 플랫폼을 능가했습니다. 이는 매우 실질적이고 상징적인 의미의 발전입니다.
동시에 중국 기술 기업의 영향력이 날로 증가함에 따라 많은 사람들이 중국 기업의 근무 문화에 대해 궁금해하고 이러한 성공의 원동력이 무엇인지 알고 싶어합니다.
최근 미국 내 중국 기업(TikTok)에서 1년 이상 근무한 중국계 미국인(이전에는 Snapchat 및 Facebook에서 근무)이 YouTube에 'TikTok에서 일하는 데 대한 5가지 미친 점(왜? 우리는 PM과 엔지니어링 일을 그만뒀다)”라며 중국 기업에서 배운 경험을 다섯 가지 측면으로 요약했다.
YouTube 地址: https://www.youtube.com/watch?v=RNUrZFkHXlo
그의 견해는 중국과 미국 또는 중국 기술에 관심이 있는 많은 트위터 사람들의 관심을 끌었습니다. 네티즌들은 이 게시물이 중국과 미국 간의 공학 문화의 차이를 정확하게 설명하고 있다고 믿습니다.
첫 번째 요점: 많은 서구 회사들이 단위 테스트를 작성하고 있으며 이것이 매우 기본적인 것임을 모두가 알고 있습니다. 하지만 여기 중국 엔지니어들은 단위 테스트를 작성할 필요가 없습니다! 모든 코드 커밋은 QA 부서의 수동 테스트에 의존하며 팀은 각 코드 커밋을 커밋하기 전에 수동으로 테스트합니다.
이것이 완전히 미친 짓이라고 생각할 수도 있습니다. 단위 테스트를 작성해 보는 것은 어떨까요? 실제로 테스트를 위해 QA를 사용한다는 것은 엔지니어가 기능에 집중하고 신속하게 시작해야 하는 반면 테스트 작성은 전적으로 QA에 맡겨진다는 것을 의미합니다.
그리고 또 다른 충격적인 점은 병합 요청에도 승인이 필요하지 않다는 것입니다. 10만 명 규모의 회사(소규모 스타트업이 아님)에서는 단위 테스트도 코드 리뷰도 없이 QA에만 의존하는데 이것이 '효과적인' 방법입니다! 큰 정전은 발생하지 않았습니다.
중국 기업은 더 많은 제품 팀을 보유하는 경향이 있으며 비즈니스 성장을 추진하기 위해 운영 팀에 의존하는 경향이 있습니다. 이는 미국의 수동적이고 데이터 중심 성장 아이디어와 다릅니다. 제가 느낀 중국과 미국 기술 기업의 가장 큰 차이점은 중국 기업이 인력에 대한 의존도가 더 높다는 점입니다. 이러한 장점은 중국 기업이 새로운 시장을 빠르게 선점할 수 있는 핵심 이유이기도 합니다.
두 번째 포인트: 중국 기업에서는 확장성이 너무 떨어지기 때문에 일대일 회의가 거의 없습니다. 각 팀 내에는 추가적인 세분화가 거의 없으므로 더 많은 동료와의 상호 작용이 필요합니다. 나는 종종 90분 이상 지속되고 60명 이상의 사람들이 동시에 참여하는 전형적인 하향식 회의를 봅니다. 대부분의 경우 한 사람이 앞에서 말하고 나머지는 회의 자료를 살펴봅니다. 유럽과 미국 기업에서 흔히 볼 수 있는 공개 대화나 토론은 거의 없습니다.
세 번째 요점: 헤드헌터의 밀렵을 방지하기 위해 여기에는 명확한 조직 구조 시스템이 발표되지 않았습니다. 조직 구조는 매우 수평적입니다. 일부 엔지니어링 관리자는 200개가 넘는 성과 검토 보고서(부서 없이!)를 처리해야 하고 일부 보고서 제출자는 직속 상사가 어떻게 생겼는지조차 모릅니다.
네번째 포인트: 중국 기업은 프로세스나 실행 면에서 별로 똥이 없습니다. 다들 머리 숙이고 일하느라 바빠서 가십을 퍼뜨리거나 도덕적인 판단을 내리는 일이 거의 없습니다. 반면 중국 기업은 프로세스 설계가 충분히 성숙되지 않았습니다. 문서화 및 개선 팀의 동료들은 아무리 잘해도 동기를 부여하기가 어렵습니다. 아무도 엔지니어의 코드를 검토하지 않습니다.
포인트 5: 일과 삶의 균형 측면에서 미국 팀은 996이 필요하지 않지만 중국 시간대에 적응해야 합니다. 정말 힘들고, 제가 상대했던 PM들이 모두 1년 만에 떠나는 것이 이직의 주된 이유이기도 합니다.
중국의 STEM(과학, 기술, 공학, 수학) 박사 학위 수는 미국의 4배이지만 기술 직위는 미국보다 적기 때문에 경쟁률이 미국보다 높습니다. 국가 사람들은 이러한 상황을 "내부 롤"이라고 부릅니다. 중국 동료들은 기술 우위를 잃고 사회 발전에 뒤쳐질 것을 두려워해 엄청난 업무 에너지를 터뜨릴 수 있다.
휴먼 QA에 대해 이야기해보자
최근 몇 년간 중국과 미국은 기술과 인터넷 혁신 분야에서 서로 보조를 맞춰왔다고 할 수 있습니다. 이는 적어도 경쟁에서 특정 이점이 있음을 보여줍니다.
그러나 루카스의 설명을 보면 중국과 미국의 소프트웨어 개발 프로세스에서 몇 가지 차이점을 더 확인할 수 있습니다. 예를 들어, 미국 기업은 소프트웨어 개발 시 기술 문서 및 사용 문서의 세부 사양에 큰 관심을 기울이고, 코드 제출 및 검토 프로세스에 중점을 두고 있으며, 단위 테스트에도 특별한 관심을 기울입니다. 인력에 의존하지 않고 개발에 의존합니다. 최종 품질을 보장하는 프로세스.
인터넷 회사의 등장으로 인해 많은 소프트웨어 설계, 개발 및 출시 모델이 바뀌었습니다.
단위 테스트 측면에서 보면 전통적인 개발 프로세스에서 일반적으로 QA(품질 보증)는 프로그램 블랙박스 테스트를 담당하고 인터페이스 호출 시 특정 매개변수를 전달한 다음 인터페이스 응답 값이 특정 기대치를 충족하는지 확인합니다. . 단위 테스트는 일종의 화이트박스 테스트로, 테스터가 테스트 중인 프로그램의 구조를 이해하고 프로그램의 각 분기 논리를 검증하기 위한 테스트 케이스를 구성해야 합니다.
분명히 후자가 더 까다롭고, 블랙박스 테스트처럼 쌓인 인력에 의존해서는 빠르게 작업을 완료하는 것이 불가능하므로 단위 테스트로 인해 배송이 느려집니다. 릴리스 주기를 가속화하기 위해 업무 분업이 점진적으로 바뀌었습니다. 개발자는 기능 생성에 집중하는 반면, 비즈니스 리더는 제공에 집중하고 개발자의 테스트 작업은 무시됩니다.
개발 및 QA 테스트는 오랫동안 관심을 받아온 고전적인 주제입니다. 회사마다 방법이 다릅니다. 이 시점에서 중국과 미국 소프트웨어 개발 팀의 차이는 상당히 큽니다. Google의 테스트 책임자인 James Whittaker는 2011년에 Google에 "거대한" 테스트 부서가 없으며 대신 일부 테스트 작업이 개발자에게 위임되었다고 말했습니다. James는 "Google 테스트 방법" 기사에서 다음과 같이 썼습니다.
"테스트와 개발은 동시에 이루어집니다. 몇 가지 코드를 작성하고 바로 테스트하고 빌드하세요. 그런 다음 더 많은 코드를 작성하고 계속 테스트하세요. 코딩 또는 코딩 전 테스트는 별도의 프로세스가 아니며 개발의 일부입니다.품질은 테스트와 동일하지 않습니다. 품질은 테스트가 아닌 개발에서 나옵니다."
Google에서 테스터는 주로 테스트를 위해 "개발자가 자동화된 프레임워크 및 관련 프로세스를 갖추고 있는지 확인"합니다. 개발자가 다른 사람에게 의존하는 문제를 해결하기 위한 핵심 아이디어는 팀에 많은 수의 테스터를 두는 것이 아닙니다. 10여년 전만 해도 구글의 개발과 테스트 비율은 10:1이었고, 나중에는 "Go to QA"라는 슬로건을 외치기도 했습니다. "QA 부서가 죽은 날"이라는 기사에서 Google 전문가들은 단위 테스트를 QA 킬러로 간주하기도 합니다.
단위 테스트는 특정 코드 조각이 제대로 작동하고 소프트웨어에 적합한지 확인하기 위해 테스트하는 방법입니다. 퍼즐. 단위 테스트를 통해 코드의 90% 이상을 확인할 수 있다는 증거가 있으며, QA의 수동 테스트 도구와 달리 적절하게 구축된 자동화된 단위 테스트는 코드베이스와 함께 발전하여 코드를 실시간으로 테스트할 수 있습니다.
Google은 테스트 책임이 개발자에게 이전되면 개발자가 더 깔끔한 코드를 작성하고 결함이 적은 고품질 소프트웨어를 구축할 것이라고 믿습니다. 이는 모두 품질 저하 없이 비용을 절감하기 위해 회사가 어떻게 조직되어 있는지에 달려 있습니다.
2017년, 구글은 “자동화된 테스트 기술보다 엔지니어링 효율성 향상에 더 관심을 갖는다”는 이유로 10년 동안 개최된 테스트 기술 컨퍼런스인 GTAC를 취소했다고 발표했습니다. 실제로 엔지니어링 효율성의 구현은 일반적으로 "개발자가 개발 작업을 완료한 것을 기반으로 테스트, 온라인, 운영 및 유지 관리의 모든 작업을 수행해야 한다"는 사실에 반영되어 개발자의 작업에 필요한 모든 전체 링크를 제공합니다. "원스톱" 작업 도로 툴체인 지원.
하지만 이전에 Google이 옹호했던 방식은 전적으로 개발에 의존하여 품질을 보장하는 방식은 Lucas가 언급한 "QA에 대한 의존"과 정반대인 것 같습니다.
국내 인터넷 기업은 최근 몇 년간 급속도로 성장했습니다. 2018년 초 Mary Meeker의 연례 인터넷 보고서에서 중국은 시가총액/가치 평가 상위 20개 인터넷 기업 중 절반을 차지했습니다. 국내 인터넷 기업은 비즈니스 모델의 혁신을 강조하고 있으며, 소프트웨어 개발 프로세스는 기존 소프트웨어에 비해 약간의 변화를 겪기 시작했습니다. 예를 들어, 문제가 없는 것보다 반복 속도가 더 중요합니다. 문제가 발생하면 가능한 한 빨리 찾아서 복구할 수 있으며, 영향을 줄이는 것이 일정에 맞춰 배송되는 것보다 더 중요합니다. 가장 빠른 반복 속도를 개발한 다음 이를 결정하기 위해 사용자 피드백을 수집합니다. 제품의 기능을 변경할지 또는 어떻게 변경할지, 배송이 지연될 수 있는 "테스트" 링크를 포기합니다...
단지 저희로서는 어렵습니다. 이러한 기술적 이점이 개선인지 아니면 모든 사람이 점진적으로 변화해야 하는 것인지 명확하게 알려줍니다. 아마도 유럽과 미국 소프트웨어 산업의 선진 관리 방법과 기술을 결합하고 중국 개발자의 장점과 전문성을 최대한 활용함으로써 전반적인 소프트웨어 개발 수준을 더 향상시킬 수 있을 것입니다.
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

Golang中的数据库测试技巧引言:在开发应用程序时,数据库测试是一个非常重要的环节。合适的测试方法可以帮助我们发现潜在的问题并确保数据库操作的正确性。本文将介绍Golang中的一些常用数据库测试技巧,并提供相应的代码示例。一、使用内存数据库进行测试在编写数据库相关的测试时,我们通常会面临一个问题:如何在不依赖外部数据库的情况下进行测试?这里我们可以使用内存

如何使用MTR进行MySQL数据库的可靠性测试?概述:MTR(MySQL测试运行器)是MySQL官方提供的一个测试工具,可以帮助开发人员进行MySQL数据库的功能和性能测试。在开发过程中,为了确保数据库的可靠性和稳定性,我们经常需要进行各种测试,而MTR提供了一种简单方便且可靠的方法来进行这些测试。步骤:安装MySQL测试运行器:首先,需要从MySQL官方网

如何使用Selenium进行Web自动化测试概述:Web自动化测试是现代软件开发过程中至关重要的一环。Selenium是一个强大的自动化测试工具,可以模拟用户在Web浏览器中的操作,实现自动化的测试流程。本文将介绍如何使用Selenium进行Web自动化测试,并附带代码示例,帮助读者快速上手。环境准备在开始之前,需要安装Selenium库和Web浏览器驱动程

在Web开发中,PHP是一种流行的语言,因此对于任何人来说,对PHP进行单元测试是一个必须掌握的技能。本文将介绍什么是PHP单元测试以及如何进行PHP单元测试。一、什么是PHP单元测试?PHP单元测试是指测试一个PHP应用程序的最小组成部分,也称为代码单元。这些代码单元可以是方法、类或一组类。PHP单元测试旨在确认每个代码单元都能按预期工作,并且能否正确地与

随着Web应用程序规模的不断扩大,PHP语言的应用也越来越广泛。在软件开发过程中,自动化测试可以大大提高开发效率和软件质量。而Jenkins是一个可扩展的开源自动化服务器,它能够自动执行软件构建、测试、部署等操作,今天我们来看一下在PHP开发中如何使用Jenkins进行自动化测试。一、Jenkins的安装和配置首先,我们需要在服务器上安

ChatGPT的出现,使中文社区意识到与国际领先水平的差距。近期,中文大模型研发如火如荼,但中文评价基准却很少。在OpenAIGPT系列/GooglePaLM系列/DeepMindChinchilla系列/AnthropicClaude系列的研发过程中,MMLU/MATH/BBH这三个数据集发挥了至关重要的作用,因为它们比较全面地覆盖了模型各个维度的能力。最值得注意的是MMLU这个数据集,它考虑了57个学科,从人文到社科到理工多个大类的综合知识能力。DeepMind的Gopher和Chinchi

如何使用Python进行软件安全测试随着互联网的发展,软件安全问题日益凸显,软件安全测试也成为了越来越重要的一项工作。而Python作为一种流行的脚本语言,具备简单易学、开发效率高的特点,因此被广泛用于软件安全测试领域。本文将介绍如何使用Python进行软件安全测试,帮助读者更好地应对软件安全挑战。首先,我们需要了解软件安全测试的基本概念和分类。软件安全测试

如何在命令行中测试MySQL连接的高并发性能?随着互联网应用的不断普及,数据库的高并发性能成为了很多需求的关注点之一。而MySQL作为一个流行的开源数据库,其高并发性能也是被广泛关注的。在测试MySQL连接的高并发性能之前,我们需要先明确一些概念和准备工作:并发连接:指的是同时有多个客户端与数据库建立连接,并且这些连接同时进行数据库操作。连接数限制:MySQ

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

뜨거운 주제



