Wie kann man ein junges und sterbendes Projekt retten?


12

Ich poste dies anonym, weil ich keine potenziellen Probleme haben möchte.
Ich habe ein großes Problem.
Ich bin kürzlich einem Team beigetreten, das jünger als ein Jahr ist. Ich bin seit einem Monat hier, um mit dem Projekt zu beginnen. Die Unternehmensstruktur sieht folgendermaßen aus:

  • Inhaber (nicht technisch)
    • Projektmanager (nicht technisch)
      • Leitender Entwickler (technisch, aber schlecht darin)

Bei diesem Projekt handelt es sich um eine Website mit ASP.Net, für die der leitende Entwickler eine schreckliche Architektur entworfen hat. Sie müssen mir beim Wort nehmen, aber im Grunde bedeutet die Art und Weise, wie wir Webseiten erstellen müssen, dass wir im Debug-Modus mehr als 3 Minuten Ladezeit auf einer einzelnen Webseite über VPN haben.

Es hat sich zu einem Punkt entwickelt, an dem andere Kollegen zustimmen, dass sie mehr Zeit damit verbringen, auf das Laden von Seiten zu warten als auf die eigentliche Entwicklung.

Das große Problem ist jetzt das hier. Der Projektmanager kennt die Technologie nicht und gibt sie zu. Er hat ausdrücklich erklärt, dass er dem leitenden Entwickler vertraut, um die richtigen Entscheidungen in Bezug auf die Anwendungsarchitektur zu treffen.

Niemand im Team weiß, was die Meinung der Eigentümer ist, aber jeder hat Angst, in dieser Wirtschaft Wellen zu schlagen (besonders ich selbst).

Was würden Sie tun?


1
Was ist der Hintergrund des Hauptentwicklers? Wenn er Kritik nicht gut nimmt, wäre ich versucht, Schiff zu springen.
JB King

13
3+ Minuten !! : Es schwer zu schlafen in der Nacht OI finden , wenn eine unserer Web - Anwendungen länger dauert dann 300ms ...
Darknight

9
Meine Frage wäre: Haben Sie ein Design, das Sie als Zertifizierer verbessern würden? Haben Sie versucht, dieses Design dem Lead vorzustellen?
SoylentGray

6
@Darknight: Ich bin mir nicht sicher, ob es mehr als 3 Minuten dauern kann, bis eine Seite geladen ist, auch wenn ich es versucht habe. Trotzdem nicht ohne Sleep()Anrufe!
Carson63000

1
Wie lange dauert es aus Neugier, eine einzelne Webseite nicht im Debug-Modus und nicht über das VPN zu laden?
Matt Freake

Antworten:


31

Dieses Problem kann dem Projektmanager in sehr nicht-technischen Begriffen demonstriert werden. Stellen Sie Ihre Site in ein Browserfenster vor der PM und bitten Sie ihn, eine Weile damit herumzuspielen. Nach etwa zwei Seiten sollte der leitende Entwickler auf dem Teppich angerufen werden, wenn die Dinge so schlimm sind, wie Sie sagen.

Der PM verfügt möglicherweise nicht über die speziellen Entwicklungskenntnisse, um zu verstehen, warum dies schlecht ist, kann sich jedoch als allgemeiner Website-Benutzer davon überzeugen. Andere Sites, auf denen ähnliche Informationen angezeigt werden, werden in einem Bruchteil Ihrer Zeit geladen, und Ihre werden über das lokale Netzwerk vom Server im nächsten Raum geladen.

Wenn dies nicht fliegt, dann gehen Sie zum Eigentümer. Der Besitzer ist ein Geldmensch, aber er wird sehr schnell in der Lage sein, eine langsame Website zu sehen, die niemand besuchen wird == kein Geld. Stellen Sie die gleiche Demonstration auf und bevor die erste Seite geladen wird, sollte er BEIDE PM und den Lead auf seinem viel besseren Teppich anrufen.

