Wie programmiere ich nach einem sehr engen Zeitplan?


40

Ich arbeite an einem Projekt, das einen sehr engen Zeitplan hat. Ich habe nicht viel Zeit zum Codieren und Testen (obwohl ich jeden Tag mehr als 12 Stunden arbeite, ist es immer noch verzögert), und das Ergebnis ist sehr fragil. Sein Code ist auch sehr Dilemma.

Dieses Programm wird von allen Büros in der Firma unseres Kunden verwendet, die sich in vielen Ländern befindet. Ich bekomme regelmäßig um Mitternacht Anrufe wegen Fehlern von unserem Benutzer / Tester oder wegen Fehlern bei der Verwendung einiger Funktionen.

Nach drei Jahren bei diesem Projekt bin ich sehr gestresst und kann nicht gut schlafen, weil ich mir große Sorgen um Fehler und Anrufe mache.

Ich habe ein paar Fragen:

  1. Seit drei Jahren ist der gesamte Code, den ich geschrieben habe, nur der perfekte Verwendungsszenario-Code (so dass er leicht kaputt geht). Es ist schlecht gestaltet und hat keine Unit-Tests. Aufgrund dieser Tatsache habe ich viele Probleme. Daher möchte ich wissen, ob es machbar ist, Code zu schreiben, der funktioniert, wenn das Projekt einen sehr engen Zeitplan hat.
  2. Wie kann ich in der gleichen Zeit besseren Code schreiben?
  3. Wie kann ich meine Gedanken klären und mir keine Sorgen um die Arbeit machen, wenn ich schlafen gehe?

9
Vorschlag? Das offensichtlichste und du weißt es !!!
Aditya P

25
Schalte dein Handy nachts aus. Grenzen setzen und einhalten. Sie haben hier zwei unterschiedliche Probleme. Das erste ist, dass Ihr Unternehmen nicht achtet, dass Mitarbeiter auch ein Leben haben.
Tim Post

34
Kündigen Sie den Job, holen Sie sich einen neuen.
Erfahren Sie

18
Fristen sind das Problem des Managements. Wenn die Fristen immer so eng sind, müssen sie daran arbeiten, bessere Schätzungen zu liefern - und nicht, dass Sie wie ein Hund arbeiten, um das zu erreichen, was sie erwartet hatten .
Steven Evers

4
Ich bin sicher, wenn EA Games SnOrfus engagiert, würde er.
Berin Loritsch

Antworten:


30

Telefonanrufe verbieten

Wenn Ihre Benutzer auf der ganzen Welt sind, können sie sicher nicht erwarten, dass Sie ein Telefon abholen, wenn es 4 Uhr morgens ist und Sie im Bett sind. Ich würde Anrufe sperren und auf andere Kommunikationsmittel umsteigen, die diesem Szenario besser dienen können (E-Mail oder eine Problemverfolgungs-Datenbank). Aber auch im Büro einen geplanten Zeitplan für die Erreichbarkeit von Telefonen erstellen. Andernfalls können Sie in der Zeit, in der Sie im Büro sind, nichts tun.

So erhalten Sie wertvollen Schlaf und Ruhe.

Enger Zeitplan

Wenn dieses Projekt seit drei Jahren eng geplant ist, muss jemand etwas vermutet haben, das nicht wirklich funktioniert. Vielleicht ist es an der Zeit, dass jemand den Planern etwas sagt und insbesondere Ihren Benutzern / Kunden und Ihren Managern, dass dies ein Todesmarschprojekt ist. Es befindet sich seit drei Jahren in der Entwicklung, ist verzögert und voller Fehler. Der Plan sollte komplett neu bewertet, der vorhandene Code überarbeitet und neue Funktionen sollten erst entwickelt werden, wenn zahlreiche Probleme behoben sind.

Ordnung aus dem Chaos

Stellen Sie eine Entwicklungsmethode auf, die die Dinge für Sie vorhersehbar und erträglich macht. Wenn Sie ein Entwickler sind, können Sie bei eingehenden Telefonanrufen keine Arbeit erledigen. Für jede Unterbrechung benötigen Sie 15 Minuten, um zu der Stelle zurückzukehren, an der Sie aufgehört haben. Anrufe sollten ausgeschaltet sein . Zumindest auf Ihrem Schreibtisch, weil Sie Entwickler sind. Wenn Sie Anrufe an eine andere Person umleiten können, die Sie nicht nach jedem Anruf stört, tun Sie dies.

Richten Sie eine Art Incident / Bug-Datenbank ein. Nehmen Sie sich jeden Morgen etwas Zeit, wenn Sie an die Arbeit gehen und neue Vorfälle priorisieren (Sie selbst, Ihr Team oder Ihren Kunden / Manager). Versuchen Sie, sie in dieser Prioritätsreihenfolge zu lösen und denken Sie nicht einmal an Telefonanrufe.

Was, wenn

Was ist, wenn Sie Ihr Telefon nicht ausschalten und Ihren Benutzern nicht mitteilen können, dass sie Sie nicht anrufen können, wann immer sie möchten? Wenn Sie die Telefonnummer Ihres Benutzers haben, sollten Sie das Gegenteil tun: Wenn er Sie anruft, benachrichtigen Sie ihn und Sie werden ihn zurückrufen, wenn es gelöst ist. Rufen Sie sie dann zurück, wenn sie schlafen. Wenn sie dir sagen, dass sie schlafen, erinnere dich an ihre Antwort und benutze sie, wenn sie dich das nächste Mal mitten in der Nacht anrufen. Die Leute verstehen normalerweise ihre eigene Sprache besser.

