Wie komme ich aus der Unterstützung heraus und beginne, die technischen Schulden zurückzuzahlen?


13

Ich habe einen Freund". Ja, guter Start, ich weiß, aber ehrlich gesagt bin das nicht ich!

Im Grunde ist er bereits auf einem erfolgreiches Projekt für ca. 4 Jahre arbeitet, ist die Schwierigkeit , die technischen Schulden gefangen haben und er zu finden , ist es fast unmöglich , das Produkt zu stoppen Unterstützung (Tweaking dies und das) und tatsächlich mit gehen reale Entwicklung.

Ich habe verschiedene Vorschläge gemacht, mich die ganze Zeit angemeldet, Tickets erstellt, keine E-Mails beantwortet usw. Das Problem dabei ist, dass es nur als Erinnerung zu dienen scheint, dass er nichts "Nützliches" erledigt.

Die technische Verschuldung ist größtenteils aufgetreten, weil es in erster Linie ein großer Vorteil für das Produkt war, Anfragen und Anrufe von Benutzern entgegenzunehmen und sie einfach schnell umzusetzen.

Ich würde gerne wissen, ob jemand Vorschläge hat, wie er aus diesem Trott herauskommt. Ein großer Teil davon würde die Wahrnehmung der Benutzer so verändern, dass sie nicht glauben, sie könnten einfach klingeln und etwas erwarten dann und dort getan werden.

Es ist gut zu sagen, dass Planen besser ist, obwohl es meines Wissens sehr schwierig ist, die tatsächliche Entwicklung zu planen, da Support und der relative Druck der Benutzer erforderlich sind (siehe oben).


2
Wenn ich Ihre Frage richtig verstehe, ist Ihr Freund zu beschäftigt, Benutzer-Support- / Änderungsanforderungen zu bearbeiten, um den Code aufzuräumen. Gibt es irgendwelche neuen Funktionen, nach denen Benutzer fragen, die als Ergebnis davon zurückgehalten werden?
Larry Coleman

@ Larry Coleman, oh yeah das ist ein zäher Kreislauf, neue Anfragen werden verzögert, was ebenso bedrückend ist wie die ständige Unterstützung.
MrEdmundo

Antworten:


13

Die Organisation Ihres Freundes braucht dringend jemanden, der das Änderungsmanagement übernimmt. Diese Person oder Gruppe nimmt Änderungsanforderungen und Fehlerbehebungen entgegen und priorisiert sie entsprechend den Auswirkungen auf das Geschäft und dem erforderlichen Aufwand. Auf diese Weise werden Aufgaben, die für die Organisation als Ganzes wichtiger sind, zuerst erledigt, im Gegensatz zu Aufgaben, die für diejenigen, die Ihren Freund im Moment belästigen, wichtiger sind.

BEARBEITEN: Als Beispiel dafür, wie dies funktionieren würde, haben die meisten Organisationen eine Schweregradskala. Der höchste Schweregrad ist eine geschäftskritische Anwendung oder Funktion, die nicht funktioniert. Wenn das Unternehmen etwas unternehmen kann, um das Problem zu umgehen, wird der Schweregrad auf die nächste Stufe gesenkt. Wenn die Anwendung nicht geschäftskritisch ist, wird der Schweregrad dadurch noch geringer. Anforderungen für neue Erweiterungen werden normalerweise separat priorisiert.


Verstanden, wie hilft das bei alltäglichen Aufgaben, die im Prinzip erledigt werden müssen, und scheint eine Priorisierung zu erkennen, die eingeführt wurde.
MrEdmundo

2
Ich gehe von Ihrer Frage aus, dass es keine einzige Person oder Gruppe gibt, die für die Festlegung von Prioritäten verantwortlich ist und die über ausreichende Autorität verfügt, um sie zum Festhalten zu bringen. Das ist ein großes Problem. Ich würde sogar vorschlagen, dass Ihr Freund eine neue Anstellung sucht, wenn dies nicht gelöst werden kann.
Larry Coleman

hmmmm, ich verstehe Ihren Standpunkt, obwohl ich nicht ganz sicher bin, wie dies die Wahrnehmung des Unternehmens verändert, da die meisten Aufgaben, an denen er arbeitet, als vorrangig eingestuft werden. Wie ändert man die Vorstellung, dass eine Personenanfrage immer oberste Priorität hatte, aber nicht mehr ohne diese Person zu pinkeln? Vielleicht braucht er zur Beantwortung mehr Personal.
MrEdmundo