Wenn Sie sich Sorgen machen, dass ein Typ Wellen schlägt, sollten Sie mehr als einen Entwickler dazu bringen, ihre Bedenken zu äußern. Um ehrlich zu sein, in einem so flachen Unternehmen wie Ihrem sind Sie arbeitslos, wenn es sich bei dem Produkt, das Sie entwickeln, um eine Bombe handelt. Wenn Sie das so sehen, haben Sie nichts zu verlieren als ein paar zusätzliche Wochen oder Monate im Unternehmen. Wenn dies ein Problem ist, planen Sie einige "Zahnarzttermine" und suchen Sie nach einer neuen Beschäftigung, bevor Sie Ihre Bedenken äußern. Wenn Sie diesen Job verlieren, beginnen Sie am nächsten Montag.


4
+1 Für den Rat und auch für das "Wenn das Produkt, das Sie entwickeln, eine Bombe ist, sind Sie arbeitslos, egal ob Sie laut sprechen oder schweigen."
Marjan Venema

19

Vorausgesetzt, Ihre Aussagen sind korrekt, haben Sie einen inkompetenten leitenden Entwickler und einen inkompetenten Projektmanager (zumindest in dem Maße, in dem er die Fähigkeiten des Teams nicht einschätzen kann). Fein. Sie haben in jedem Team auf der ganzen Welt genau die gleichen Möglichkeiten wie Entwickler.

  1. Arbeiten Sie, ohne sich um die Gesundheit des Unternehmens zu kümmern?

  2. Arbeit woanders suchen.

  3. Machen Sie dem Lead, dem PM und dem Eigentümer vernünftige Vorschläge und hoffen Sie, dass sie angenommen werden.

Sie können eine beliebige Kombination der oben genannten Methoden gleichzeitig ausführen.

Wenn Sie die Gesundheit des Projekts aggressiv sicherstellen möchten, müssen Sie mit den anderen Entwicklern zusammenarbeiten, um in Ihrer Freizeit ein neues Framework zu finden und dem Rest des Teams zu demonstrieren, warum es überlegen ist und die alte Arbeit es sollte zugunsten von ihm fallen gelassen werden.


8

Ich arbeitete in einer ähnlichen Situation, in der der leitende Entwickler, der eigentlich ein Partner des Unternehmens war, den "Kern" der Software geschaffen hatte und mit Ausnahme eines engen Freundes, der direkt mit ihm zusammenarbeitete, anderen Entwicklern nicht gestattet war, die Software zu berühren Ader.

Die "Potenzen, die" auch Regeln wie jedes Modul erstellt werden, können nur eine Datenbanktabelle haben, weil es auf diese Weise sauberer ist. Daraus resultierend wurden vorhandene Dropdowns erstellt, indem "DISTINCT" aus Tabellen in der Datenbank ausgewählt wurde, anstatt eine separate Tabelle zu haben.

Es gab eine Reihe von fehlerhaften Patches, da das Implementierungsteam die Aufgabe erledigen musste und das Produkt nicht sofort funktionsfähig war. Diese Patches verursachten so viele Probleme, wie sie behoben und für jede Installation angepasst (gehackt) wurden.

Mein Ansatz war es, einen kleinen Teil der Spezifikation, den der Core nicht unterstützte, zu übernehmen und einen kleinen, guten, generischen Patch dafür zu schreiben. Etwas, das das Implementierungsteam zufriedenstellte, aber nicht so bedrohlich war wie "Wir müssen unser Denken komplett ändern". Aufgrund der Feindseligkeit zwischen dem Implementierungsteam und den Kernentwicklern dauerte es Monate, um das Implementierungsteam davon zu überzeugen, dass mein Ansatz besser war als ihre Hacks. Aber sobald sie sahen, dass ich ihnen zuhörte und zusätzliche Anpassungen vornahm, um sie zu unterstützen, waren sie hocherfreut und auf meiner Seite. Es dauerte einen weiteren Monat, bis der leitende Entwickler den Patch akzeptiert hatte, aber als er ihn einmal tat, eröffnete er uns allen die Möglichkeit, andere Teile des Systems besser zu gestalten.