Wenn sie ein Bürotelefon verwenden und Sie ein Mobiltelefon verwenden, sodass Sie sie außerhalb der Arbeitszeiten nicht anrufen können, schalten Sie Ihr Mobiltelefon aus, nachdem Sie das Büro verlassen haben. Sie sind seit 12 Stunden dort und haben es verdient , nicht zur Arbeit zu gehen. Wenn es sich bei dem Mobiltelefon um Ihr persönliches handelt, sollte Ihr Unternehmen Ihnen ein neues Mobiltelefon besorgen und Sie sollten Ihre Benutzer / Kunden darüber informieren. Wenn sie danach anfangen, Sie über Ihre persönliche Nummer anzurufen (weil sie Sie über Ihre geschäftliche Nummer auch nicht erreichen können):

  1. nicht abholen
  2. Lassen Sie es von einem Freund beantworten, indem Sie ihn über die falsche Nummer informieren oder dass der ursprüngliche Benutzer diese Nummer nicht mehr verwendet.

Das Wichtigste

Entwickeln Sie keine neuen Funktionen, bis Sie vorhandene Probleme behoben haben. Zumindest diejenigen mit hoher und mittlerer Priorität.


6
Sei nicht passiv aggressiv gegenüber den Nutzern. Wenn das Unternehmen nicht erwartet, dass Sie Ihr Telefon außerhalb der Geschäftszeiten beantworten, tun Sie dies nicht. Es muss eine andere Nummer für jemanden geben, der Dienst hat.
JeffO

@ Jeff O: Ich stimme vollkommen zu. Aber da dies seit 3 ​​Jahren so ist, wird erwartet, dass Anrufe zu diesen unmenschlichen Zeiten beantwortet werden.
Robert Koritnik

1
Ich würde vorschlagen, dass Sie ihnen Bescheid geben, anstatt sie zu stiften. Es wäre nicht so sehr, dass die Leute ihre eigene Sprache besser verstehen, sondern dass sie nicht mit Ihnen sprechen möchten, weil sie Sie als unangenehm empfinden.
Rei Miyasaka

3
"ruf sie zurück, wenn sie schlafen" "Die Leute verstehen normalerweise ihre eigene Sprache besser" gut;)
Achu

2
Ehrlich gesagt, wenn er das "Was wäre wenn" -Szenario erreicht, ist es die beste Option, nur einen anderen Arbeitsplatz zu finden. Es ist (für die meisten) ungesund, 12-Stunden-Tage ununterbrochen zu arbeiten, und es ist noch schlimmer, wenn Sie auch auf Abruf sind. Natürlich sollte er so viel wie möglich tun, um das Problem zu beheben, aber wenn alles andere fehlschlägt, kündigen Sie. Diese Situation ist nicht nachhaltig.
Dan Lyons

14

Wenn Sie nicht die einzige Person im Team sind - in diesem Fall sind Sie wahrscheinlich mehr als die Hälfte des Weges zum Burnout -, wechseln Sie sich mit dem "Pager" ab. Das sollte die Last vorerst erleichtern.

Dann müssen Sie dem Management mitteilen, dass es eine Phase einplanen muss, in der die technischen Schulden getilgt werden sollen - das bedeutet Testen, Codebereinigung, Refactoring. Und es muss bald geplant werden. Im Allgemeinen bedeutet dies, dass es für eine Weile keinen neuen Code gibt, der kein Refactoring oder Test ist. Wenn nicht, wird es nur noch schlimmer.

In dieser Phase wählen Sie die problematischsten Abschnitte der Codebasis aus, überarbeiten sie, säubern sie und schreiben Tests, um die Scheiße herauszufinden. Sobald die Anrufe beendet sind oder abgewickelt werden können, ohne dass die Entwickler verrückt werden, sind Sie bereit für eine weitere Phase von Funktionen (wenn sie dies wünschen). Zu diesem Zeitpunkt schreiben Sie Tests mit neuem Code und führen die Regressionen weiter aus. Momentan scheint die Software auf dem Weg zu einem Neuschreiben zu sein.

Verkaufsargumente für Ihr Gespräch mit Ihrem Chef:

  • Durch automatisierte Tests können Regressionen gestoppt oder erheblich verringert werden
  • Die Konzentration auf Stabilität bedeutet, dass die Benutzer weniger Arbeitsverzögerungen / -ausfälle haben
  • Keine Anrufe mehr um Mitternacht bedeuten, dass sie keine Überstunden zahlen
  • Keine Anrufe mehr um Mitternacht bedeuten, dass die Entwickler nicht mehr so ​​schnell ausbrennen

Seien wir ehrlich. Bis jetzt hat Ihr Unternehmen nicht gedacht, dass dies ein ausreichend großes Problem ist, um etwas dagegen zu unternehmen. Du wirst ausbrennen. Klingt so, als hätte niemand im Management echte Entwicklungserfahrung. Beginnen Sie zu suchen.


Geben Sie den Pager den Managern, die Sie in dieses Chaos verwickelt haben, oder lassen Sie ihn versehentlich in einen Eimer mit Salzwasser fallen.
Stephen C

2
Wenn dieses Projekt seit drei Jahren chaotisch ist, wird die Phase der technischen Abteilung vermutlich einige Monate dauern. Sie sollten zuerst aufhören, neue Features zu entwickeln, um 20% der problematischsten Probleme zu lösen (80% von ihnen werden hoffentlich selten angegriffen) und dann mit dem Refactoring beginnen. Wenn das erledigt ist, können Sie anfangen, andere 80% zu berühren. Beginnen Sie jedoch erst mit der Entwicklung neuer Funktionen, wenn Sie alle aktuellen Probleme gelöst haben. Warum? Je früher Sie einen Fehler beheben, desto billiger ist die Lösung. Auch wenn in Ihrem Fall nichts mehr billig erscheint.
Robert Koritnik

@ Robert Koritnik: Auf jeden Fall. +1
Steven Evers

13

Es gibt zwar einige Techniken, mit denen Sie geringfügige Produktivitätszuwächse erzielen können, aber eine Steigerung der Arbeitsleistung um 5% ist derzeit für Sie schlimmer als nutzlos. Die wirkliche Fähigkeit, die Sie hier vermissen, ist einfach und grundlegend:

Lerne, wie man nein sagt

Sagen Sie Nein zu allen unvernünftigen Erwartungen, von denen Sie bereits wissen, dass Sie sie ablehnen sollten. Sie wissen was sie sind. Das ist offensichtlich. Wenn Sie jetzt nicht nein sagen können, suchen Sie sich einen Job, wo Sie können. Kluge Arbeitgeber werden diese Fähigkeit für wünschenswert halten.


