it-swarm.dev

Ist es normal, dass Programmierer gleichzeitig an mehreren Projekten arbeiten?

An einem aktuellen Job habe ich zwei Projekte zu bearbeiten. Das erste ist ein sehr großes System und das zweite ist kleiner, aber es ist auch groß (das erste Projekt wird für 12 Jahre entwickelt, das zweite für 4 Jahre).

Anfangs arbeitete ich nur am ersten Projekt und versuchte mich daran zu gewöhnen. Dann wurde ich zum zweiten Projekt versetzt und dort ausprobiert, sodass mein Wissen über das erste Projekt zwielichtig wurde. Jetzt muss ich an beiden Projekten gleichzeitig arbeiten.

Es ist sehr schwer für mich, denn obwohl beide Java verwenden, verwenden sie unterschiedliche Frameworks und die Menge an Code und Geschäftslogik, die zu verstehen ist, ist sehr groß, so dass ich diese beiden Projekte wirklich nicht in meinem Kopf halten kann.

Ist es normal und ich sollte mich daran gewöhnen, obwohl mein Fachwissen sehr knapp wurde. Was passiert nicht, wenn ich nur an einem einzigen Projekt arbeiten würde? Oder sollte ich Bedenken äußern oder vielleicht den Arbeitgeber wechseln?

40
user1449

Ich bin völlig anderer Meinung, wenn Leute sagen "Ja, Multitasking ist normal"

Es ist nicht normal! Überhaupt nicht, es ist sehr unnatürlich für einen Entwickler, in mehreren Projekten mehrere Aufgaben zu erledigen (mehr dazu später). Auf der anderen Seite ist Multitasking unter Entwicklern sehr verbreitet . Daran sollten Sie sich definitiv gewöhnen. Die eigentliche Antwort auf Ihre Frage lautet also: Wie kann man mehrere Aufgaben ausführen?

Zuallererst sollten Sie Ihr Schicksal nicht einfach akzeptieren, weil "Sie ein so hervorragender Mitarbeiter sind" und das bedeutet, dass Sie mehr Aufgaben übernehmen müssen, als Sie bewältigen können. Überhaupt nicht, du nicht. Manchmal erhalten Menschen mehrere Aufgaben, weil es sonst niemanden gibt. Manchmal können Manager ihre Arbeit nicht erledigen, so dass sie delegieren und Multitasking für ihr Team erzwingen, weil sie ihren Projektplan nicht richtig handhaben können. Sie sollten also auf jeden Fall versuchen festzustellen, ob Sie zu Multitasking aufgefordert werden, weil das gehört zu Ihrem Job oder weil andere Leute inkompetent sind. In jedem Fall können Sie selbst beurteilen, ob dies akzeptabel ist oder nicht. Wenn Sie sich mit Ihrem Job nicht wohl fühlen, gibt es andere Orte, an denen Sie Arbeit finden können. [Sie als Entwickler sind die Ware. Arbeitgeber wissen das und beten, dass Sie es nie merken.]

Was Multitasking betrifft, bin ich zu 100% anderer Meinung, wenn Leute sagen: "Ja, wechseln Sie einfach hin und her und stellen Sie sicher, dass Sie bei jedem Projekt die gleiche Menge tun." Entschuldigung, aber das ist ein sehr schlechter Rat.

Zuerst müssen Sie erkennen, wie Ihr Gehirn funktioniert, wenn Sie eine Software entwickeln (ich weiß, dass es andere Aufgaben gibt, aber konzentrieren wir uns auf diese). Sie müssen zuerst "verkabelt" werden, was bedeutet, dass Sie sich viel konzentrieren und Ihren Geist in eine Position bringen müssen, in der Sie alles in Ihrem Kopf abgebildet haben. Alle Variablen- und Methodennamen, der Workflow Ihres Codes, das Objektmodell, die nebeneinander verlaufenden Threads, alles. Normalerweise brauche ich 15, vielleicht 20 Minuten, um "in der Zone" zu sein.