Es ist nie ein kurzer Weg, um das Denken der Menschen zu ändern, besonders wenn Sie eine zivile Beziehung zu ihnen pflegen müssen. Aber wenn Sie es richtig angehen, können Sie Respekt erlangen, ohne Ihren Chef zu beleidigen.

Ich hoffe, das hilft!


7

Sehr einfache Antwort und Lösung. Es scheint, dass sich jeder des Problems bewusst ist. Daher ist es für niemanden von Wert, wenn Sie auf das Problem aufmerksam machen. Tatsächlich sieht man so einfach wie ein Winser aus. Wenn Sie einen Mehrwert schaffen möchten, müssen Sie auf die Lösung hinweisen und den Business Case für den Wechsel zu Ihrer Lösung aufbauen. Dann können Sie mit einer entsprechenden Lösung auf das Problem hinweisen. Eine Demo würde auch viel dazu beitragen, Ihre Lösung zu beweisen. Natürlich kann dies bedeuten, dass Sie in Ihrer Freizeit arbeiten müssen, aber es hängt alles davon ab, wie wichtig es für Sie ist.


1
+1 für die Demo-Idee. Einige Menschen haben es sehr schwer, sich vorzustellen, dass es möglich ist, es besser zu machen, wenn nicht unbestreitbare Beweise vorgelegt werden.
Karl Bielefeldt

2

Zunächst möchte ich Ihnen dringend empfehlen, sich von Ihren Fakten zu überzeugen, da es sich um ein Anwendungsarchitekturproblem handelt und nicht um ein Problem in der VPN-Konfiguration. Ich habe gesehen, dass schlecht konfigurierte VPNs genau dieses Problem verursachen. Wissen Sie sicher, dass die App im Büro so langsam ist?

Wenn Sie das Netzwerk ausgeschlossen haben, würde ich dem Vorschlag von KiethS folgen und die PM die Seite aufrufen lassen.


1

Es klingt wie das Geschäft, oder zumindest wird das Projekt irgendwann bald untergehen. Kurz vor dem Aufhören würde ich versuchen, mich so schnell wie möglich davon zu distanzieren, z. Freiwilligenarbeit / Arbeit an anderen Projekten beantragen. Mit der Zeit werden Sie hoffentlich weniger Zeit für diese Katastrophe aufwenden als für andere Projekte, bei denen die Chance besteht, dass sie funktionieren. Sie möchten nicht als "der Typ" betrachtet werden, der an dem Projekt gearbeitet hat, das nicht funktioniert hat. Es geht darum, Ihren Ruf zu schützen.


0

Will der Besitzer ein gutes Produkt oder nicht? Ich vermute sehr, dass die Antwort "Ja" ist ... und deshalb müssen Sie sich melden. Sie müssen die aktuelle Architektur dokumentieren und dann (mit guten imperialen Daten) zeigen, dass das Produkt nicht den angemessenen Leistungserwartungen entspricht. Sie sagen, Ihre Mitarbeiter wissen alle, dass es schlecht läuft - na ja ... was ist mit dem Kunden? Was sagen Sie? Verwenden Sie ein Tool zur Leistungsmessung und bestimmen Sie, was so lange dauert. Viele Tools zeigen Ihnen sogar, wie lange jeder Funktionsaufruf dauert. Aus all diesen Daten sollten Sie genügend Munition haben, um mit Ihrem Projektmanager und dem technischen Leiter darüber zu sprechen, warum die Dinge nicht so sind, wie sie sein sollten, und wie einige größere Umbauten erforderlich sein können, um das Produkt auf den neuesten Stand zu bringen.

