Wie schlimm kann es sein, wenn Sie als Programmierer nicht im Team arbeiten? [geschlossen]


17

Ich bin noch in der Schule und weiß, dass ich Probleme mit anderen Menschen habe.

Ich bin kein wütender, schüchterner oder anderer Mensch. Ich arbeite einfach gerne auf meine Art und Weise und mit meiner Meinung, während ich die anderer respektiere. Ich habe eine große Neugier und einen großen Wissensdurst, aber es fehlt mir an Übung und ich vermute, die Leute wollen nicht arbeiten mit mir, weil sie befürchten könnten, ich würde eine Art Moral reden. (Zum Beispiel habe ich angefangen, das Programmieren mit Linux anstelle von Windows zu lernen, auch wenn ich Windows häufig benutze. Und ich habe einen Mac).

Was passiert mit Programmierern, die kein Teamwork haben? Wo fangen die Probleme an? Kompensiert ein guter Programmierer wenigstens ein wenig? Ist es normal, dass ein Programmierer eine Vision von seiner Arbeit hat, anstatt nur das zu tun, was ihm gesagt wird?


17
In der heutigen Welt gibt es keinen Beruf, in dem Kommunikations- und Teamfähigkeit nicht geschätzt werden.
Fanatic23

2
Zugeben zu können, dass Sie ein Problem haben, ist der erste Schritt zur Lösung dieses Problems. Dies ist ein gutes Problem, das Sie erkennen müssen, bevor es zu spät ist!
Chris

Antworten:


16

Ihr Verhalten ist in Ihrem Alter ziemlich verbreitet. Ich war wie du.

Die gute Nachricht ist, dass es sich die meiste Zeit in die gute Richtung entwickelt. Sie lernen, sich in ein Team zu integrieren. Du wirst es lieben! Aber ich habe einige Leute getroffen, die es nicht geschafft haben und jetzt feststecken, ist Depression.

Je nach Führungsstil Ihres Unternehmens werden Sie entweder von Ihrem Team abgelehnt oder nach einer Weile einfach entlassen. Sie müssen also auf einige Schwierigkeiten vorbereitet sein.

Frankreichs gängigster Führungsstil basiert auf Angst und Bestrafung. Dies ist keine gute Nachricht für Sie, da dies Ihren Individualismus fördern wird. So wird es Ihr Verhalten fördern.

Das heißt, Sie wissen bereits, dass es ein Problem mit Ihnen gibt. Dies ist ein ziemlich guter Hinweis darauf, dass Sie alles haben, was Sie brauchen, um sich ohne externe Hilfe weiterzuentwickeln. Der erste Schritt ist bewusst zu sein. Der zweite, der schwierigste, handelt davon.


1
Ich habe beschlossen, in dieser Antwort nicht fett zu schreiben, weil ich Steven mag.

15

Kommt darauf an, was der Job verlangt. Manchmal haben Sie nicht einmal ein Team für bestimmte Aufgaben. Meistens haben Sie jedoch einen Manager.

Außerdem hilft ein Team dabei, Sie von Zeit zu Zeit daran zu erinnern, dass Sie Mistcode schreiben. :

Als Softwareentwickler sind Sie Ihr schlimmster Feind. Je früher du das merkst, desto besser wirst du dran sein. - Jeff Atwood

Ein Team macht es also einfacher, Dinge schneller zu lernen! Als Einzelgänger wirst du zum Einsiedler;)


2
+1 Hervorragend, um daran erinnert zu werden. Alleinige Entwickler stecken fest und vergessen, dass sie eigentlich nicht fantastisch sind.
Orbling

15

Was passiert mit Programmierern, die kein Teamwork haben?

Dann wird es schwierig, an Projekten zu arbeiten, die für einen einzelnen Programmierer zu groß sind. Schwierig für den Solo-Programmierer und schwierig für den Rest des Teams.

Wo fangen die Probleme an?