Wenn Sie in diesen Zustand kommen, fliegen Sie wirklich los und schreiben Code, als würden Sie Fahrrad fahren. In dem Moment, in dem Sie unterbrochen werden, können Sie alles verlieren. Wenn die Unterbrechung lang genug ist (5, 10, vielleicht 30 Minuten), verlieren Sie diesen Geisteszustand und müssen von vorne beginnen.

Multitasking ist also schrecklich, weil es Sie zwingt, "die Zone" zu verlassen und zu etwas anderem überzugehen. Wenn Sie ständig wechseln, bedeutet dies, dass Sie nicht produktiv sind, da Sie jedes Mal, wenn Sie zu einer neuen Aufgabe/einem neuen Projekt wechseln, diese 15 bis 20 Minuten verlieren müssen, um wieder in die Zone zu gelangen (ganz zu schweigen davon, dass Ihr Gehirn langsam schmilzt).

Es ist wie Multithreading: Irgendwann sind die Kosten für das Wechseln des Thread-Kontexts alle paar Zyklen zu hoch, sodass die CPU mehr Zeit damit verbringt, den Kontext zu wechseln, als die eigentlichen Aufgaben auszuführen.

Ich empfehle dringend, einen Artikel von Joel Spolsky zu diesem Thema zu lesen:

http://www.joelonsoftware.com/articles/fog0000000022.html

Mein Rat ist also: Versuchen Sie zu lernen, wie man (nicht) mehrere Aufgaben erledigt, da dies in der Tat üblich ist. Aber stellen Sie auch sicher, dass Sie es bequem machen. Einige Menschen können sich mehr Zeit nehmen, um sich zu konzentrieren, und leiden beim Multitasking mehr als andere. und das ist auch ok Es ist nicht so, dass es üblich ist, dass es als normal angesehen werden sollte.

Joel drückte es gut aus, als er sagte:

In der Tat ist die wahre Lehre aus all dem, dass Sie niemals zulassen sollten, dass Menschen an mehr als einer Sache gleichzeitig arbeiten. Stellen Sie sicher, dass sie wissen, was es ist. Gute Manager sehen ihre Verantwortung darin, Hindernisse zu beseitigen, damit sich die Leute auf eine Sache konzentrieren und sie wirklich erledigen können.

54
Alex

Ja, das ist zu erwarten. Und zu begrüßen.

Es gibt verschiedene Möglichkeiten, dies zu betrachten:

  1. Es wird von Ihnen erwartet, dass Sie mehrere Aufgaben ausführen, und es ist nahezu unmöglich, sich zu konzentrieren. Dies führt zu suboptimalen Konstruktionsprozessen, gelegentlichen Verwirrungen beim Hin- und Herwechseln, einem Gefühl der Ausbeutung, Frustration, Stress usw. Dies ist natürlich alles negativ. jedoch,

  2. Ihnen werden mehrere Projekte anvertraut, was sich gut auf die von Ihnen erzielten Ergebnisse und das Vertrauen Ihres Arbeitgebers in Ihre Fähigkeiten auswirkt. Es ist eine Gelegenheit, ihnen zu zeigen, dass das Vertrauen gerechtfertigt ist.

Mein Rat ist, nüchternes Urteilsvermögen zu entwickeln welche Aufgaben Ihre sofortige Aufmerksamkeit erfordern und welche warten können. Manchmal lautet die Antwort, dass keiner von beiden warten kann und Sie einen kreativen Ansatz für die Bereitstellung von Ergebnissen wählen müssen (ein wenig für Projekt A, dann ein wenig für Projekt B, dann spülen und wiederholen). Entwickeln Sie die Fähigkeiten, um in solchen Situationen erfolgreich zu sein.

Normalerweise (wenn auch nicht immer) wird dies mit mehr Verantwortung, mehr Projekten zum Jonglieren und mehr Erwartungen belohnt. Irgendwann können und werden Sie voraussichtlich einen Teil dieser Arbeit delegieren. Es ist ein Maß für den Erfolg.