Dann (nur nach Rücksprache mit dem Premierminister und der Leitung) sollte dies ausreichen, um einige Änderungen vorzunehmen. Wenn der PM zu diesem Zeitpunkt nicht überzeugt ist, müssen Sie sich entscheiden, ob dies wirklich ein Ort ist, an dem Sie sein möchten. Wenn ja, dann evtl. ein Treffen mit dem Vermieter. Wenn nicht, machen Sie den Lebenslauf fertig.

Stellen Sie sicher, dass Sie jeden Schritt auf dem Weg dokumentieren.


0

In technischer Hinsicht stimme ich den obigen Vorschlägen zu. Andererseits bin ich der Meinung, dass es sich eher um ein Beziehungsproblem als um ein technisches handelt.

Wenn Sie den reibungslosen Weg beschreiten möchten, ist ein Gespräch mit dem leitenden Entwickler eine geeignete Wahl. Ich würde aber nicht im Büro sprechen. Wenn Sie draußen einen Kaffee trinken, werden die Dinge ein wenig ungezwungener und entspannter.

Wenn das nicht funktioniert, können Sie versuchen, mit dem PM und dann dem Eigentümer zu sprechen.

Wenn keiner funktioniert, schlage ich vor, dass Sie sich nach einem neuen Job umsehen.


0

Ehrlichkeit - und so viel Fingerspitzengefühl wie Sie aufbringen können.

Beginnen Sie mit dem leitenden Entwickler und arbeiten Sie sich nach oben, wenn Sie müssen. Versuchen Sie, die besseren Seiten ihrer Persönlichkeit einzubeziehen. - Wenn Entwickler Probleme lösen möchten, den Tag retten möchten, effizient sein möchten, usw. Formulieren Sie das Problem in dieser Angelegenheit Erfolg hatte in der Vergangenheit als zusätzliche Motivation.

Wenn Sie keine Wellen schlagen, sind Sie wahrscheinlich tot im Wasser.


0

Wäre es möglich, die Probleme wieder auf ein Niveau zu bringen, das messbar und nichttechnisch ist, damit der Projektmanager und der Eigentümer verstehen können?

Wenn Sie beispielsweise die langsame Ladezeit von mehr als 3 Minuten erwähnen, würde ich davon ausgehen, dass irgendwo in der Spezifikation eine Leistungsanforderung besteht, die so einfach ist wie "Seite muss innerhalb von 1 Sekunde geladen werden". So etwas ist messbar und kann nicht widerlegt werden. Wenn die Ursache für dieses Problem in der zwielichtigen Architektur liegt, sollten der Projektmanager und / oder der Eigentümer eingreifen, um einige Änderungen zu erzwingen.

Wenn nicht, haben Sie ein systematisches Problem in Ihrem Unternehmen, bei dem die anfängliche Analyse schlecht durchgeführt wurde und nicht genügend Prozesse vorhanden sind, um diese Art von Problemen zu beheben. Betrachten Sie springendes Schiff!


0

Echte Männer sprechen ohne Ressentiments oder Emotionen. Das ist der Trick.

Der einzig gültige Grund, warum jemand mit Ihnen verärgert sein könnte, ist, wenn Sie ärgerlich dastehen:

DER LEAD DEVELOPER HAT KEINE Ahnung, WAS ER TUT. Ich wusste, dass dies passieren würde, aber niemand hörte mir zu, bla bla bla.

wohingegen

Das Codemodell ist falsch, weil es schwierig zu warten und zu verlangsamen ist. Wir müssen strategisch vorgehen und diese beiden Probleme beheben.

Ersteres ist ein Kampf um die Zerstörung, letzteres ist ein Kampf um den Frieden, und auf lange Sicht werden Sie den Respekt erhalten, den eine Person dafür hat, ehrlich zu sein.

Wenn der Projektleiter dies als eine Front betrachtet, die er sicherlich in Erwägung ziehen könnte, gefeuert zu werden, dann sagen Sie einfach:

Mach mich nicht für Dinge verantwortlich, für deren Umsetzung ich nicht verantwortlich war. Ich bin nur ehrlich.

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.