Alle möglichen Orte. Wir haben derzeit einen einzelnen Programmierer, der schlecht in der Arbeit als Teil eines Teams ist. Er neigt dazu, Abkürzungen zu machen, die sich negativ auf den Rest der Anwendung auswirken, da er sich zu sehr darauf konzentriert, den Fehler vor sich zu beheben. Oder schreiben Sie die neue Funktion so, dass sie nicht mit dem Rest der Anwendung kompatibel ist. Wir müssen die Dinge neu ordnen, damit jeder Code-Check-in von ihm vom Rest des Teams überprüft wird. Um ihn jedoch nicht herauszufiltern, überprüfen wir auch die Code-Check-Ins aller anderen, sodass wir zusammen mit der morgendlichen Statusbesprechung erst nach dem Mittagessen mit der Arbeit fertig sind. In unserem Büro bedeutet dies, dass 4 Personen jeden Tag einen halben Arbeitstag verlieren, weil ein Mitarbeiter bei der Teamarbeit mies ist. Ich kann nicht sagen, dass es eine Verbesserung gegenüber den vorherigen Abenteuern ist, weil wir zufällig einen Tag bis eine Woche verlieren könnten (in der Regel neue Bugs jagen) von seinen Check-Ins, die Dinge kaputt machen (wir nennen diese "Robstacles"). Einige der Korrekturen an seinem Code werden am Ende ein halbes Dutzend Fehler beheben, da die Anwendung verworren und chaotisch ist (meine Empfehlung anNuke es aus dem Orbit und fange von vorne an, weil das der einzige Weg ist, um sicher zu gehen, dass es nicht akzeptiert wurde.

Wenn wir in einer großzügigen Stimmung sind, nennen wir ihn einen "Head-Down-Programmierer". Er neigt dazu, auf die Tastatur zu schauen und sehr schnell zu tippen. Er achtet nicht darauf, was andere tun.

Kompensiert ein guter Programmierer wenigstens ein wenig?

Nein. Die meisten Programmierer, die schlechte Teamplayer sind, haben eine sehr hohe Meinung von ihren eigenen Fähigkeiten, und dies wird als Mahn-Krüger-Effekt bezeichnet . PDF von Papier.

Vielleicht: Der Solo-Programmierer müsste weitaus besser sein als der Rest des Teams. Dies bedeutet jedoch nur, dass niemand anders das behaupten kann, was er tut. und wenn das passiert, bedeutet das wahrscheinlich, dass der Solo-Programmierer nicht viel besser ist als der Rest des Teams - er (und es ist fast immer ein Typ) kann einfach besser alle zum Narren halten.

In der Entwicklung von Unternehmenssoftware ist das Unternehmen noch lange nach Ihrer Abreise präsent. Programme wurden höchstwahrscheinlich geschrieben, bevor Sie begonnen haben, und werden noch lange nach Ihrem Ableben gepflegt. Wenn Sie Dinge schreiben, die so speziell und erstaunlich sind, dass niemand sie verstehen kann, geraten Sie in die Situation, in der sich Naughty Dog befindet - ihr leitender Entwickler hat aufgehört, niemand versteht die proprietäre Programmiersprache, die der Typ geschrieben hat (und schrieb) Dinge in), so müssen sie jetzt alles auf C ++ umstellen .

Ist es normal, dass ein Programmierer eine Vision von seiner Arbeit hat, anstatt nur das zu tun, was ihm gesagt wird?

Es ist üblich - wie ein Stau oder Diabetes. Ich würde es nicht normal nennen. In der Unternehmenswelt gibt es viele andere Dinge zu beachten; Das starke Ego, das viele Entwickler haben, lässt den Entwickler denken, dass nichts anderes wichtig ist. Dieser "Mangel an Passform" und die mangelnde Berücksichtigung für den Rest des Geschäfts ist der Grund, warum so viele Manager-Typen zu dem Schluss kommen, dass es schwierig ist, mit Software-Entwicklern zu arbeiten.


Ja, ich habe bereits über diesen Effekt nachgedacht, ohne zu wissen, dass er gegenüber einem Wissenschaftler einen Namen hatte. Zu diesem Zeitpunkt wissen Sie nie, ob Sie ein zweifelhaftes Genie oder eine arrogante, dumme Person sind. Ich glaube nicht, dass ich arrogant bin, aber wenn ich denke, dass es auf dieser Welt viel Verwirrung und Dummheit gibt, weiß ich nicht, ob das bedeutet, arrogant zu sein. Ich weiß nur, dass ich nicht ausdrücklich erkläre, richtig zu sein, zumindest drücke ich Dinge durch Fragen aus, damit die Leute ihre Gedanken ausdrücken können. Wenn ich erfahre, dass verknüpfte Listen die ultimative Art von Datenstruktur sind, bin ich skeptisch, aber nicht arrogant.
jokoon