Selbst wenn Ihre wachsenden Jonglierfähigkeiten nur von Ihrem derzeitigen Unternehmen genutzt werden, sind diese Fähigkeiten gut und werden Ihnen in Ihrer Karriere gute Dienste leisten.

Für das, was es wert ist, arbeite ich normalerweise an einem großen Projekt, einem kleineren, der Wartung und Unterstützung alter Projekte und der Verwaltung mindestens eines anderen. Es ist frustrierend, verwirrend, ermüdend und ich bin sehr dankbar.

33
b w

Ja! Das ist völlig "normal"/üblich, wenn Sie an einem Dienstleistungsunternehmen xD arbeiten

Auch wenn Sie mit Open Source-Projekten zusammenarbeiten, ist dies die Regel

Vielleicht ist nicht und Idealzustand, aber ist das Brot des Alltags.

15
yeradis

Es ist normal. Aber es ist nicht gut, aus den Gründen, die Sie dargelegt haben. Das Wechseln des Kontexts führt zu Produktivität. Wenn Sie also können, versuchen Sie, einen großen Teil der Zeit an einem Projekt zu arbeiten, z. ein Tag.

12
Anthony

Ich arbeite jeden Tag aktiv an 2 bis 3 verschiedenen Projekten. Und noch ein paar Dutzend. Einige Wochen wird es etwas überwältigend. Einige der Projekte sind riesig, andere so klein, dass sie in wenigen Tagen codiert wurden und nur selten geändert werden müssen. Es ist unterschiedlich, aber es hält mich mit unterschiedlichen Denk- und Lösungsweisen, unterschiedlichen Technologien und Geschäftsbereichen konfrontiert. Ich genieße es.

Um Ihre Frage zu beantworten: Ja, das ist sehr häufig.

9
CaffGeek

Lesen Sie den Artikel mit dem Namen Multitasking bringt Sie später dorthin . Diese Grafik erzählt die Geschichte:

enter image description here

Mit anderen Worten, das Unternehmen verschwendet Zeit, indem seine Programmierer an mehr als einem Projekt gleichzeitig arbeiten. Mit nur drei Projekten beträgt der Abfall 40%! Der Rest der Zeit ist auf drei Projekte aufgeteilt.

Der Grund für Multitasking wird oft als "mehr Dinge erledigen" angegeben. Aber das ist eine falsche Argumentation. Multitasking führt nur zu einer Verzögerung aller Releases. Dieses Bild zeigt den Effekt von Dual Tasking im Vergleich zum Abschluss eines Projekts:

enter image description here

(Das Bild ignoriert den Overhead vollständig. In Wirklichkeit würde die verschwendete Zeit beide Projekte 20% später machen.)

8
Martin Wickman

Ja, meiner Erfahrung nach ist das normal (auch wenn einige der "Projekte" ziemlich ähnlich sind, z. B. ein Wartungs- und Funktionsprojekt für dasselbe Produkt). Um Konflikte und unrealistische Erwartungen zu vermeiden, vereinbaren Sie mit den Projektmanagern und Ihrem Manager, jedem Projekt bestimmte Bruchteile Ihrer Zeit zuzuweisen (z. B. drei Tage für Projekt X, zwei für Projekt Y pro Woche). Normalerweise können Sie diese Zuordnungen dann nach Ihren Wünschen verteilen, z. Mo-Mi am X, Do-Fr am Y.

Es wird gelegentlich Zeiten geben, in denen ein Projekt "eine Ausnahme auslöst" und bearbeitet werden muss jetzt. Hier gibt es zwei Dinge zu tun:

  1. stellen Sie sicher, dass es sich wirklich um eine Ausnahme handelt, nicht nur um einen aufdringlichen Projektmanager: Drücken Sie im letzteren Fall zurück.
  2. tauschen Sie Ihre Zeitzuweisungen aus, damit Sie bei jedem Projekt immer noch den gleichen Bruchteil bearbeiten.
4
user4051

