Welche Dinge verlangsamen einen Entwickler?
Bitte versuchen Sie nicht, Antworten zu veröffentlichen, die:
- sind jetzt langsam, aber nützlich in der Funktion. (TDD, Refactoring, ...)
- eine Ablenkung auflisten .
Welche Dinge verlangsamen einen Entwickler?
Bitte versuchen Sie nicht, Antworten zu veröffentlichen, die:
Antworten:
Oh das ist einfach:
StackOverflow, programmers.stackexchange.com usw. :)
Jeder Versuch, einem Prozess zu folgen, der nicht für die jeweilige Aufgabe geeignet ist.
Dies kann alles Mögliche sein, aber ich sehe häufig Folgendes:
All diese Dinge können sich für einige Projekte oder Situationen immens lohnen, aber einige Organisationen versuchen, alles in eine Richtung zu tun, und dies führt zu einer schlechten Anpassung an andere Projekte, was häufig zum Tod der Produktivität führt.
Politik
Beispiel: Wenn mehr als eine Person die Anforderungen besitzt (oder schlimmer noch zwei unterschiedliche Interessengruppen) und sie während der Entwicklung konkurrierende und widersprüchliche Änderungen an den Anforderungen vornimmt.
In vielen Antworten geht es um das Wechseln des Kontexts und das Verlassen der Zone, und Lärm, insbesondere Konversation, ist eines der Dinge, die zu diesen für mich führen.
In meiner Kubikwelt bin ich auf allen Seiten von Lärm und Gesprächen umgeben. Eine Reihe weiter hält das Mainframe-Team ständige Planungsbesprechungen in der Cube-Reihe ab. Manchmal treffen sie sich mit Beratern in einem Büro an der Wand, und das führt dazu, dass laut geschrien und gelacht und gelacht wird, und ich muss rübergehen und sie bitten, ihre Türen zu schließen.
Auf der anderen Seite befindet sich der Web-Team-Konferenztisch auf der anderen Seite meiner West-Cube-Wand, sodass ich an jedem Meeting teilnehmen kann, ob es mir gefällt oder nicht. Es gibt auch einen Drucker auf der anderen Seite der Südwürfelwand, und das ist immer gut für Chit-Chat von Leuten, die rumhängen und auf ihre Ausdrucke warten.
Die sofortige und offensichtliche Antwort " Können Sie nicht einfach Kopfhörer mit Geräuschunterdrückung bekommen?" Hilft nicht, wenn Sie Stille wünschen.
Manchmal bringe ich meinen Stapel Papiere für Code-Überprüfungen in die Kantine (natürlich nicht zur Mittagszeit), aber da ist ein Fernseher, der normalerweise dröhnt. Ich schalte es aus, wenn niemand zuschaut. Ansonsten suche ich einen leeren Würfel in einer anderen Abteilung in einem anderen Teil des Gebäudes.
Wenn Sie möchten, dass Ihre Programmierer die Arbeit erledigen, die sie erledigen müssen, dh vorwiegend nachdenken und überlegen, brauchen sie eine Umgebung, in der sie dies tun können.
Zu viele Codezeilen ohne angemessene Tests schreiben.
Mangel an qualitativ hochwertigem Kaffee.
Wenn ich perfekte Schätzungen machen muss, die nicht von Beginn der Entwicklung abweichen dürfen, ist dies meiner Meinung nach ein Hühnerei-Szenario
Die kaputte Version eines anderen reparieren
Sitzungen ohne Tagesordnung.
Eine langsame Maschine.
Fehlen eines zweiten Monitors.
Eine alte Maus, die einen Ball anstelle der schönen neuen hat.
Fehlender Internetzugang auf dem Computer, was das Abfragen von MSDN / stackoverflow / etc zu einem Problem macht.
Vermeiden Sie alles, was Sie aus der Zone herausholt. Das heißt, Ihr E-Mail-Posteingang, Ihre Twitter-Popup-Anwendung, Ihr Unternehmens-Chat usw.
Wenn Sie in einem ruhigen Arbeitszustand arbeiten, müssen Sie auch dieses Desktop- Geräusch vermeiden .
Jede Änderungsanforderung, die einfacher zu implementieren gewesen wäre, wenn Sie zuvor davon gewusst hätten.
The Much That Slows You Down ist ein guter Blog-Beitrag dafür.
...
Viele Projekte wiederholen immer wieder die Kernfunktionen auf Infrastrukturebene und verlangsamen so die Bereitstellung von Funktionen, die das Unternehmen von den Mitbewerbern abheben.
...
Es ist unvermeidlich, dass Produkte und Innovationen dazu beitragen, die Zeit zu reduzieren, die Entwickler für nicht differenzierende Aufgaben aufwenden. Die Frage ist, wie diese Dienste und Tools aussehen werden.
...
Nun, in letzter Zeit ist die größte Verlangsamung zu verzeichnen, weil wir mehrere Dinge gleichzeitig entwickeln, die in einer bestimmten Reihenfolge hätten ausgeführt werden sollen. Also warte ich, bis (die Namen wurden geändert, um die Unschuldigen zu schützen) John seine Komponente fertiggestellt hat, die ich für mein SSIS-Paket benötige, und Harry wird langsamer, bis ich Datensätze importiere, da er einige Daten benötigt, um seinen Export zu testen (jemals versuchen) einen komplexen Exportbericht zu schreiben, wenn sich keine Daten in einer der Tabellen befinden?) und alle langsamer werden, weil das Design noch nicht fertig ist und die Datenbanktabellen, die wir für unsere Aufgaben benötigen, noch nicht erstellt wurden und möglicherweise noch nicht einmal enden up zu sein, was sie sagten, dass sie sein würden, etc.
Auch wenn Sie darum gebeten haben, keine Ablenkungen aufzulisten, können diese ein wichtiger Faktor sein. Überprüfen Sie ihre Arbeitsumgebung, um festzustellen, ob sie häufig unterbrochen oder aufgefordert werden, andere Aufgaben zu erledigen, die nicht mit dem Projekt zusammenhängen.
Manchmal bleibt ein Entwickler hängen, weil er etwas tut, was er noch nie zuvor getan hat, und er weiß nicht, wo er Hilfe suchen soll. Wenn es sich um ein kleines Team oder eine Einzelperson handelt, kann es noch schwieriger werden. Wir neigen dazu, etwas stolz zu sein und geben nicht zu, wenn wir nicht wissen, wie man Dinge macht. Außerdem bitten wir andere nicht gern um Hilfe. Es gibt keine einfache Möglichkeit, einen Entwickler dazu zu bringen, dies zuzugeben, außer vielleicht zu fragen, ob er die Frist einhalten kann oder was er braucht, um die Frist einzuhalten, und dann zu hoffen, dass er ehrlich ist. Möglicherweise müssen Sie anbieten, andere Hilfe in Anspruch zu nehmen, oder jemanden finden, der ihnen helfen kann.
Fehlen klar definierter Anforderungen, was dazu führt, dass sie Dinge herausfinden oder Entscheidungen treffen müssen.
Ich könnte weitermachen, aber es ist Freitag und ich möchte die Arbeit vergessen.
Zu viele Leute am Projekt.
Ich habe es mehrmals gesehen, als das Management auf der Grundlage fehlender realer Daten entscheidet, dass mehr Personen zum Projekt hinzugefügt werden müssen. Das führt dazu, dass die Leute, die wissen, was los ist, alles stoppen müssen, um die Hände von Leuten zu halten, die wenig über das Geschehen wissen. Ich habe mehr als einen Projektpilz in der Größe gesehen und bin dann schnell von dort in die Toilette gegangen, wohingegen es vorher gut lief, obwohl es vielleicht etwas langsam war.
Sie haben also einen Monat Verspätung, weil Sie nicht genug Geschwindigkeit / zu viel zu tun haben, um überhaupt nicht zu liefern, weil Sie das Budget für all diese zusätzlichen Leute völlig aufgebraucht haben.
Abgesehen von den Dingen, die von anderen erwähnt wurden, der lange Weg zwischen der Entscheidung, Ihren Code zu kompilieren und auszuführen, und dem Erreichen eines positiven / negativen Ergebnisses . Idealerweise ist diese RTT nur eine Sekunde, aber ich habe ein Beispiel für Stunden gesehen. Übrigens, Unit-Tests versuchen, dieses Problem zu lösen.
Ein anderer Zusammenhang ist die allgemeine Latenz Ihrer Arbeitsumgebung. Stellen Sie sich vor, Sie müssten über eine unheimliche Verbindung über eine Remotedesktopverbindung mit dem Computer auf der anderen Seite der Welt arbeiten. Ich war dort. Ich habe das gehasst.
Übermäßiger Papierkram
Eine Abhängigkeit von jemandem haben, der nie in der Nähe ist (wie Ihr Chef - wenn Sie eine Frage stellen müssen, er aber immer in Besprechungen ist)
Unzureichende Werkzeuge und Ausrüstung.
Leute schieben ihr Ruder ohne Grund ein (jede sichtbare Änderung der Benutzeroberfläche ist davon abhängig) oder streiten sich nur über Kleinigkeiten.
Kaputte Kaffeemaschine
Die falschen Aufgaben zugewiesen bekommen
Dies ist eine sehr persönliche und vielleicht kontroverse Meinung, aber Sie müssen zu viel über Design im Voraus planen und darüber nachdenken oder ständig "Qualitäts" -Code schreiben. Es gibt ein Sprichwort, dass "Wochen des Codierens Ihnen Stunden des Planens ersparen können", das in einigen Fällen zutreffen könnte.
Ich sehe jedoch oft Programmierer, die versuchen, ein gutes Design zu entwerfen, bevor sie mit dem Codieren beginnen. Ich stelle fest, dass es einfacher ist, einfach loszulegen, wenn Sie programmieren, erfahren Sie mehr über Ihr Problem und Ihre Lösung, sodass Sie Ihre Lösung schnell in ein gutes Design umgestalten können. Die meisten der auftretenden Probleme sind zu Beginn der Codierung (zumindest für meinen schwachen Verstand) kaum zu erkennen. Daher ist es reine Zeitverschwendung, viel Zeit im Voraus zu verschwenden.
Dies ist auch der Grund, warum ich TDD nicht mag. Sie verschwenden zu viel Zeit damit, Tests zu schreiben, was dazu führt, dass Sie entweder weniger wahrscheinlich umgestalten oder viel Zeit für das Umschreiben der Tests benötigen. Unit-Tests sind in manchen Fällen und in einigen Phasen eines Projekts großartig, aber der Anfang eines solchen Tests gehört meiner Meinung nach nicht dazu :)
Bringen Sie etwas schnell zum Laufen und verbessern Sie es.