Es ist ein bisschen hart, Code-Reviews als Zeitverschwendung zu bezeichnen.
jfs

5

Es ist eine erlernbare Fähigkeit. Sie können jetzt lernen (indem Sie einfach versuchen, mit anderen zu arbeiten) oder auf die harte Tour im Job lernen. (Ich würde das erstere vorschlagen.)

Wenn Sie nicht mit anderen Menschen arbeiten können, können Sie keine großen Systeme bauen. Sie können auch nicht mit Menschen arbeiten, die schlauer sind als Sie, was bedeutet, dass Sie nicht so viel oder so schnell lernen können.


3

Ein guter Programmierer zu sein, wird ein wenig, aber nur ein wenig ausgleichen. In den sechzehn Jahren in der Branche konnten die besten Programmierer, mit denen ich zusammengearbeitet habe, mit den Leuten klarkommen - es war vielleicht nicht selbstverständlich für sie, aber sie haben es geschafft und es war eine absolute Schlüsselkompetenz. Diejenigen, die nicht toleriert werden konnten, aber ehrlich gesagt nicht viel mehr.

Für mich ist der Hauptbereich, in dem die Fähigkeit zum Arbeiten mit anderen ins Spiel kommt, bei Benutzern und Analysten. Es spielt keine Rolle, wie gut Sie codieren können, wenn Sie das Falsche codieren, und eine gute Zusammenarbeit mit den Leuten, die das Produkt definieren, ist der Schlüssel dazu.

Der erste Schritt könnte sein, ein bisschen mehr über sich selbst zu verstehen. Sie sagen, dass Sie froh sind, die Meinungen anderer zu respektieren, aber stimmt das wirklich? Wenn ja, warum implizieren Sie dann, dass Sie dazu neigen, moralische Positionen zu Themen einzunehmen (die eher das Gegenteil von der Achtung der Ansichten anderer sind)?

Im Allgemeinen geht es beim Umgang mit anderen eher darum, zu ignorieren, wer Recht und wer Unrecht hat (was in 80% der Situationen irrelevant ist oder nicht), und sich darauf zu konzentrieren, das zu tun, was das Projekt vorantreibt.


3

Professionelle Softwareentwicklung ist heute in erster Linie eine Teamleistung. Die beste Software entsteht durch das Teilen neuer Ideen und eine intensive Zusammenarbeit, ohne dass Sie sich allein fühlen. Das Cowboy-Codierideal ist ein bekanntes Hindernis für Teams. Tatsächlich ist es per Definition das genaue Gegenteil von Teamwork.

Ja, schlechte Teamfähigkeiten in einer Teamumgebung sind sehr schlecht. Aber wenn Sie ehrlich bereit sind, damit zu arbeiten, gibt es keinen Grund, warum Sie nicht irgendwann ein großartiger Team-Mitarbeiter sein werden (mit großartigen Programmierkenntnissen, um hochzufahren)!


3

Andere haben bereits das meiste von dem, was ich sagen wollte, behandelt, also füge ich Folgendes hinzu: Nur weil Sie eine Meinung oder Vision haben, heißt das nicht, dass Sie Recht haben oder dass Ihr Ansatz der beste ist. Es gibt eine Menge, die Sie von anderen lernen können, wenn Sie sich der Möglichkeit öffnen, dass auch diese eine Meinung und / oder Vision haben.

Bei Teamwork geht es darum, dass all diese Meinungen zu etwas zusammengefasst werden, das auf der kollektiven Erfahrung der beteiligten Personen aufbaut und Fehler behebt, die eine einzelne Person möglicherweise nicht berücksichtigt hat.

Das war eine der ersten Lektionen, die ich im Beruf gelernt habe, und danach wurde ich ein besserer Programmierer.


2

Wenn Sie nicht mit anderen zusammenarbeiten können und kein von Natur aus geborenes stellares Kodierungsgenie sind, blockieren Sie sich im Grunde genommen für die Arbeit an einem nicht trivialen Projekt, weil Sie für diese ein Team wollen, wenn nichts anderes als die Senkung des Busfaktors.