1
Dies ist vor allem die Fähigkeit, die erforderlich ist. Gute Antwort!
Joe Z

8

Beginnen Sie mit dem Verständnis, dass Ihr Projekt scheitern wird, wenn sich nichts ändert. Dies ist der wichtigste Schritt, um das zu tun, was Sie tun müssen. Ein Entwickler kann nicht 12 Stunden am Tag arbeiten und in der Lage sein, nützlichen Code zu erstellen. Sie kommen an einen Punkt, an dem Sie dumme Fehler machen und tatsächlich an Fortschritt verlieren, weil Sie jeden Tag damit beginnen müssen, das zu korrigieren, was Sie am Vortag getan haben. Es hört sich so an, als wärst du schon da.

Es gibt zwei Hauptprobleme, die angegangen werden müssen, bevor Sie wieder vernünftig werden können:

  • Das Management muss wissen, dass das, was es tut, nicht funktioniert . Wenn Sie dieselben Fehler wiederholen, erhalten Sie dieselben Ergebnisse. Etwas muss sich ändern.
  • Sie brauchen Zeit, um zu reparieren, was Sie bereits haben. Das bedeutet, Sie benötigen Zeit, um Ihren Angriff zu planen, und Sie benötigen Zeit, um an 8 Stunden Arbeitstagen daran zu arbeiten.
  • Sie müssen Ihre Arbeitsweise ändern. Verstehen Sie, dass je mehr Stress Sie haben, desto mehr Tunnelblick Sie haben. Sie können sich keine kreativen Wege vorstellen, um die Probleme anzugehen, oder gar darüber nachdenken, was passiert, wenn es ein Problem gibt, wenn Sie so gestresst sind. Ganz zu schweigen davon, dass Sie ein erhöhtes Risiko für schwerwiegende gesundheitliche Komplikationen haben. Finden Sie Möglichkeiten, Ihren Stress abzubauen und Ihren Stress abzubauen.

Um Ihre Situation zu verbessern, benötigen Sie ein Management-Buy-In. Das Problem ist, dass sie den Schmerz nicht spüren und Sie nicht mit einem Schlaganfall ins Krankenhaus wollen, um ihre Aufmerksamkeit zu bekommen. Der erste Schritt besteht darin, Ihrem Management zu erklären, wo Sie sich befinden und unter welchem ​​Druck Sie stehen. Wenn sie es nicht verstehen, wechseln Sie die Führungsebene. Oder beschreiben Sie eventuell Ihre Arbeitsbedingungen der Personalabteilung. Wenn Sie länger als 8 Stunden am Tag arbeiten müssen, kann dies eine Rechtsverletzung sein, und die Personalabteilung weiß es mit Sicherheit.

Vorausgesetzt, das Management hört Ihre Bitte, möchten Sie die folgenden Maßnahmen ergreifen:

  • Stoppen Sie die Blutung. Keine neuen Funktionen, und die Serviceabrufe werden von einer anderen Person bearbeitet. Sie müssen sich auf die anstehende Aufgabe konzentrieren.
  • Identifizieren Sie die schwerwiegendsten Fehler, die behoben werden müssen, und versuchen Sie herauszufinden, wie lange es dauern wird, sie zu beheben. Dies ist eine grobe Schätzung, und es ist besser, größere Zahlen als niedrigere Zahlen zu haben. Um Besprechungen und Unterbrechungen im Laufe des Tages zu berücksichtigen, benötigt Ihr Management die Schätzung, die auf einer täglichen Arbeitszeit von 5 Stunden basiert. So bleiben 3 Stunden für Besprechungen und Unterbrechungen.
  • Lassen Sie das Management dem überarbeiteten Zeitplan für diese kritischen Fehler zustimmen.
  • Lassen Sie das Management zustimmen, dass jemand anderes einen Test für Sie durchführt. Dies gibt nicht zu, dass Sie Ihren Job nicht machen können. Dies bietet lediglich eine gewisse Qualitätssicherung, damit jede Veröffentlichung besser als die letzte ist.
  • Jetzt reparieren Sie sie. Schreiben Sie Komponententests, um das Problem zu reproduzieren, damit Sie wissen, wann es funktioniert. Noch wichtiger ist, dass Sie wissen, ob etwas, das Sie an einem anderen Ort getan haben, es erneut kaputt gemacht hat. Refactor, damit der Code besser funktioniert.

Sobald Sie die Veröffentlichung der kritischen Fehlerbehebung abgeschlossen haben, ist es Zeit, die nächste zu planen . Alle Funktionen und Fehlerkorrekturen müssen priorisiert werden, und Releases müssen für eine Teilmenge der anstehenden Arbeitslast geplant werden. Sie werden feststellen, wenn Sie Ihrem Arbeitsleben einen gewissen Grad an Gesundheit verleihen, Ihr Stresslevel sinkt, Ihre Qualität steigt und Sie werden insgesamt effizienter.


6

Sie scheinen unter dem zu leiden, was ich für einen Fall falscher Wirtschaft halte , und je länger Sie sich an die Dinge halten, die nicht funktionieren, desto schlimmer wird Ihr Problem.

Einige Schlüsselindikatoren:

  • Was scheint ein unrealistischer Zeitplan zu sein.
    • Ich gehe von einem schlechten Verständnis der fundierten Entwicklungspraktiken des Managements aus.
    • Ich gehe von einem Mangel an Verständnis oder Unterstützung durch das Management aus.
  • 12 Stunden pro Tag arbeiten.
  • Hoher Stress.
  • Schlafmangel.
  • Angst.
  • Geringe Aufmerksamkeit auf Design und Codequalität.
  • Fehlen eines Sicherheitsnetzes für Einheitentests.

Ich möchte wissen, ob es machbar ist, Code zu schreiben, der funktioniert, wenn das Projekt einen sehr engen Zeitplan hat.

