In einem Unternehmen mit 100.000 Mitarbeitern gibt es keine Unit-Tests oder Code-Reviews und wir verlassen uns nur auf die Qualitätssicherung, aber das ist der „effektive“ Weg!
Viele chinesische Auslandsunternehmen erobern schnell Märkte im Ausland. Beispielsweise wurde TikTok im Jahr 2021 die meistbesuchte Internet-Website der Welt und übertraf damit den ursprünglichen Spitzenreiter Google, das zu Alphabet aus den Vereinigten Staaten gehört.
Die von den Chinesen geschaffene Internetplattform hat die amerikanische Plattform, die schon immer die Welt dominiert hat, übertroffen. Dies ist eine Entwicklung von sehr substanzieller und symbolischer Bedeutung.
Da gleichzeitig der Einfluss chinesischer Technologieunternehmen von Tag zu Tag zunimmt, sind viele Menschen neugierig auf die Arbeitskultur chinesischer Unternehmen und möchten verstehen, was diesen Erfolg antreibt.
Kürzlich hat ein Chinesisch-Amerikaner, der mehr als ein Jahr für ein chinesisches Unternehmen in den USA (TikTok) gearbeitet hat (zuvor arbeitete er bei Snapchat und Facebook), auf YouTube ein Video mit dem Titel „5 verrückte Dinge über die Arbeit für TikTok (warum)“ gepostet Wir kündigten unsere PM- und Ingenieurjobs)“, fasste er die Erfahrungen, die er von chinesischen Unternehmen gemacht hatte, in fünf Aspekten zusammen.
YouTube 地址: https://www.youtube.com/watch?v=RNUrZFkHXlo
Seine Ansichten haben auf Twitter eine große Anzahl von Menschen angezogen, die sich für China und die Vereinigten Staaten oder chinesische Technologie interessieren. Netizens glauben, dass der Beitrag die Unterschiede in der Ingenieurskultur zwischen China und den Vereinigten Staaten genau beschreibt habe diese Ansichten übersetzt:
Erster Punkt: Viele westliche Unternehmen schreiben Unit-Tests, und jeder weiß, dass dies eine sehr grundlegende Sache ist. Aber die chinesischen Ingenieure hier müssen keine Unit-Tests schreiben! Jeder Code-Commit erfordert manuelle Tests durch die QA-Abteilung, und das Team testet jeden Code-Commit manuell, bevor er ihn festschreibt.
Sie denken vielleicht, das ist völlig verrückt. Warum nicht Unit-Tests schreiben? Der Einsatz der Qualitätssicherung zum Testen bedeutet eigentlich, dass von Ingenieuren erwartet wird, dass sie sich auf die Funktionalität konzentrieren und schnell beginnen, während das Schreiben von Tests vollständig der Qualitätssicherung überlassen wird.
Und eine weitere schockierende Sache ist, dass Zusammenführungsanträge ebenfalls keiner Genehmigung bedürfen. In einem Unternehmen mit 100.000 Mitarbeitern (dies ist kein kleines Start-up) gibt es keine Unit-Tests und keine Codeüberprüfungen, sondern verlässt sich nur auf die Qualitätssicherung, aber das ist der „effektive“ Weg! Es gab keine größeren Ausfälle.
Chinesische Unternehmen verfügen tendenziell über mehr Produktteams und sind eher geneigt, sich auf Betriebsteams zu verlassen, um das Geschäftswachstum voranzutreiben. Dies unterscheidet sich von der passiven und datengesteuerten Wachstumsidee in den Vereinigten Staaten. Der Hauptunterschied zwischen chinesischen und amerikanischen Technologieunternehmen besteht darin, dass chinesische Unternehmen stärker auf Arbeitskräfte angewiesen sind. Dieser Vorteil ist auch der Hauptgrund dafür, dass chinesische Unternehmen schnell neue Märkte erobern können.
Zweiter Punkt: In chinesischen Unternehmen kommt es selten zu Einzelgesprächen, da die Skalierbarkeit zu schlecht ist. Innerhalb jedes Teams gibt es kaum eine weitere Segmentierung, sodass die Interaktion mit mehr Kollegen erforderlich ist. Ich sehe oft ein typisches Top-Down-Meeting, das länger als 90 Minuten dauert und an dem mehr als 60 Personen gleichzeitig teilnehmen. In den meisten Fällen spricht eine Person vorne, während der Rest die Besprechungsunterlagen durchsieht. Es kommt selten zu offenen Gesprächen oder Diskussionen, wie sie in europäischen und amerikanischen Unternehmen üblich sind.
Der dritte Punkt: Um zu verhindern, dass Headhunter Menschen abwerben, wird hier auf eine klare Organisationsstruktur verzichtet. Die Organisationsstruktur ist sehr flach, einige technische Manager müssen mehr als 200 Leistungsbeurteilungsberichte bearbeiten (ohne Abteilung!), und einige Berichtseinreicher wissen nicht einmal, wie ihr direkter Vorgesetzter aussieht.
Der vierte Punkt: In Bezug auf Prozess und Ausführung gibt es in chinesischen Unternehmen nicht viel Scheiße. Jeder ist damit beschäftigt, mit gesenktem Kopf zu arbeiten und nur selten Klatsch zu verbreiten oder moralische Urteile zu fällen. Andererseits sind chinesische Unternehmen in der Prozessgestaltung noch nicht ausgereift genug. Kollegen im Dokumentations- und Verbesserungsteam sind schwer zu motivieren, egal wie gut sie arbeiten. Niemand überprüft den Code der Ingenieure.
Punkt 5: In Sachen Work-Life-Balance braucht das amerikanische Team nicht 996, sondern es ist erforderlich, sich an die chinesische Zeitzone anzupassen. Es ist wirklich schwer und es ist auch der Hauptgrund für Abwanderung. Alle PMs, mit denen ich zu tun hatte, sind nach einem Jahr gegangen.
Die Zahl der Doktoranden in MINT (Naturwissenschaften, Technik, Ingenieurwesen und Mathematik) ist in China viermal so hoch wie in den Vereinigten Staaten, aber es gibt weniger technische Stellen als in den Vereinigten Staaten, sodass die Konkurrenz hier größer ist als in den Vereinigten Staaten Staaten nennen diese Situation „interne Rolle“. Chinesische Kollegen haben Angst, ihre technologischen Vorteile zu verlieren und von der gesellschaftlichen Entwicklung abgehängt zu werden, sodass sie mit enormer Arbeitsenergie ausbrechen könnten.
Reden wir über menschliche Qualitätssicherung
Man kann sagen, dass China und die Vereinigten Staaten in den Bereichen Technologie und Internetinnovation in den letzten Jahren erfolgreich mithalten konnten Markt, was zumindest zeigt, dass sie gewisse Wettbewerbsvorteile haben.
Allerdings können wir anhand der Beschreibung von Lucas auch einige Unterschiede im Softwareentwicklungsprozess zwischen China und den Vereinigten Staaten erkennen. Amerikanische Unternehmen legen beispielsweise großen Wert auf die detaillierten Spezifikationen technischer Dokumente und Nutzungsdokumente in der Softwareentwicklung, konzentrieren sich auf Code-Einreichungs- und Überprüfungsprozesse und legen besonderen Wert auf Unit-Tests. Sie verlassen sich nicht auf Arbeitskräfte, sondern auf die Entwicklung Prozess, um die endgültige Qualität sicherzustellen.
Der Aufstieg von Internetunternehmen hat viele Software-Design-, Entwicklungs- und Release-Modelle verändert.
In Bezug auf Unit-Tests ist die Qualitätssicherung (QA) im traditionellen Entwicklungsprozess im Allgemeinen dafür verantwortlich, das Programm per Black-Box-Test zu testen, bestimmte Parameter beim Aufruf der Schnittstelle zu übergeben und dann zu überprüfen, ob der Schnittstellenantwortwert bestimmte Erwartungen erfüllt . Unit-Tests sind eine Art White-Box-Test, bei dem Tester die Struktur des zu testenden Programms verstehen müssen, um Testfälle zur Überprüfung der Logik jedes Programmzweigs zu erstellen.
Letzteres ist natürlich eine größere Herausforderung, und es ist unmöglich, die Arbeit schnell abzuschließen, indem man sich auf gestapelte Arbeitskräfte wie Black-Box-Tests verlässt, sodass Unit-Tests zu einer langsameren Lieferung führen. Um den Veröffentlichungszyklus zu beschleunigen, hat sich die Arbeitsteilung in unserer Praxis schrittweise geändert. Entwickler konzentrieren sich auf die Erstellung von Funktionen, während sich Unternehmensleiter auf die Bereitstellung konzentrieren und die Testarbeit der Entwickler ignoriert.
Entwicklungs- und QS-Tests sind ein klassisches Thema, das seit langem Aufmerksamkeit erregt. Verschiedene Unternehmen haben unterschiedliche Methoden. Derzeit sind die Unterschiede zwischen chinesischen und amerikanischen Softwareentwicklungsteams recht groß. Google ist ein Beispiel dafür, dass Google keine „riesige“ Testabteilung hat, sondern dass einige Testarbeiten an Entwickler delegiert werden. In dem Artikel „Wie Google testet“ schreibt James: „Testen und Entwickeln erfolgen gleichzeitig.“ Schreiben Sie dann mehr Code und testen Sie weiter Das Codieren oder vor dem Codieren ist kein separater Prozess, sondern ein Teil der Entwicklung. Wenn Sie ein qualitativ hochwertiges Produkt haben möchten, müssen Sie es eng miteinander verknüpfen Sie sind nicht voneinander zu unterscheiden. Qualität kommt von der Entwicklung, nicht vom Testen.“
Bei Google stellen Tester hauptsächlich „sicher, dass Entwickler automatisierte Frameworks und zugehörige Prozesse testen können“. Der Schlüsselgedanke zur Lösung des Problems, dass sich Entwickler auf andere verlassen, besteht darin, nicht zu viele Tester im Team zu haben. Vor mehr als zehn Jahren lag das Entwicklungs- und Testverhältnis bei Google bei 10:1 und später rief es sogar den Slogan „Go to QA“. Im Artikel „The Day the QA Department Died“ halten Google-Experten Unit-Tests sogar für einen QA-Killer:
Unit-Tests sind eine Möglichkeit, ein bestimmtes Stück Code zu testen, um sicherzustellen, dass es ordnungsgemäß funktioniert und in die Software passt Puzzle. Es gibt Hinweise darauf, dass Sie über 90 % Ihres Codes mit Unit-Tests überprüfen können, und im Gegensatz zu den manuellen Testtools der Qualitätssicherung können richtig erstellte, automatisierte Unit-Tests mit Ihrer Codebasis weiterentwickelt werden und Code in Echtzeit testen.
Im Jahr 2017 kündigte Google die Absage der GTAC an, einer Testtechnologiekonferenz, die seit zehn Jahren stattfand, mit der Begründung, dass „sie sich mehr um die Verbesserung der technischen Effizienz als um automatisierte Testtechnologie kümmern.“ Die praktische Umsetzung von Engineering-Effizienz spiegelt sich in der Regel darin wider, dass „Entwickler, die ihre Entwicklungsarbeit abschließen, auch alle Test-, Online-, Betriebs- und Wartungsarbeiten durchführen müssen“ und alle erforderlichen vollständigen Links für Entwickler bereitstellen. „One-Stop“-Work-Road-Toolchain-Unterstützung. Aber die Methode, die Google zuvor befürwortet hat und die ausschließlich auf Entwicklung basiert, um die Qualität sicherzustellen, scheint genau das Gegenteil der von Lucas erwähnten „Vertrauen auf Qualitätssicherung“ zu sein. Inländische Internetunternehmen sind in den letzten Jahren rasant gewachsen. Im jährlichen Internetbericht von Mary Meeker von Anfang 2018 machte China die Hälfte der Top-20-Internetunternehmen mit Marktkapitalisierung/-bewertung aus. Inländische Internetunternehmen legen Wert auf Innovationen bei Geschäftsmodellen, und der Softwareentwicklungsprozess hat im Vergleich zu herkömmlicher Software begonnen, einige Veränderungen zu erfahren. Beispielsweise ist die Iterationsgeschwindigkeit wichtiger als das Fehlen von Problemen. Wenn ein Problem auftritt, ist es wichtiger, es so schnell wie möglich zu lokalisieren, es schnell zu beheben und die Auswirkungen zu reduzieren schnellste Iterationsgeschwindigkeit zu entwickeln und dann Benutzerfeedback zu sammeln, um dies zu bestimmen. Ob oder wie die Funktion des Produkts geändert werden soll; Verzicht auf den „Test“-Link, der zu einer verzögerten Lieferung führen kann ... Es ist nur so, dass es für uns schwierig ist Machen Sie deutlich, ob es sich bei diesem technischen Vorteil um eine Verbesserung handelt oder um etwas, das eine schrittweise Änderung durch alle erfordert. Vielleicht können wir durch die Kombination fortschrittlicher Managementmethoden und -techniken in der europäischen und amerikanischen Softwareindustrie und die vollständige Nutzung der Vorteile und des Fachwissens chinesischer Entwickler das allgemeine Softwareentwicklungsniveau besser verbessern. Weitere Kenntnisse zum Thema Programmierung finden Sie unter:Google glaubt, dass Entwickler saubereren Code schreiben und qualitativ hochwertigere Software mit weniger Fehlern erstellen werden, wenn die Testverantwortung auf Entwickler verlagert wird. Es hängt alles davon ab, wie das Unternehmen organisiert ist, um die Kosten zu senken, ohne die Qualität zu beeinträchtigen.
Programmiervideos
! !