Wenn Sie keinen physischen Kontakt mögen, aber gut mit Telearbeit oder mit Open-Source-Mailinglisten arbeiten, müssen Sie sich auf diese Fähigkeiten spezialisieren, um so arbeiten zu können.


2

Leider kann dies ein Problem sein, da es selten vorkommt, dass Sie an großen Projekten arbeiten und nicht in einem Team arbeiten müssen. Selbst wenn Sie in Abhängigkeit voneinander an einem Projekt arbeiten, werden Sie in der Regel feststellen, dass Sie enger mit den Endbenutzern zusammenarbeiten müssen, was wiederum auf Teamarbeit zurückzuführen ist. Daher ist dies sehr wichtig.

Das heißt jedoch, wie andere bereits betont haben, dass dies (in gewissem Umfang) eine lernfähige Fähigkeit ist, und wenn Sie sich die Mühe geben. Es gibt im Allgemeinen einige Kurse, die Sie hier in den Vereinigten Staaten in größeren Städten besuchen können, um Führungsqualitäten zu entwickeln. Ein Teil davon, ein guter Führer zu sein, ist jedoch auch, ein guter Anhänger zu sein, so dass diese Fähigkeiten ebenfalls entwickelt werden. Ebenso ist die Fähigkeit, in der Öffentlichkeit effektiv zu kommunizieren, manchmal eine Fähigkeit, mit der die Menschen üben müssen, und hängt mit Teamfähigkeit zusammen, wird aber manchmal übergangen - jemand, der nicht effektiv kommunizieren kann, kann als kein "Teamplayer" bezeichnet werden, obwohl müssen nur ein bisschen an ihren Kommunikationsfähigkeiten arbeiten.

Ein großer Teil der Zusammenarbeit mit einem Team besteht jedoch darin, sich selbst zu kennen und sich mit sich selbst und mit anderen wohl zu fühlen. Manchmal schadet es also nicht, mit einem Psychologen oder Berater zu sprechen, um herauszufinden, ob es etwas gibt, das Sie verbessern können in Bezug auf die Arbeit mit anderen.

In Bezug auf Ihre gesamte Karriere in den USA kann der Ruf, "schwer zu arbeiten" oder "kein Teamplayer zu sein", sich äußerst nachteilig auf Ihre langfristigen Karrierechancen auswirken, und ich würde raten dass es in den meisten anderen Ländern das gleiche wäre. Es ist auch schwierig, diesen Ruf in Frage zu stellen, wenn er einmal etabliert ist, ohne in ein anderes Unternehmen oder eine andere Branche zu wechseln, je nachdem, in welchem ​​Bereich Sie tätig sind.


2

Da Sie ein guter Lerner sind, sollten Sie noch etwas lernen, das einige Leute bereits kennen.

  • Jeder ist anders und sie sind alle wertvoll.

Es gibt Zeiten, in denen man unabhängig ist, und es gibt Zeiten, in denen man an einem Strang zieht. Sie sind beide wichtig.

Seit Sie in der Schule sind, können Sie Ihre Neugierde ausüben und nach neuen und unterschiedlichen Wegen suchen, um Dinge zu tun. Das ist eine gute Sache.

Wenn Sie mit einem Software-Team zusammenarbeiten, können Sie Ihre guten Ideen einbringen. Einige werden akzeptiert. Einige werden nicht. Dann legt ihr alle eure Schultern ans Steuer und erledigt die Arbeit. Das ist auch gut so.

Meine Erfahrung mit Projekten zeigt, dass die Gruppenmoral zunächst gering ist, wenn die Leute immer noch versuchen, den Überblick zu behalten. Dann steigt die Moral stetig, wenn Fortschritte auf dem Weg zum Ziel gemacht werden. Gegen Ende ist es sehr hoch, da Ihr "Baby" "geboren" wird. Das wollen Sie nicht verpassen.


+1 Gegen Ende ist es sehr hoch, da Ihr "Baby" "geboren" wird. - Bei meinem letzten Projekt fühlte ich mich genau so :-).
Oliver Weiler

@ Helper: Ja. Was ich nicht gesagt habe ist, dass es wieder auf Tief geht, wenn Sie die nächste Phase beginnen :)
Mike Dunlavey