Das hängt vom Unternehmen ab. IMO ist es wünschenswert, meistens nur an einem Projekt zu arbeiten, aber das ist oft nicht möglich, besonders bei kleinen Unternehmen.

Natürlich können Fehlerbehebungen usw. bei jedem Projekt auftreten.

4
user281377

Wenn Sie Schwierigkeiten haben, sich beim Umschalten wieder mit dem Framework oder der Geschäftslogik eines Projekts vertraut zu machen, sollten Sie die Gelegenheit nutzen, während der Arbeit so viel Dokumentation wie möglich zu schreiben. Wenn Sie in Ihren eigenen Worten genau beschreiben, wie ein komplexes System funktioniert, können Sie später viel einfacher auf das Projekt zurückkommen. Außerdem kann diese Dokumentation Ihren Mitarbeitern hilfreich sein, wenn sie jemals Hilfe benötigen.

Wenn das Projekt bereits eine gute Abdeckung der technischen Dokumentation enthält, kann es dennoch hilfreich sein, Ihre Gedanken aufzuschreiben, wenn Sie an komplizierten Bereichen arbeiten. Auf diese Weise können Sie Ihren Denkprozess beim nächsten Wechsel wieder aufnehmen.

3
Matt G

Nun, es sollte nicht normal sein, aber ich habe bei meinem derzeitigen Arbeitgeber viele Projekte auf meinen Schultern. Ich gebe zu, dass es etwas gewöhnungsbedürftig ist. Der wichtigste Tipp, den ich möglicherweise geben könnte, ist, Ihre Arbeit immer zu priorisieren. Zwingen Sie Ihren Chef, Ihnen zu sagen, was die vorrangige Aufgabe ist, und arbeiten Sie nur daran. Lassen Sie sich nicht von jemandem unter Druck setzen, der sich über Ihre anderen Projekte beschwert. Sie müssen Ihren Lebenslauf noch nicht unbedingt aktualisieren, stellen jedoch sicher, dass die Last nicht über das hinausgeht, was Sie vernünftigerweise handhaben können.

2
ChaosPandion

Ich finde es normal. So wie mein Job gerade funktioniert (ich bin in einem Unternehmen mit ungefähr 40 Entwicklern, einer Gesamtunternehmensgröße von ca. 700). Und ich habe normalerweise ein "längerfristiges" Projekt mit vielen kleinen Tickets/Mängeln, die auftauchen, so dass es normalerweise 50% kleine Tickets und 50% Arbeit am langfristigen Projekt sind. Was schwierig sein kann, ist, dass die ständige Unterbrechung das längerfristige Projekt verlangsamen und entgleisen kann.

0
Bmw

Ich denke, es ist normal, an mehreren Projekten zu arbeiten. Der Schlüssel ist zu akzeptieren, dass Sie anfänglich mit Unklarheiten in Bezug auf das Gesamtbild des Systems konfrontiert sind.

Wenn Sie sich um ein größeres Bild bemühen, erhalten Sie Klarheit und können die beweglichen/festen Teile im System und die Auswirkungen Ihrer Änderungen auf das System erkennen.

Im Laufe der Zeit werden Sie lernen, gemeinsame Muster in den verschiedenen Systemen zu finden, an denen Sie arbeiten. Diese können Sie auf Ihre anderen Projekte anwenden, wodurch sich die Menge an detaillierten Informationen verringert, die Sie gleichzeitig im Kopf behalten müssen.

0
Pradeep

In jedem nicht trivialen Projekt ist mehr als eine Person zugeordnet. Dies bedeutet, dass Sie mit anderen zusammenarbeiten und darauf warten müssen, dass sie ihre Arbeit erledigen, und dass sie auf Sie warten müssen.

Anstatt dass die Leute untätig sitzen, sind häufig mehrere Projekte aktiv, sodass bei Bedarf immer eine offene Aufgabe zu erledigen ist.

Sie sollten bei jedem Projekt immer noch in großen Teilen arbeiten, damit Sie "in der Zone" sind und dennoch produktiv sind.

0
user1249