2
Dies funktioniert nur, wenn eine ranghohe Person aus dem Unternehmen die Prioritäten festlegt. Wenn der Leiter des Geschäftsbereichs zum Beispiel die Prioritäten festlegt, wird der Rest des Geschäfts mitmachen, wenn er Wert auf seine Arbeit legt. Sie mögen es vielleicht nicht, aber das wird nicht das Problem Ihres Freundes sein.
Larry Coleman

10

Lassen Sie jemanden die Anrufe annehmen und die Leitung von ändern

Wir werden gleich darauf eingehen.

zu

Sehr guter Vorschlag. Ich erstelle eine Feature-Anfrage, um so schnell wie möglich mit der Arbeit zu beginnen. Wenn Sie den Fortschritt Ihrer Anfrage verfolgen möchten, können Sie ihn hier verfolgen: [Link zum Ticket für die Fallverfolgung]. In Zukunft können Sie auf die gleiche Weise wie hier Futures-Anträge stellen: [Link zum Case Tracker]

Das ist meiner Meinung nach wahrscheinlich der einfachste und effektivste Weg, dies zu tun. Das letzte Bit versucht, die Belastung dieser Person, die die Anrufe beantwortet, im Laufe der Zeit zu verringern.

Das Problem, das Sie mit dem aktuellen "Prioritäts" -System sehen, ist, dass, wenn alles eine Priorität ist, nichts eine Priorität ist . Dafür muss Ihr Freund unbedingt den Rat von @Larry Coleman befolgen - Menschen, die von der Entwicklung getrennt sind und Änderungsanforderungen verwalten. Idealerweise sollte Ihr Freund nicht einmal über eine Funktionsanforderung Bescheid wissen, bis diese separate Gruppe vereinbart hat, dass sie für die Arbeit priorisiert werden sollte. Das könnte sogar diese neue Person sein, die die Anrufe jetzt beantwortet, die ihnen Priorität einräumen - solange sie das Geschäft verstehen und die Entwicklung verstehen.


3
+1 für "Wenn alles eine Priorität ist, ist nichts eine Priorität"
Larry Coleman

2

Ich habe selbst eine ähnliche Situation durchgemacht. Das Produkt wurde auf Schuhschnüren aufgebaut und war bei der Markteinführung das erste auf dem Markt. Es war anfangs erfolgreich (für ein Einzelunternehmergeschäft), aber ich nehme an, dass von 2003 bis 2007 alles geklappt hat. Ich bemühte mich, Personal einzustellen, lernte aber auf die harte Tour, dass die Einstellung guten Personals teuer und keineswegs einfach ist. Ich nehme an, dein Freund ist in einer ähnlichen Situation.

In meinem Fall wurde schon früh klar, dass es irgendwann bergab gehen würde. Das Geschäft wuchs immer noch, aber der Wettbewerb drehte sich um, der Markt sah aus, als würde er schrumpfen, es gab erste Anzeichen (Mitte 2006) für eine konjunkturelle Abkühlung usw. Grundsätzlich führten eine Reihe von Faktoren Ich entscheide, dass das Produkt irgendwann sterben würde. Je später, desto besser (für die Kunden und mich).

