Was kann ich tun, wenn mein Teamleiter mein Datenbankschema mit einer bevorstehenden Version auflöst?


21

Mein Teamleiter hat die schreckliche Angewohnheit, sich mit dem Datenbankschema herumzuschlagen und Änderungen vorzunehmen, die schwerwiegende Schäden an der Codebasis verursachen würden (ohne mich wirklich zu befragen, wie sich die Änderungen auf die Codebasis auswirken würden).

Normalerweise würde ich einfach damit leben, aber wir haben eine Frist in 2 Wochen und das ist passiert, seit ich vor anderthalb Monaten angefangen habe. Ich wurde angezogen, um die Entwicklung des Projekts zu beschleunigen.

Aufgrund der Frist stelle ich bereits mehr als 60 Stunden in der Woche ein und habe nicht mehr die nötige Energie, um damit umzugehen (ich habe es in gewisser Weise bereits versucht). Wir sind nur ein 2-Mann-Team, und neben der täglichen Änderung der Datenbank hat er nicht viel im Sinne der tatsächlichen Entwicklung (Codierung) beigetragen.

Momentan habe ich das Gefühl, ich mache die ganze Arbeit und muss 'reparieren', was er mit seinen Änderungen bricht.

Wie geht man damit um? Ich habe bereits mit unserem Manager über seine mangelnden Anstrengungen in der Entwicklungsabteilung gesprochen. Er war 6 Monate länger dort als ich, aber ich habe 95% des Codes geschrieben, wenn Sie die fünfte Normalform-Datenbankmonstrosität ausschließen, die er "beigesteuert" hat.

Irgendwelche Vorschläge?

Obduktion:

Am Freitag hatten wir ein Gespräch mit dem Manager, und ich machte meine Sorgen bekannt. Dies führte zu einer gewissen Konfrontation, aber insgesamt hatte ich das Gefühl, dass der Manager auf meiner Seite stand. Zumindest haben wir jetzt unsere Daten eingefroren. Mal sehen, wie es von hier aus weitergeht.


3
+1 für das Tag 'too-agile'! :-) Agile ist eine großartige Methode, aber einige Leute behaupten fälschlicherweise, sie seien agil, wenn sie einfach undiszipliniert sind.
Bill Karwin

2
Ein Paradebeispiel für automatisierte Tests, die sich auszahlen. Er verändert einen Tisch und 15 Minuten später beginnt ein Schnickschnack, Ihnen mitzuteilen, dass der gesamte Code kaputt ist.

Antworten:


15

"Deadline ist in zwei Wochen. Wir müssen das Schema einfrieren, wenn wir es erreichen wollen."


3
Ok, Schritt 1, Datenbank einfrieren, Schritt 3 Gewinn! :) Mal sehen, wie es geht ...