Die kurze Antwort lautet ja. Die lange Antwort ist komplex und erfordert eine massive Änderung der Wahrnehmung im Namen des Managements und möglicherweise auch des Kunden sowie eine herkulische Anstrengung von Ihrer Seite ... aber ich werde gleich darauf zurückkommen.

Wie kann ich in der gleichen Zeit besseren Code schreiben?

Realistisch gesehen können Sie das nicht, wenn Sie davon ausgehen, dass Sie alles tun können, was Ihnen Zeit spart und trotzdem ein perfektes Ergebnis liefert. Sie müssen Techniken anwenden, die die Zeit für die Implementierung Ihres Codes verlängern, da Sie sich Zeit nehmen müssen, um sich auf das richtige Detail zu konzentrieren. Dies braucht Zeit, und hier schaden Ihnen Ihre falschen Wirtschaftsdaten am meisten. Wenn Sie die Dinge jedoch besser machen, verbessern Sie die Qualität Ihres Codes, was wiederum zu einer Verringerung der Anfälligkeit Ihres Systems führt. Ich erkläre das noch einmal weiter unten.

Wie kann ich meine Gedanken klären und mir keine Sorgen um die Arbeit machen, wenn ich schlafen gehe?

Angst führt zu Schlafmangel und Schlafverlust führt zu Angstzuständen. Dies ist ein Teufelskreis, wenn es jemals einen gab, und wenn er nicht markiert wird, führt dies wahrscheinlich zu Depression, dem bösen Zwilling der Angst . Chronischer Schlafverlust, von dem ich annehme, dass er wahrscheinlich mit Bewegungsmangel und schlechten Ernährungsgewohnheiten einhergeht, führt wahrscheinlich zu chronischer Müdigkeit . All dies ist symptomatisch für alle Probleme, mit denen Sie an Ihrem Arbeitsplatz konfrontiert sind, und die sich daraus ergebenden Probleme, mit denen Sie wahrscheinlich in Ihrem Privatleben konfrontiert sind. Hier liegt der größte Beweis für falsche Volkswirtschaften, und es ist wahrscheinlich das schwerwiegendste Problem, mit dem Sie sich zuerst befassen müssen.

Ich freue mich auch über Vorschläge.

Ich sollte zunächst feststellen, dass ich kein Mediziner bin, und Sie sollten sich wirklich von Ihrem Arzt beraten lassen, bevor Sie etwas unternehmen. Ich werde jedoch bemerken, dass ich die Erfahrungen, die Sie in Ihrem Beitrag beschrieben haben, miterlebt habe und weiß, wie schwierig es ist, damit umzugehen und wie wichtig es ist, etwas dagegen zu unternehmen. Ich habe die Depressionen, die Angstzustände, die chronische Müdigkeit, den Stress und all die anderen kleinen Unannehmlichkeiten miterlebt, die sie begleiten. Deshalb werde ich Ihnen auf der Grundlage dieser Erfahrungen einige Ratschläge geben:

  • Gehen Sie zu Ihrem Arzt und besprechen Sie Ihre Symptome. Informieren Sie den Arzt, wenn Sie müde sind, wenn Sie sich die meiste Zeit deprimiert oder besorgt fühlen, wenn Sie häufig an Erkältungen und Grippe leiden und wie Sie sich körperlich gefühlt haben. Wenn es Ihrem Arzt gestattet ist, wird Ihnen wahrscheinlich ein Medikament gegen Angstzustände oder sogar gegen Depressionen angeboten. Auch wenn Sie sich nicht dazu bereit fühlen, lassen Sie den Stolz an der Tür und nehmen Sie sie wie vorgeschrieben. Sie helfen wirklich und ermöglichen es Ihnen, die Kraft zu finden, mit allem umzugehen, was kommen wird.
  • Suchen Sie einen guten Psychologen auf, der Ihr Problem so bespricht, wie Sie es kennen, und der Ihnen dabei helfen kann, Ihre Meinung dazu zu äußern und Strategien für den Umgang mit dem Problem zu entwickeln. Einiges von dem, worum Sie gebeten werden, scheint sinnlos oder ein wenig verwaschen zu sein. Tun Sie es trotzdem, denn es hilft auch wirklich, vor allem, wenn Sie lernen, wie Sie Ihren Geist klären können.
  • Vermeiden Sie Schlaftabletten, es sei denn, Sie benötigen sie wirklich, da Sie von ihnen abhängig werden und Ihre Schlafstörungen verschlimmern können. Persönlich nehme ich sie nur, wenn ich nach einem Wochenende nicht in der Lage bin, den Schlaf zu bekommen, den ich brauche, und das ist normalerweise der Fall, wenn ich ein faules und unerfülltes Wochenende hatte.
  • Überlegen Sie, wie Sie Ihre Ernährung umstellen können. Schneiden Sie das Koffein ernsthaft aus, da es nur zu einem erhöhten Grad an Angst beiträgt. Reduzieren Sie Ihre Kohlenhydrate und gleichen Sie Ihre Ernährung aus. Damit meine ich, dass Sie mehr natürliches Obst und Gemüse essen, weniger rotes Fleisch essen und weniger Fette und Öle. Schneiden Sie die Erfrischungsgetränke aus und beschränken Sie sich auf eine einzige Tasse Kaffee pro Tag, wenn Sie nicht aufgeben können. Die Ernährung ist entscheidend, um die Müdigkeit zu bekämpfen. Iss auch deine letzte Mahlzeit früher, damit du nicht mit vollem Magen ins Bett gehst.
  • Übe jeden Tag. Trainieren Sie mindestens einmal pro Woche anstrengend, und gehen oder radeln Sie mindestens 30 Minuten pro Tag, bis Sie mindestens ein wenig geschwitzt haben. Dies wird dazu beitragen, Sie körperlich zu ermüden, was Ihrem Schlaf und Ihrer Müdigkeit hilft.
  • Ändern Sie Ihre Schlafgewohnheiten. Wachen Sie früh auf und gehen Sie früher ins Bett, als Sie vielleicht möchten. Wenn Sie nicht schlafen können, ruhen Sie sich in einem schwach beleuchteten Raum aus und lesen Sie etwas Langweiliges. Machen Sie sich keine Sorgen, wenn Sie nicht sofort einschlafen können.