Im Nachhinein habe ich wahrscheinlich so viele gute wie schlechte Entscheidungen getroffen, aber hier ist ein kurzer Hinweis:

  1. Personal es richtig und früh. Holen Sie sich Geld, wenn Sie es brauchen. (Keines zu suchen war mein größter Fehler.) Wenn Sie Verkäufe tätigen, werden Sie Geld finden.

  2. Verwenden Sie die Versionskontrolle / Komponententests / alle Best-Practice-bezogenen Hoopla. Sie sehen alle albern / lächerlich / uninteressant aus, wenn sie an der Universität unterrichtet werden, aber in der Regel sind sie aus guten Gründen Best Practices.

  3. Stellen Sie mindestens einen Vertriebs- / Marketingmitarbeiter ein, insbesondere, wenn Sie technisch orientiert sind. (In diesem Fall verbringen Sie mehr Zeit mit technischen Fragen als mit Marketing, selbst wenn Sie ein Affiliate-Netzwerk haben.)

  4. Crowd-Source Ihre Unterstützung. Richten Sie ein Forum ein, damit Benutzer sich selbst helfen können. Richten Sie ein Ticketsystem ein und laden Sie Ihre Experten (in der Regel häufige Forumsbenutzer) ein, als virtuelle Assistenten in einen speziellen Bereich einzutauchen. Lassen Sie sie sich um die Vielzahl von Kunden kümmern, die diese / jene kleine Aufgabe für ein paar Dollar erledigen müssen, damit Sie sich auf das Ganze konzentrieren können.

  5. Maximieren Sie Ihre Anstrengungen, um den Umfang des von Ihnen gelieferten Supports zu reduzieren. Je weniger Unterstützung Sie haben, desto mehr Zeit haben Sie, um mehr interessante Dinge zu tun. Sobald das Produkt als Dummy-Proof eingestuft ist, sind die Kunden dankbar, ebenso wie Ihr Vertrieb und Ihre Support-Mitarbeiter.

  6. Lassen Sie die tatsächlichen Entwickler einen Teil des Supports leisten (ein oder zwei Stunden pro Tag, damit sie nicht den Kontakt zur Realität verlieren), und geben Sie ihnen die freie Hand, um eventuelle Änderungen am Produkt (Benutzeroberfläche, Funktionalität) vorzuschlagen Identifizieren Sie alles, was sie weniger Zeit für Support aufwenden lässt. Die Idee ist, dass Benutzer, die aus den gleichen Gründen immer wieder geärgert werden, die Probleme so schnell wie möglich beheben möchten, damit sie die Supportanrufe loswerden können. Und die Schlaueren tun das tatsächlich, und genau das wollen Sie.

  7. Wenn Sie das Gefühl haben, dass das Produkt sterben wird, beschließen Sie, es hier und da zu töten, und arbeiten Sie am nächsten Schritt. Lass es wirklich sterben. Eine Cash Cow ist eine Cash Cow. Wenn es seinen Zweck erfüllt hat, schicke es zum Metzger. Tun Sie dies vorsichtig (für die Kunden), aber lassen Sie auf keinen Fall zu viel Zeit, wenn der Wartungsaufwand so hoch ist, dass Ihre Konkurrenz davon profitiert, dass Sie verspätet sind und technische Schulden angehäuft haben , implementiert neue Funktionen schneller als Sie es ohnehin können.


1

Eine Zeile nach der anderen. Nehmen Sie sich für jede Korrektur etwas mehr Zeit, bereinigen Sie Hacks und fügen Sie währenddessen automatisierte Tests hinzu. Oft ist es viel schneller, etwas richtig zu machen, als einen weiteren Hotfix hinzuzufügen. Wenn das Management Ihren Freund dazu drängt, schneller zu arbeiten, wie es das Management oft tut, sollte er eine dickere Haut wachsen lassen und in den Modus "Wenn es fertig ist" wechseln.


0

Der Schlüssel ist, welche Art von Entwicklungsmethodik hat er um sich, um ihn bis zu einem gewissen Grad abzuschirmen? Zum Beispiel gibt es in Scrum die Idee, dass sich die Arbeit während des Sprints normalerweise nicht ändert. Es gibt also einige Regeln, was getan werden soll und was nicht. Die andere Frage ist, inwieweit das Management seinen Wunsch unterstützt, nicht in einer Unterstützungsrutsche zu sein. Dies kann auch wichtig sein, da ein teilnahmsloses Management für das Projekt Ihres Freundes eine Todesstrafe sein kann.


0

Am besten hält der Bus an und wirft einen Blick zurück. Dein Freund sollte

  • Erstellen Sie einen Bericht über jedes Problem im System und begründen Sie, warum es schlecht ist. Designprobleme sollten hervorgehoben werden und der Umfang der erforderlichen Umgestaltung.
  • Grobe Zeitpläne sollten angegeben werden, um die Probleme zu beheben
  • Der Bericht sollte seinen Managern und dann den Beteiligten am System ausgehändigt werden
  • Alle Funktionsentwicklungen sollten während des Fixierungszeitraums angehalten werden.

Viele Projekte machen das. Wenn das Management nicht überzeugt werden kann, ist dies ein verlorener Fall, aber wenn es zustimmt, könnte das System auf lange Sicht wieder in Form gebracht werden.


Hört sich theoretisch gut an, aber wenn die Anwendung geschäftskritisch ist, ist das Einfrieren von Funktionen möglicherweise keine Option.
tdammers

Dann kann es eine gute Zeit sein, einen Zweig zu bilden und einen anderen Entwickler hinzuzufügen, um die Wartung durchzuführen.
Tjaart
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.