1
Ich habe die Verantwortung übernommen, ohne Verantwortung zu übernehmen. Wir haben jetzt ein anderes Teammitglied. Ihr Rat war die ultimative Antwort für die Zeit. Wir starren den Sh * T-Fan immer noch an ... :(

4

Im Gespräch mit dem Manager UND dem Entwickler bei derselben Besprechung:

"Datenbank- und Codeänderungen müssen gleichzeitig angezeigt werden. Wenn Sie die Datenbank ändern, müssen Sie auch die Codebasis ändern und testen. Andernfalls übermitteln Sie fehlerhafte Commits. Dies ist inakzeptabel, wenn wir die Frist einhalten möchten. Ich werde den Code nicht mehr reparieren Ich werde die Änderungen einfach zurücknehmen und Ihnen eine E-Mail-Nachricht hinterlassen, da ich außerhalb der von mir zugewiesenen Arbeit keine Nachforschungen anstellen und Probleme beheben kann und immer noch damit rechne, dass die Frist eingehalten wird. "

Viel schwieriger, wenn Sie keinen Testplan haben ...


Versuchsplan? Wir haben noch nicht einmal einen Plan! Nur die übliche Spezifikation für Kundenanforderungen, die in der Sprache des Kunden geschrieben ist ... Und ja, es ist sehr traurig, wenn Sie eine Check-in-Notiz machen müssen, in der steht: BUILD IS BROKEN.

2

Sie müssen energischer sein und sicherstellen, dass Sie sich bald (wie gestern, vorgestern oder im letzten Monat) für ein Schema entscheiden und vorwärts gehen. Es gibt keinen vernünftigen Weg, um eine App mit einer Datenbank, die ein sich bewegendes Ziel ist, weiterzuentwickeln.


1

Sie müssen ihn konfrontieren und ihm erklären, wie sich seine Änderungen auf die Codebasis und damit auf die Projektzeiträume auswirken. Überzeugen Sie ihn, dass er die Auswirkungen seiner Änderungen berücksichtigen muss, bevor er sie ausführt. Lassen Sie ihn auch in Anwesenheit Ihres Managers zustimmen, dass er für Verzögerungen verantwortlich ist, die er durch dieses Verhalten verursacht


1

Wenn der Teamleiter keine vernünftige Person ist (und er / sie nach Ihrer Beschreibung seines Verhaltens nicht vernünftig klingt), sprechen Sie mit Ihrem Manager und erklären Sie ihm, dass Sie die Frist nicht einhalten, wenn die Dinge so laufen. Bitten Sie ihn, Stellung zu beziehen und sicherzustellen, dass Ihr Teamleiter dies weiß, indem Sie eine Besprechung abhalten, in der der Manager die Erwartungen festlegt.

Sie sollten Ihre Argumentation auch in Bezug auf den mangelnden Beitrag Ihres Teamleiters zur Entwicklung vorantreiben. Beide Probleme müssen gelöst werden, um das Projekt zum Erfolg zu führen.


Wir haben so etwas durchgemacht, aber es scheint, als hätte er es nicht verstanden ... nun, er sagte, er würde dazu beitragen, aber ich habe bisher nichts gesehen, außer Schemaänderungen. Ich frage mich, ob er überhaupt Code schreiben kann und nicht nur 'Design'.

Warum lässt der Manager den Teamleiter damit davonkommen? Wer hat den Teamleiter zum Teamleiter gemacht? Hat Ihr Vorgesetzter nicht ein Mitspracherecht?

Ich denke, der Manager versucht, das Gesicht zu retten. Zumindest habe ich ihn früh gewarnt, und hoffentlich werden sie mich nicht für Verzögerungen verantwortlich machen.

1

Sie müssen Ihrem Team eine gewisse Zurückhaltung aufzwingen, aber das kann schwierig sein, in Ihrer Position darin zu spielen.

Ein nützlicher Weg, dies in Angriff zu nehmen, könnte eine strengere dokumentierte Änderungskontrolle sein. Sie können dies tun, indem Sie darauf bestehen, dass derzeit Ad-hoc-Änderungen Ihre Fähigkeit gefährden, die Systemaktualisierungen auf eine Weise zu verwalten, die keine unvorhergesehenen und terminbedrohlichen Konsequenzen hat (was zutrifft). Bestehen Sie daher darauf, dass alle Änderungen mit einer Dokumentation versehen sind, aus der die vorgeschlagene Änderung und deren Auswirkungen auf alle anderen Codes und Strukturen hervorgehen. Sie werden erstaunt sein, um wie viel das Volumen der durchgeführten Änderungen reduziert wird :-)


Einer der anderen IT-Support-Mitarbeiter hat das empfohlen :)

Hehe, das liegt daran, dass es stimmt - ich war dort. Die meisten anderen Antworten sind technische Lösungen für einen wahrgenommenen Ausfall logischer Systeme. Eigentlich, was Sie Verhaltensprobleme haben, so müssen Sie ein Bestrafungs- / Belohnungssystem implementieren, um dieses Verhalten zu ändern

1

Haben Sie eine Retrospektive mit dem Team durchgeführt? Wenn nicht, halte eins. Wenn Sie dies tun, identifizieren Sie die ungeplanten Änderungen an der Datenbank als Problem. Geben Sie die Kosten an, die Ihnen und anderen in Bezug auf das Risiko und die Qualität des Arbeitslebens entstehen. 60-Stunden-Wochen-Dauerbetrieb sind nicht nachhaltig. Wenn Sie nicht in der Lage sind, Ihr Entwicklungstempo aufrechtzuerhalten, sind Sie nicht agil.

Machst du auch TDD (Test Driven Development) oder automatisierten Funktions- / Regressionstest? In diesem Fall sollten Änderungen an der Datenbank zu fehlerhaften Tests führen. Dies sollte dazu beitragen, die Auswirkungen zu beheben und den zu aktualisierenden Code zu ermitteln.

In diesem Fall ist Ihr Teamleiter nicht " zu agil ", Ihr Teamleiter ist ein " agiler Cowboy ". Halten Sie eine Retrospektive ab und identifizieren Sie, was schief gelaufen ist. Priorisieren Sie es hoch und adressieren Sie es dann während der nächsten Iteration. Das sollte deinen agilen Cowboy einfangen !!!


Ich habe es versucht und versucht. Ich denke er ist ein reiner BS'ng Cowboy. Jedenfalls lebe ich damit.

0

Gab es bei Ihnen vor etwa einem Jahr nicht dasselbe Problem? ' Mein Teamleiter sagt A.Property = A.Property; ist in Ordnung '. Scheint, als wäre die Qustion verboten, weil ich sie in meinem Kommentarverlauf nicht sehe. Wie auch immer, der Punkt ist:

Wenn Sie das Gefühl haben, dass alle Ihre Teamleiter Sie nur mit der Hälfte Ihrer Erfahrung durcheinander bringen, würden Sie wahrscheinlich einen Job ohne einen finden . Ich würde vorschlagen, einen Versuch zu unternehmen und als weitere Option eine Führungsposition einzunehmen. Sollte dies dennoch möglich sein, wurde Ihnen dies bereits angeboten.

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.