Ich war beauftragt worden, ein Projekt zu verwalten, das an einige ukrainische Entwickler ausgelagert war.
Das Unternehmen stellte sie über Elance zu einem festen Preis ein . Zu diesem Zeitpunkt ließ mich mein Chef allein , um mich um sie zu kümmern und die Arbeit zu erledigen. Ich habe eine detaillierte Spezifikation des gesamten Vorgangs erstellt.
Das Projekt umfasste Dinge wie XMPP, RabbitMQ und Datenbank. Bei meinem ersten Treffen mit ihnen (immer IM) erklärte ich gründlich, was sie tun mussten. Sie schienen es zu verstehen - und sie waren sehr zuversichtlich, dass es leicht gehen würde.
So weit, ist es gut. Aber nach einer Woche, als wir uns wieder trafen, waren sie voller Missverständnisse darüber, was getan werden musste. Als ich einen der Entwickler fragte, ob er XMPP kenne, sagte er, er arbeite zum ersten Mal damit. Bei unserem ersten Treffen hatte ich ganz speziell die Komplexität des Projekts und die damit verbundenen Technologien erwähnt. Außerdem hatte ich sie wiederholt gebeten, eine Funktionsspezifikation zu schreiben, die genau beschreibt, wie sie dies tun würden. Aber sie sagten NEIN und bestanden darauf, dass sie lieber den Code schreiben würden. Ich sagte OK.
Das Projekt wurde nach 3 Wochen abgeschlossen und sie lieferten, was benötigt wurde. Zu diesem Zeitpunkt begann ich, den Code zu überprüfen. Es war größtenteils in Ordnung, aber es gab einige wichtige Probleme:
- Sie haben einige Dinge, die getrennt werden mussten, in eine Konfigurationsdatei fest codiert
- Es gab mehrere Konfigurationsdateien, die ich in einer konsolidieren musste
- Sie haben absolut keine Dokumentation geschrieben
- einige andere kleinere Änderungen
Ich habe sie gebeten, diese Änderungen vorzunehmen (außer Dokumentation) - und wir hatten einen Streit.
Sie sagten, da der Preis fest war, habe ich sie zu Unrecht gebeten, Änderungen vorzunehmen, sobald sie den Arbeitscode ausgefüllt haben. Dass sie unangemessen lange an dem Projekt gearbeitet hatten und es nun völlig falsch war, um irgendetwas zu bitten.
Endlich haben sie die Änderungen vorgenommen und das Projekt ist beendet. Aber es bleiben einige Fragen in meinem Kopf ...
Sie haben getan, was nötig war, aber ich musste es richtig machen , und daher die Änderungen. War ich wirklich unfair?
Warum habe ich zugestimmt, sie ohne Funktionsspezifikation codieren zu lassen?
Warum habe ich nicht sichergestellt, dass sie beim ersten Mal alles verstanden haben?
Befindet sich jemand in der gleichen Position? Denken Sie, dass es einen besseren Weg gibt, ausgelagerte Projekte zu verwalten?
- UPDATE -
Vielen Dank für alle Meinungen - nachdem ich über die gesamte Erfahrung nachgedacht habe, kann ich schließen ...
Obwohl ich in den Spezifikationen von meiner Seite nicht vage war, habe ich sie sicherlich nicht wie vorgeschlagen verkleidet . Das Mitnehmen lautet also: Seien Sie immer so genau wie möglich - lesen Sie Ihre Spezifikationen auch aus ihrer Perspektive und sehen Sie, ob Sie etwas verpasst haben. Wiederholen Sie es mindestens dreimal.
Nur anzugeben, was der Code tun soll, reicht nicht aus. Sie müssen angeben, wie der Code aussehen soll. Wie wird die Verzeichnisstruktur sein? wenn möglich sogar die Dateinamen. Dies erspart Ihnen später viel Ärger. Geben Sie die Codierungsrichtlinien, Namenskonventionen für Variablen, das interne Dokumentationsformat usw. genau an. Achten Sie darauf, dass diese Richtlinien eingehalten werden, und schreien Sie, wenn nicht.
Fordern Sie von ihrer Seite eine Funktionsspezifikation an - bestehen Sie darauf, dass diese vor jedem Code geschrieben wird. Dies wird viele Verwirrungen und Missverständnisse aus dem Weg räumen.
Überprüfen Sie den Code während der Entwicklung, damit Sie die Anomalien früher erkennen und korrigieren können. Sprechen Sie mindestens alle zwei Tage mit ihnen.
Versuchen Sie zum Schluss, ein gutes Verhältnis zu ihnen herzustellen. Geben Sie ihnen das Gefühl, dass Sie ihre Arbeit schätzen. Schieben Sie sie nicht übertrieben, um sie Ihren Richtlinien anzupassen - fordern Sie sie stattdessen auf, dies zu tun, und teilen Sie ihnen mit, dass dies die Pflege des Codes für Sie nach Abschluss des Projekts erheblich vereinfachen würde.