Nachdem ich alle medizinisch relevanten Dinge durchgearbeitet habe, schauen wir uns an, was Sie mit Ihrer Arbeit anfangen können:

  • Jemand schlug vor, die Pomadoro-Technik anzuwenden. Dies wird auch als Time-Boxing bezeichnet, und ich halte es für eine gute Idee. Sie konzentrieren sich im Grunde genommen intensiv für 20-25 Minuten, dann machen Sie eine kleine Pause. Ich schlage vor, Sie stehen auf und bewegen sich für ca. 3-5 Minuten und schauen in die Ferne, um Ihre Augen auszuruhen. Versuchen Sie, in dieser Zeit nicht an Ihre Aufgaben zu denken. Holen Sie sich einen Drink, gehen Sie ins Badezimmer oder ziehen Sie einfach für einen kurzen Moment in Ihrem Büro um.
  • Finden Sie in Abhängigkeit von Ihrer Beziehung zu Ihrem Chef einen Weg, um Ihre Bedenken zu besprechen, dass der Arbeitsplan sich auf Ihre Gesundheit auswirkt. Sagen Sie ihm, dass Sie nicht riskieren möchten, den Kunden des Unternehmens im Stich zu lassen, und dass Sie versuchen möchten, eine Strategie zu entwickeln, die sicherstellt, dass Sie Ihre Arbeit weiterhin erledigen können, dies aber bedeutet, dass Sie es brauchen Zeit zu nehmen, um auch Ihre gesundheitlichen Bedenken auszuräumen. Verwenden Sie dies jedoch als letzten Ausweg, da es besser wäre, die falschen Volkswirtschaften zu erklären, die hier am Werk sind, wie zum Beispiel:
    • Erschöpfte Arbeitnehmer haben am Ende eine stark reduzierte Effizienz, während nicht erschöpfte Arbeitnehmer in kürzerer Zeit mehr leisten können, und ich würde versuchen, einige Zahlen und Studien zu beschaffen, die Sie als Grundlage verwenden können. Mit einem guten Chef sollte man das nicht einmal brauchen. Die folgenden Artikel können für Sie von Nutzen sein: Artikel 1 , Artikel 2 , Artikel 3
    • Das Überspringen von Tests und die Aufmerksamkeit auf einige der kleinen Details kostet Sie später. Sehen Sie sich das Konzept der technischen Schulden als Ausgangspunkt an.
  • Versuchen Sie, Ihre Arbeitszeit auf 8 bis 9 Stunden pro Tag zu reduzieren.
  • Buchen Sie einen Urlaub und verreisen Sie für eine Weile an einen ruhigen Ort. Selbst wenn Sie nur mit dem Auto in den Wald fahren und eine Woche zelten. Im Ernst, tun Sie eine Weile nichts, um Ihre Batterien aufzuladen.

In Bezug auf das eigentliche Programmieren:

  • Lesen Sie die Bücher Clean Code und Refactoring und nehmen Sie sich die Zeit, um die darin enthaltenen Techniken anzuwenden. Diese helfen Ihnen, das Problem der Codequalität zu lösen. Wie ich bereits erwähnt habe, wird es anscheinend länger dauern, bis die Dinge erledigt sind. Sie werden jedoch weniger Zeit damit verbringen, sich mit Unordnung und Problemen zu befassen, die sich aus Ihrer früheren Arbeitsweise ergeben haben.
  • Finden Sie Tools, die Sie in Ihre Entwicklungsumgebung integrieren können, um Sie bei Ihren Bemühungen zur Verbesserung der Codequalität zu unterstützen. Wenn Sie beispielsweise in Visual Studio entwickeln, kann die Verwendung einer Kombination von Tools wie Resharper und NCrunch zu einer erheblichen Steigerung Ihrer Gesamteffizienz beitragen, wenn Sie sie religiös verwenden und bereits gute Techniken anwenden, wie in den genannten Büchern beschrieben .
  • Schreiben Sie Komponententests und verwenden Sie einen Test-First-Ansatz. Dies scheint Sie am meisten zu verlangsamen, Sie werden jedoch Ihre Entwicklung insgesamt beschleunigen, wenn Sie Tests haben, da diese zu einer Verkürzung der Debugging-Zeit beitragen können und Ihnen das Vertrauen geben, getesteten Code zu ändern. Schreiben Sie Ihre Tests, um die Anforderungen und nicht den Code zu erfüllen. Dies wird Ihre Testbemühungen konstruktiv fokussieren, was den Zeitaufwand für das Testen minimieren sollte.

Am wichtigsten ist jedoch, dass Sie die Erwartungen verwalten und mit Ihren eigenen beginnen müssen. Sie sind nur Menschen und können zu einem bestimmten Zeitpunkt nur so viel tun. Sie müssen die Erwartungen Ihres Chefs verwalten und Ihren Chef oder sich selbst die Erwartungen Ihrer Kunden verwalten lassen. Dies bedeutet, die von Ihnen geleistete Arbeit ernsthaft zu priorisieren. Planen Sie Zeit für neue Funktionen und Zeit für Fehler ein und nehmen Sie an, dass Ihre Fristen verrutschen. Wenn Sie sich mit der Möglichkeit eines verrutschenden Liefertermins befassen, versprechen Sie, nur eine Reihe kritischer Funktionen bereitzustellen, und lassen Sie den Rest der Funktionen als "nett, wenn möglich" zu haben. Am nächsten Liefertermin durchlaufen Sie diesen Prozess erneut und erhöhen die Prioritäten der "Gut zu Haven" der vorherigen Lieferung und so weiter. Bauen Sie dies als minimalen Ausgangspunkt in Ihre Entwicklungsmethodik ein, und überprüfen Sie nach einigen Lieferungen, wo Sie Ihre Prozesse optimieren können, um Ihre Effizienz zu verbessern. Die größte Effizienz wird durch Ihre Änderungen im Lebensstil erzielt. Es gibt jedoch immer kleine Dinge, die Sie tun können, um Ihre Arbeit zu rationalisieren, z.