Aber diese kostbaren Momente sind der Grund, warum wir Programmierer sind, richtig :-)?
Oliver Weiler

2

Ich kann mir eine Reihe exzellenter Programmierer vorstellen, die (von vielen) als "ziemlich schwierig zu bearbeiten" eingestuft werden:

Ich denke, dass in dieser Branche eine ganze Menge von uns erwartet und davon ausgeht, dass Kompetenz und die Fähigkeit, unsere Kompetenz zu artikulieren, von entscheidender Bedeutung sind. Schließlich machen wir uns an die Arbeit, um einige Aufgaben zu erledigen, um Geld zu verdienen. Freunde zu finden ist zweitrangig.

Irgendwann in Ihrem Leben werden Sie eines von zwei Dingen erkennen:

  1. Sie sind in der Lage, so hinterhältig, zurückgezogen, asozial, zynisch oder unhöflich zu sein, wie Sie es möchten, denn trotz Ihres Verhaltens beenden Ihre Fähigkeiten (und Ihre Fähigkeit, Ihr Wissen zu artikulieren) alle Argumente.

  2. Sie sind genau wie alle anderen und müssen in der Lage sein, in einem Team zu arbeiten, während Sie es ertragen müssen, dass andere, deren Fähigkeiten und Fähigkeiten, Wissen zu artikulieren, die meisten Argumente beenden, sich zurückziehen, unsozial, zynisch und unhöflich verhalten.

Wenn Sie dies in Frage stellen, sind Sie der Meinung, dass es einen gewissen Wert hat, in einem Team einverstanden zu sein. Vielleicht ist es eine gute Ausrede, dies zu tun, um die Möglichkeit auszuloten.

Ich bin auch sehr wie du. Ich hasse Störungen. Ich habe fast fünf Jahre gebraucht, um zu lernen, wie man Menschen nicht unterbricht und entlässt. Ich habe auch in Teams gearbeitet, in denen ich in einem Monat mehr gelernt habe, als ich allein in einem Jahr hätte können. Ist es nicht seltsam, dass Sie nur Menschen in Ihrer Nähe haben möchten , die etwas Interessantes zu zeigen oder zu diskutieren haben?

Wenn Sie es noch nicht gesehen haben, schauen Sie sich den Film " Real Genius " an. Achten Sie besonders auf Lazlo Hollyfeld . Begeben Sie sich aufgeschlossen in ein Team und leihen Sie sich meinen Pyjama aus.


2

Es ist nichts Falsches daran, starke Meinungen darüber zu haben, wie die Dinge sein sollten. Jeder gute Programmierer hat viele davon. Sie müssen sich jedoch fragen: Warum schreibe ich diesen Code?

Wenn es zu Ihrer eigenen Unterhaltung ist und Sie die ganze Arbeit selbst erledigen können, dann tun Sie, was immer Sie wollen. Wenn Sie es jedoch für andere Benutzer tun oder wenn Sie Hilfe benötigen oder wenn Sie erwarten, dass andere Programmierer es beibehalten, nachdem Sie gelangweilt sind, müssen Sie damit beginnen, die Bedürfnisse und Vorstellungen anderer Benutzer zu berücksichtigen.

Eine Vision zu haben ist in Ordnung. Aber es macht wirklich nur dann einen Unterschied, wenn Sie andere Menschen davon überzeugen können, Ihre Vision zu teilen. Gates, Jobs und Torvalds haben es geschafft, ihre Visionen zum Leben zu erwecken, indem sie Produkte hergestellt haben, die vielen Menschen dienten, und sie dazu gebracht haben, ihre Visionen zu verwirklichen. Rein auf Ihre Art zu arbeiten, ist reiner und befriedigender, aber es kostet etwas. Sie können, wie Voltaire sagte, das Vollkommene zum Feind des Guten machen ("Le mieux est l'ennemi du bien").


1

Teamarbeit ist ein wichtiger Bestandteil des Software Engineerings. Wenn Sie alleine arbeiten, wird es Sie vielleicht nicht stören, wie es anderen geht und was die Leute von Ihnen erwarten. Wenn Sie jedoch mit einer anderen Person zusammenarbeiten, zählt die Zusammenarbeit wirklich. Wenn es um Software geht, ist das, was Sie unter Teamarbeit verstehen, eine wirklich gute Kommunikation . Respektieren Sie einfach Ihren Kollegen und seien Sie tolerant gegenüber allen Ideen. Es sollte okay sein.