Seien Sie in all dem proaktiv. Zeigen Sie Ihrem Chef, dass Sie beide zusammenarbeiten können, um die Dinge wirklich zu verbessern, was sich letztendlich positiv auf Sie und das Unternehmen insgesamt auswirkt.

Treffen Sie jetzt auch keine drastischen Entscheidungen. Warten Sie, bis Sie sich mit Ihrer Gesundheit und Ihrer Arbeitsbelastung befasst haben, und sehen Sie sich eine Weile an. Wenn Ihr Geist klarer wird und Sie sich an einem besseren Ort fühlen, ist es an der Zeit zu entscheiden, ob es sich lohnt zu bleiben oder ob es Zeit ist, weiterzumachen. Was ich im Grunde sage, ist, sich mit jeweils einem Problem zu befassen und den Rest ein wenig schmoren zu lassen, bis sie Ihre Aufmerksamkeit benötigen.


4

Wenn Ihr Zeitplan eng ist, müssen Sie zwanghaft sein, sich nicht zu wiederholen . Identifizieren Sie die am häufigsten verwendeten Methoden und stellen Sie sicher, dass sie häufig wiederverwendet werden.

Planen Sie, woran Sie heute arbeiten, schreiben Sie es auf und halten Sie sich daran. Versuchen Sie, das, woran Sie sich erinnern müssen, auf sieben oder weniger Elemente zu beschränken.

Ich würde einen Schritt weiter gehen und vermeiden, andere Arbeiten zu wiederholen. Verwenden Sie nach Möglichkeit die Sprachbibliotheken. Verwenden Sie nach Möglichkeit Bibliotheken von Drittanbietern.

Es scheint, als würde das Schreiben mehr Zeit in Anspruch nehmen, aber es sollten Methoden angestrebt werden, die nur eines tun. Ich beschränke eine Methode darauf, Entscheidungen zu treffen oder Dinge zu tun. Die Kohäsion Ihres Codes sollte zunehmen, während die Kopplung abnimmt. Sie sollten feststellen, dass das Testen einfacher ist. Dies eignet sich gut für eine fortschreitende Zersetzung.

Vereinfachen Sie so viel wie möglich. Verwenden Sie Vorlagen, Checklisten und andere Techniken, um das Nachdenken über Kleinigkeiten zu vermeiden.

Sie müssen Unterbrechungen vermeiden. Jede Unterbrechung kostet Sie ungefähr 15 Minuten im Zeitplan. Schützen Sie Ihre Zeit.

Wenn dies langfristig ist, gehen Sie nach Hause, wenn Sie feststellen, dass Ihre Leistung nachlässt. Wenn Sie ständig 12 Stunden am Tag arbeiten, ist Ihre Leistung wahrscheinlich ungefähr so ​​hoch, wie Sie es an 8 Stunden am Tag tun würden. Möglicherweise bemerken Sie nicht, wie stark sich Ihre Leistung verschlechtert. Nehmen Sie sich die zusätzlichen vier Stunden Zeit, um sich zu bewegen und auszuruhen. Versuchen Sie, mittags ein Nickerchen zu machen oder nach dem Mittagessen ein paar Stunden frei zu nehmen.


4

Wenn ich Sie wäre, würde ich mit meinem Manager sprechen und ihm erklären, dass die von ihm festgelegten Fristen unrealistisch sind. Wenn Sie einfach so weitermachen, werden sie denken, dass alles in Ordnung ist, sie werden sich der Probleme, die Sie haben, nicht bewusst sein und Sie werden Ihrem System jeden Tag mehr und mehr schlecht geschriebenen Code hinzufügen, was auch der Fall ist wird Ihre Arbeit noch weiter erschweren.

Alternativ kann man jederzeit zu einem anderen Job wechseln :-)


2

Verfolgen Sie alles, was Sie tun

Nehmen Sie sich die Zeit, um alles nachzuverfolgen, was Sie tun, und wie viel Zeit Sie und Ihr Team damit verbringen. Dies wird am Ende das sein, was Sie dem Management bringen, um ihnen zu zeigen, dass Sie die Dinge anders machen müssen. Wenn Sie nicht wissen, was Sie tun und wie viel Zeit Sie damit verbringen, von anderen gemeldete Probleme zu beheben, ist es viel schwieriger, sie davon zu überzeugen, dass Änderungen vorgenommen werden müssen. Jede Stunde muss von jedem verfolgt werden, damit dies korrekt ist. Dies bedeutet, dass Sie in den letzten 3 Wochen 80 Stunden damit verbracht haben, ein System zu reparieren, das in der gleichen Zeit von Grund auf neu aufgebaut werden konnte.

Versuche Dinge zu ändern

Verwenden Sie das Tracking, das Sie gesammelt haben, und die großartigen Vorschläge, die andere gemacht haben, um einen Plan zur Verbesserung der Software zusammenzustellen. Wählen Sie die Teile der Software aus, die die meisten Probleme verursachen. Stellen Sie den Plan zusammen, von dem Sie glauben, dass er die Dinge auf ein normales, handhabbares Tempo bringt. Gib ihm Zeit zum Arbeiten.

Bereiten Sie sich darauf vor, dass es Zeit sein kann, zu gehen

Wenn das Management nicht bereit ist, Dinge zu ändern und mit Ihnen zusammenzuarbeiten, ist es möglicherweise an der Zeit, darüber nachzudenken, weiterzumachen. Ich stimme anderen zu, dass Sie ausbrennen. Bereiten Sie Ihren Lebenslauf und Ihr Portfolio vor. Dinge können sich verbessern und Sie müssen nicht weitermachen, aber wenn sich das Management nicht an Änderungen beteiligt, fahren Sie fort. Ihre geistige und körperliche Gesundheit ist wichtiger als ein Job, der Ihnen so viel abverlangt.


Ich muss mit dem Teil "Alles verfolgen" nicht einverstanden sein, denn wenn diese Daten an die Geschäftsleitung geliefert werden, können sie durchaus äußerst kritisch sein, was die Unvollkommenheit bei der Verwaltung der Zeit durch den Mitarbeiter angeht. Dies verstärkt den Stress des Mitarbeiters.
Acumenus