1

Wenn Sie etwas glauben, sagen Sie es und meinen Sie es ernst, aber wenn Sie sich als falsch oder überholt erwiesen haben, akzeptieren Sie es und lernen Sie daraus. Bei Teamwork geht es nicht darum, sich immer zu einigen, sondern darum, die bestmöglichen Lösungen für die jeweilige Situation und den jeweiligen Zeitrahmen zu finden.


1

Da Sie sich gerade für den Einstieg in die Belegschaft vorbereiten, werde ich auf etwas anderes hinweisen.

Einsteiger-Programmierer sind niemals Superstars. Sie können nicht in einen Job gehen und denken, Sie seien besser als alle anderen, weil Sie dies nachweislich nicht sind. Sie haben mit anderen Leuten auf Ihrem Niveau konkurriert, also können Sie denken, ich bin besser als diese Leute, ich muss ein großartiger Programmierer sein.

Aber jemand, der gerade die Schule verlassen hat, weiß nicht, was derjenige mit zehnjähriger Berufserfahrung weiß. Du weißt es einfach noch nicht. Jetzt gebe ich zu, dass nicht jeder mit viel Erfahrung auch ein Superstar ist, und Anfänger zu sein bedeutet nicht, dass man kein anständiger Programmierer sein kann. Es bedeutet nicht einmal, dass Sie kein Superstar werden können, der weniger gewürzt ist als manche andere (einige werden niemals Superstars sein, aber das ist auch in Ordnung).

Aber Sie werden nicht die Glaubwürdigkeit haben, um Ihre Ideen umzusetzen, bis Sie etwas anderes als die jüngste Person im Team sind. Um diese Glaubwürdigkeit zu erreichen, müssen Sie ein Teamplayer sein. Sie müssen mehr über die Unternehmensdomäne und die Funktionsweise von Unternehmen erfahren. Sie müssen verstehen, dass Ihre persönlichen Bedürfnisse und Wünsche am Arbeitsplatz an den meisten Orten irrelevant sind. Sie werden angeheuert, um einen bestimmten Job zu erledigen und Ergebnisse zu erzielen. Bis Sie einige von ihnen produziert haben, werden die Leute skeptisch sein, was Sie vorschlagen, auch wenn Sie richtig sind. Sie müssen gehen, bevor Sie sprechen können.


Es ist mir egal, ob ich ein Superstar bin oder nicht, das ist mir eigentlich egal. Ich denke lieber über Mentalität nach und wie die Leute denken und / oder solche oder solche Dinge bevorzugen. Es geht mehr um Meinungen und Wissen darüber, was in diesem Geschäft passiert, als um etwas anderes. Ich denke nicht, dass ein Programmierer besser ist als ein anderer, weil einer seine Beweise gemacht hat, und ich denke, die Leute sollten einfach versuchen, diese Punkte zu ignorieren.
jokoon

Ein Beispiel: Eines Tages las ich eine Zeitung mit dem Titel "Die dunkle Seite von C ++" und entschloss mich, ein Netzlaufwerk einzubauen, falls sich einige Neugierige dazu entschließen sollten, sie zu lesen. Unser Programmierlehrer äußerte sich zu diesem Artikel und hielt ihn für eine gute Lektüre. Es spielt keine Rolle, dass ich wertvoller bin als andere Programmierer, aber es zeigt, dass ich eine gute Quelle sein kann, um andere zu unterrichten, die möglicherweise nicht die gleiche Neugier haben wie ich.
jokoon

0

Sie werden am Ende alleine arbeiten.
Vorteile der Arbeit in einem Team:
1- Interaktive Hilfe: Sie bleiben stunden- und tagelang nicht in einem Problem stecken.
2- Sie werden Dinge lernen, die Sie in Büchern / Online-Tutorials, Foren nicht finden.
3- Wettbewerb: Motivation zur Überwindung von Teammitgliedern.
4- Diskussionen: das ist besser als Stunden, die Bücher und Blogs lesen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.