2

Aus Liebe zu Gott, wo ist Ihr Projektmanager?

Wenn Sie keinen Projektmanager haben, der Sie beim Festlegen der produktiven Zeit unterstützt, benötigen Sie einen. Sie benötigen eine Person, die sich für Ihre Entwicklungszeit einsetzt, das Ausmaß des Ausfalls begrenzt, die Erwartungen verwaltet usw.

Sie machen einen kreativen Job für Ihren Lebensunterhalt. Wenn Sie keine Barriere zwischen Ihren Kunden / Benutzern und Ihnen haben, wie können Sie sich effektiv auf Ihre Entwicklung konzentrieren?

Eine gute PM kann für viele Dinge gut sein ...

1. Um die 'Higher Power'-Karte auszuspielen:

Ihre Benutzer nerven Sie mit neuen Funktionen, aber Sie brauchen wirklich etwas Zeit, um sich auf ein Bugfix-Release zu konzentrieren. Wer hat gesagt, dass Sie mit den Benutzern sprechen müssen? Ist es Ihre Verantwortung, die Verträge zu schreiben? Ist es Ihre Aufgabe, die Kundenerwartungen zu verwalten? Haben Sie die endgültige Entscheidungsbefugnis, um die Vertragsbedingungen zu bestimmen?

Nein? Warum sind Sie dann allein für die Interaktion mit dem Kunden verantwortlich? Die Entwicklung ist hart und erfordert viel Konzentration. Sie müssen in der Lage sein, Entwicklungszeit zurückzugewinnen, und das mit einer guten PM und einer guten Ausrede.

Unabhängig davon, was Ihre PM im Vergleich zu Ihnen macht, wenn Kunden anfangen, Sie über Änderungen außerhalb der Spezifikation zu belästigen, sagen Sie einfach.

"Änderungen außerhalb der Spezifikation zu verhandeln, liegt über meiner Gehaltsstufe ..."

Es ist eine höfliche Art zu sagen, ich gebe nicht als ***.

Befolgen Sie dies, indem Sie den "Scope Creep Dog" auf sie übertragen.

"Wenn Sie Änderungen an der Spezifikation vornehmen möchten, müssen Sie sich mit meiner PM in Verbindung setzen."

Lass mich jetzt alleine. Die Fähigkeit eines Benutzers, direkt mit den Entwicklern zu interagieren, ist ein Privileg, das entzogen werden kann. Wenn dies nicht der Fall ist, versagt Ihr Management Ihnen.

2. Verwalten von Erwartungen 101

Wer bei klarem Verstand denkt, dass Sie einen solch verrückten Zeitplan erstellen und rund um die Uhr technischen Support leisten können. Sie brauchen jemanden, der sich für Sie einsetzt, denn Ihre Zeit ist wertvoll und sollte Ihrem Handwerk gewidmet sein.

Dies gilt sowohl für Kunden als auch für das Unternehmen, für das Sie arbeiten. Für Kunden, wenn sie überschreiten, können Sie immer fragen ...

"Ist dieser Service vertraglich geregelt?"

Ist dies nicht der Fall, haben Sie das Recht, Anfragen abzulehnen. Verstehen Sie mich nicht falsch, es ist schön, über alles hinauszugehen, um Ihre Kunden glücklich zu machen, aber es ist ebenso wichtig, sie über den Unterschied zwischen dem, was erwartet wird und dem, was Sie ihnen als Gefallen geben, zu informieren.

Für die Firma, für die Sie arbeiten, brauchen Sie jemanden, der die Botschaft trägt ...

"Entspricht die Arbeit, zu der ich aufgefordert werde, meiner Gehaltsstufe?"

Zahlt man Ihnen 60.000 pro Jahr, um 50% Ihrer Zeit mit telefonischem technischen Support zu verbringen? Dies ist ein gefährliches Thema, das angesprochen werden muss, sodass Sie eine vertrauenswürdige PM benötigen, um ein gutes Argument für Sie zu finden. Das Argument, das Sie ihm vorbringen sollten, ist ...

"Ich werde 60.000 pro Jahr bezahlt, aber die Hälfte meiner potenziellen Produktivität wird für einfache Arbeit verschwendet."

Oder ihr habt mich engagiert und verliert bereitwillig Geld für diese Investition, indem ich die Hälfte meiner Zeit damit verbringe, eine niedrige Besoldungsgruppe zu besetzen. Ob Sie es glauben oder nicht, indem Sie Ihr Potenzial maximieren, können sie auf lange Sicht mehr Geld verdienen.

Wenn es ums Geschäft geht, ist es verdammt viel einfacher, das Unternehmen dazu zu bringen, seine Position zu ändern, wenn Sie eine Win-Win-Situation darstellen können. Sie müssen kein Verhandlungskünstler sein, damit dieser festhält. Wenn die Ressourcen des Unternehmens begrenzt sind, kann dies natürlich zu Fehlschlägen führen.

3. Jeder kann manchmal eine Cheerleaderin gebrauchen

Ein guter PM wird natürlich eine Person sein. Der Kern dessen, was sie tun, sind die Beziehungen zu Menschen. Ein guter PM kann Ihren Kunden sagen, was sie nicht hören möchten, und lässt sie trotzdem glücklich davonlaufen.

Sie können auch eine gute Quelle moralischer Unterstützung sein, wenn die Zeiten hart werden. Ein einfacher Moralschub sollte nicht zu viel für eine gute PM sein, wenn Sie danach fragen. Sie brauchen jemanden auf Ihrer Seite, sonst sinkt Ihre Moral und die Arbeit fühlt sich überwältigend an.


Wenn Sie in der Organisation keinen höheren Mitarbeiter haben, der für das Verwalten der Erwartungen verantwortlich ist, versagt Ihr Management, und den höheren Mitarbeitern ist wahrscheinlich nicht einmal bewusst, wie schlecht das Projekt abläuft.

Das ist der Hauptgrund, warum ich es vermeide, für Unternehmen wie die Pest zu arbeiten. Ich hatte das Glück, für kleinere Unternehmen zu arbeiten, in denen ich jemanden in höheren Positionen habe. Ich kann ehrlich über Probleme sprechen, mit wem ich das, was ich zu sagen habe, vertraulich umgehen und gegebenenfalls Maßnahmen ergreifen kann.

Sie benötigen jemanden an Ihrer Seite, der Sie dabei unterstützt, die geschäftlichen Anforderungen zu erfüllen und Ablenkungen zu bewältigen. Wenn Sie das nicht haben und keine Hoffnung mehr haben, es in Zukunft zu finden, viel Glück ...


1

Wow wow wow ! Halten Sie Ihre Pferde Cowboy! Sie scheinen die Entwicklung dort völlig falsch zu haben. Beim Codieren fehlen hier einige Software-Grundlagen. Ja, die Grundlagen auffrischen ... das Leben wird viel einfacher.

Jetzt zurück in die Schule

  1. Rapid-Development-Taming-Software-Flugpläne *
  2. Mythischer Mann-Monat *

*Muss lesen


2
nächste Frage - wie man programmiert und es schafft, einige Bücher nach einem engen Zeitplan zu lesen :-D
Ventsyslav Raikov

1
@Bond - Alter, wir hätten dieses Buch schon lesen müssen, bevor wir mit dem Projekt beginnen. Wenn nicht, müssen wir erkennen, dass kontinuierliches Lernen ein Teil unserer Softwareentwicklung ist. Wir sollten das Lesen nicht als Teil unserer täglichen Arbeit betrachten. Wir hätten schon einige Zeit täglich lesen sollen. Ich denke, es ist das Recht eines Softwareentwicklers, einen Teil seiner Zeit damit zu verbringen, auch während der Bürozeiten zu lesen. Ich persönlich habe gesehen, dass selbst das Lesen von nur 5 Seiten pro Tag eine enorme Wirkung hat. Wenn Sie jetzt mit dem Lesen beginnen, sparen Sie Zeit bei Ihrem nächsten Projekt.
Imran Omar Bukhsh

stimme dir absolut zu mann, ich lese jeden tag. Aber ich arbeite nicht 12 Stunden am Tag. Wenn ich das tun würde, würde ich definitiv keine Bücher lesen. Das Leben ist mehr als Arbeit.
Ventsyslav Raikov

@Bond - stimmt, aber es wird nicht mehr viel Leben geben, wenn wir nicht richtig arbeiten. In meiner Firma arbeite ich 5 Stunden am Tag. Wir haben in ca. 1,5 Jahren einen Kriechmotor gebaut. Wir haben mehr als 1 Million Besucher pro Monat.
Imran Omar Bukhsh

1

Ich mag es, eine TODO-Liste zu erstellen, sie nach Bedarf zu sortieren und mich bedingungslos an diese Reihenfolge zu halten - auch wenn ich Lust habe, einige Aufgaben zu verschleppen.

Sie wären überrascht, wie viel Zeit Sie sparen können, wenn Sie weniger Zeit damit verbringen, sich zu fragen, woran Sie als Nächstes arbeiten müssen.


1

Was Sie jetzt tun können, ist zu

  • Koppeln Sie sich mit einem Kollegen
  • Bei jedem Code, den Sie schreiben oder ändern, müssen Sie sich darauf einigen, gut genug zu sein. Führen Sie als Paarprogrammierung vorzugsweise nur eine Begutachtung durch, wenn Sie kein Paarprogramm durchführen können.
  • weichen Sie nicht davon ab!

Dies bedeutet, dass mindestens das, was Sie von nun an tun, von ZWEI Personen genehmigt wurde, die hoffentlich diese Codebits verbessern.

Was sonst noch getan werden kann, hängt vom Management ab. Vielleicht möchten Sie ihnen diese Frage mit den Antworten zeigen!


Ich muss stark mit der Paarprogrammierung übereinstimmen. Es ist nicht so, wie unabhängige Denker oder kreative Köpfe arbeiten. Es ist auch niemals ein Ersatz für ein Team-Peer-Review.
Acumenus

1

Sperren Sie Telefonanrufe und implementieren Sie die strikte Regel "NUR Fehler werden nachverfolgt". Dann müssen Sie zuerst die neu eingegebenen Bugs durchsuchen, Dupes bereinigen, Prioritäten setzen und zuerst an den Bugfixes arbeiten. Und stellen Sie sicher, dass Ihre Fehlerbehebungen den Fehler tatsächlich beheben und keine neuen Fehler einführen.

Wie machst du den letzten Teil? Durch Nachrüsten von Testfällen auf Ihren vorhandenen Code. Wenn Sie über Funktionen verfügen, testen Sie, ob diese die erwarteten Werte eingeben und ausgeben und ob sie fehlerfrei sind, wenn Sie ihnen Junk geben. Verwenden Sie eine Art automatisierten UI-Test, um die Integration und Leistung von vorne nach hinten zu testen.

Um 3 Uhr morgens stehen Sie nicht auf, um Code-Probleme zu lösen, oder? Wenn ja, verdienen Sie alles, was Sie bekommen.



0

Sie und Entwickler wie Sie sind der einzige Grund, warum ich mir vorstellen kann, eine Softwareentwicklungslizenz zu benötigen, wie Ärzte und Anwälte. Auf diese Weise kann Ihre Lizenz widerrufen werden, wenn Sie nicht den bewährten Methoden für die Grundprogrammierung folgen. Dies würde nicht nur die Branche vor Inkompetenzen schützen, sondern auch jene kompetenten Programmierer vor Managern, die darauf bestehen, dass ihre Programmierer sich nicht an bewährte Praktiken halten.

Zu Ihrer Information, praktisch jeder arbeitet an einer engen Frist. Diejenigen Entwickler, die wissen, was sie tun, befolgen jedoch Best Practices, da die Arbeit auf lange Sicht schneller erledigt wird. Dann müssen sie drei Jahre hintereinander keine 12-Stunden-Tage arbeiten.

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.