Vermeiden Sie es, von Ihren Entwicklern als Geiseln genommen zu werden

hostage100107Dieses Wochenende habe ich ein Gespräch mit einer lokalen Künstlerin begonnen, die ihren Chef bei der Verwaltung einiger Webanwendungen unterstützt hat, die ihr Chef besitzt.

Das Gespräch nahm eine Wendung und es wurde ein wenig darüber nachgedacht, wöchentliche Entwicklungsgebühren zu zahlen, ohne Fortschritte bei dem Entwickler zu sehen, mit dem sie zusammengearbeitet haben. Jetzt möchte der Entwickler ihnen eine weitere Pauschalgebühr für den Abschluss des Projekts sowie eine wöchentliche Wartungsgebühr für andere Anfragen berechnen. Es wird schlimmer.

Der Entwickler hat die Domainnamen übertragen, damit er sie verwalten kann. Der Entwickler hostet die Anwendung auch auf seinem Hosting-Konto. Kurz gesagt, der Entwickler hält sie jetzt als Geiseln.

Zum Glück hat die Frau, mit der ich zusammenarbeite, in der Vergangenheit Administratorzugriff gefordert, um einige der Vorlagendateien für die Site zu bearbeiten. Der Entwickler hätte ihr eingeschränkten Zugriff gewähren können, aber er tat es nicht. Er (faul) versorgte sie mit dem administrativen Login für die Site. Heute Abend habe ich diesen Zugriff verwendet, um den gesamten Code für die Site zu sichern. Ich fand auch heraus, welche Verwaltungssoftware er verwendete, und machte mich auf den Weg zur Datenbankverwaltung, wo ich sowohl die Daten als auch die Tabellenstrukturen der Anwendungen exportieren konnte. Wütend.

Der Eigentümer plante, die Websites nach Abschluss der Entwicklung auf neue Domainnamen zu verschieben. Das ist riesig, weil es bedeutet, dass die aktuellen Domains ablaufen könnten, falls es eine wütende Trennung zwischen dem Entwickler und dem Unternehmen gibt. Ich habe das schon einmal gesehen.

Einige Tipps für ein ausgelagertes Entwicklungsteam:

  1. Domain Registrierung

    Registrieren Sie Ihre Domain-Namen im Namen Ihres Unternehmens. Es ist nicht schlecht, Ihren Entwickler als technischen Ansprechpartner im Konto zu haben, aber hört niemals Übertragen Sie das Eigentum an der Domain auf Personen außerhalb Ihres Unternehmens.

  2. Hosten Ihrer Anwendung oder Site

    Es ist großartig, dass Ihr Entwickler möglicherweise ein Hosting-Unternehmen hat und Ihre Website für Sie hosten kann, aber tun Sie es nicht. Fragen Sie stattdessen nach seinen Empfehlungen, wo die Anwendung gehostet werden soll. Es ist richtig, dass Entwickler sich mit der Verwaltungssoftware, den Versionen und dem Speicherort der Ressourcen vertraut machen. Dies kann dazu beitragen, dass Ihr Produkt schneller fertiggestellt wird. Das heißt, besitzen Sie das Hosting-Konto und fügen Sie Ihren Entwickler mit seinem eigenen Login und Zugang hinzu. Auf diese Weise können Sie jederzeit den Stecker ziehen.

  3. Den Code besitzen

    Gehen Sie nicht davon aus, dass Sie den Code besitzen, sondern schreiben Sie ihn schriftlich. Wenn Sie nicht möchten, dass Ihr Entwickler die Lösungen verwendet, für deren Entwicklung Sie ihn bezahlt haben, müssen Sie dies zum Zeitpunkt des Vertrags entscheiden. Ich habe auf diese Weise Lösungen entwickelt, aber ich habe sie auch entwickelt, bei denen ich die Rechte am Code behalte. Im letzteren Fall habe ich die Kosten des Antrags niedriger ausgehandelt, so dass das Unternehmen einen Anreiz hatte, mir Rechte einzuräumen. Wenn es Ihnen nichts ausmacht, dass Ihr Entwickler Ihren Code woanders verwendet, sollten Sie keinen Top-Dollar zahlen!

  4. Holen Sie sich eine zweite Meinung!

    Es schadet meinen Gefühlen nicht, wenn Leute mir sagen, dass sie Gebote annehmen oder sich mit anderen Fachleuten beraten. In der Tat empfehle ich es!

Das Fazit ist, dass Sie für das Talent Ihres Entwicklers bezahlen, aber Sie müssen die Kontrolle und das Eigentum über die Idee behalten. Es ist deins. Sie haben in das Unternehmen investiert, Sie haben Ihr Geschäft und Ihre Rentabilität dafür riskiert ... und Sie sollten es behalten. Entwickler können ersetzt werden, und das sollte Ihre Anwendung oder Ihr Unternehmen niemals gefährden.

6 Kommentare

  1. 1

    Ich bin ein Web-App-Entwickler und stimme den meisten Ihrer Punkte (vielleicht allen) zu, aber ich möchte eine Klarstellung zu # 3.

    Die Vervielfältigung einer Website oder Anwendung, die an ein anderes Unternehmen (oder schlimmer noch an einen Wettbewerber) verkauft wird, im Großhandel ist unethisch und sollte in Ihrem Vertrag immer als nicht akzeptabel festgelegt werden. Ich habe jedoch innovative Lösungen für häufig auftretende Probleme entwickelt, während ich an einem Kundenprojekt gearbeitet habe, das nichts mit dem jeweiligen Geschäft zu tun hat und auch keinen wesentlichen Teil der Gesamtlösung ausmacht.

    Beispiel:
    Der Kunde wollte eine Steuerung auf Seitenebene und auf Feldebene, die an Benutzerrollen gebunden ist. Die "out of the box" -Funktionalität für ASP.Net führt Berechtigungen auf Ordnerebene aus. Daher habe ich die nativen Berechtigungen für .Net erweitert und die Lösung als Teil einer allgemeinen Webanwendung bereitgestellt.

    Ich glaube, dass sie Anspruch auf die gesamte Codebasis haben (wie im Vertrag festgelegt), aber ich fühle mich berechtigt, dieselbe Methodik und dieselben Codestücke zu verwenden, um diese Erweiterung bei zukünftigen Projekten durchzuführen.

    Noch eine Falte:
    Ich habe dies getan, als ich von einer Beratungsfirma gezüchtet wurde. Hätte das Beratungsunternehmen Ihrer Meinung nach das Recht, diese Lösung zu kopieren und als eigene zu vermarkten?

    • 2

      Nicht wirklich,

      Ich denke wir sind uns einig. Mein Punkt dabei ist, sicherzustellen, dass Sie den Code haben und damit aus der Tür gehen können. Wenn Ihr Entwickler Code für Sie kompiliert und auf Ihre Site überträgt, haben Sie den Code nicht. Ich habe gesehen, dass dies bei allem passiert, von Grafik über Flash, .NET, Java bis hin zu allem, was eine Quelldatei erfordert und ausgegeben wird.

      Doug

  2. 3

    Ich sehe, woher Sie kommen, und obwohl ich nicht zu 100% mit allem einverstanden bin (ich habe Vorbehalte), sollten Unternehmen dies immer berücksichtigen.

    1. ABSOLUT. Kann das nicht genug betonen. Ich habe für eine kleine Firma gearbeitet, die dies getan hat, und ich fühlte mich schuldig, weil ich involviert war. Ich bin so froh, dass ich da raus konnte. Kunden sollten unbedingt die Kontrolle über ihre Domains behalten. Wenn sie jemanden haben, der klug genug ist, geben Sie dem Entwickler keinen Zugriff darauf. Wenn nicht, stellen Sie sicher, dass der Entwickler die Möglichkeit hat, Informationen zu ändern / die Domain zumindest über eine Reseller-Schnittstelle zu übertragen.

    2. Ich würde dem teilweise zustimmen, aber dann hängt es von der Situation ab. Wenn Sie eine einfache PHP-App bereitstellen und auf jeden Fall kostengünstiges Hosting benötigen, besorgen Sie sich auf jeden Fall ein LunarPages- oder DreamHost-Konto oder ähnliches und legen Sie es dort ab. Geben Sie dem Entwickler Zugriff. Low-Cost-Shared-Hosting hat jedoch sicherlich auch Nachteile… insbesondere bei größeren Dingen. Aber wenn Sie groß genug sind, um sich darüber Sorgen zu machen, sollten Sie einen technischen Mitarbeiter haben, der sich darum kümmern kann. Bei vielem geht es offensichtlich um Vertrauen. Sicher, zum Teufel, setzen Sie etwas in einen Vertrag, wenn Sie über solche Dinge (Einschränkungen und dergleichen) können. Hosting von Drittanbietern ist großartig, wenn der Entwickler nichts Besonderes tun muss. Ich gebe zu, ich bin hin und her gerissen, weil es wirklich eine situative Sache ist. Dies hängt auch von der Größe des Standorts und der Anzahl der verwendeten Technologien ab. Wenn es groß wird, erwägen Sie, eine Person als Mitarbeiter einzustellen. Nicht immer eine Option, aber sicherer für große Dinge.

    3. Das hat auch meine frühere Firma getan. Sie könnten gehen, sie würden Ihnen den HTML-Code, die Bilder usw. geben. aber kein Code. Der Code war im Grunde ein geleaster Dienst. Davon abgesehen gibt es Besitz und Besitz. Ich habe immer einen nicht exklusiven Verkauf gemacht. Grundsätzlich muss ich meine Komponenten wiederverwenden können. Ich habe kein Problem damit, dass der Kunde es besitzt, macht, was er will, und dass jemand anderes später daran arbeitet… aber ich werde mich nicht selbst verpfänden und muss das Rad jedes Mal neu erfinden.

    4. Immer. Immer. Immer.

  3. 4

    Netter Beitrag… gut gemacht, obwohl ich mit einem Punkt nicht einverstanden bin (# 2):

    "Es ist großartig, dass Ihr Entwickler möglicherweise ein Hosting-Unternehmen hat und Ihre Website für Sie hosten kann, aber tun Sie es nicht."

    Obwohl ich die Logik dahinter verstehe, kann es in einigen Fällen kontraproduktiv sein, Ihr Projekt an einem anderen Ort zu hosten. Wenn das Unternehmen, das Ihre Website oder App entwickelt, über eine Hosting-Plattform verfügt, die es bevorzugt, wird es diese wahrscheinlich effizienter und produktiver nutzen.

    Wenn Sie sich aus philosophischer Sicht weigern, die Hosting-Plattform Ihres Entwicklers zu nutzen, weil Sie nicht als Geiseln gehalten werden möchten, ist dies von Anfang an ein Misstrauen. Wenn Sie Ihrem Entwickler wirklich nicht genug vertrauen, um mit ihm zu hosten, möchten Sie dann überhaupt erst mit ihm arbeiten?

    Ich weiß, dass es viele Horrorgeschichten über diese Art von Situation gibt, aber im Allgemeinen würde ich empfehlen, dass Sie sich darauf konzentrieren, einen Entwickler zu finden, dem Sie vertrauen. Sie können das Hosting Ihres Entwicklers nutzen und sich trotzdem schützen, indem Sie Administratorzugriff anfordern und Ihre eigenen Backups erstellen.

    Wieder ein guter Beitrag und sehr nützliche Informationen.

    Vielen Dank!
    Michael Reynolds

    • 5

      Hallo Michael,

      Es mag wie ein Vertrauensproblem klingen, aber ich denke nicht, dass es das ist - es ist wirklich ein Kontroll- und Verantwortungsproblem. Wenn Sie einen erheblichen Betrag in die Entwicklung Ihrer Website investieren möchten, müssen Sie sicher sein, dass Sie die Umgebung steuern können.

      In Unternehmen passieren Dinge, die Beziehungen unterbrechen und nicht negativ sein müssen. Vielleicht bekommt Ihr Entwickler / Ihre Firma einen sehr großen Kunden und kann sich die Zeit nicht leisten. Vielleicht verschieben sie Geschäftsziele. Manchmal kann ihre Hosting-Firma Probleme haben.

      Ich befürworte, dass Sie Ihr Hosting kontrollieren und dafür verantwortlich sind, damit Sie sich auf Ihren Entwickler verlassen können, was er großartig kann - Entwicklung!

      Ich schätze den Rückstoß, Michael.

  4. 6

    Ich bin auch ein Web-App-Entwickler und ich denke, Sie haben den Nagel auf den Kopf getroffen. Einige Gedanken:

    Ich denke, fast jeder würde zustimmen (und hat auf der Grundlage der Kommentare unten) # 1 ist ein absolutes. Mach es niemals. Je. Unter allen Umständen.

    Ich sehe # 2 anders als einige meiner Entwicklerkollegen: Wir lehnen es ab, das Endprodukt für unsere Kunden zu hosten (natürlich hosten wir einen Testserver, auf dem Kunden das Produkt während der Entwicklung testen können). Wir helfen Kunden gerne dabei, das Hosting selbst durchzuführen oder einen Hosting-Anbieter zu finden. Wir wollen einfach nicht in das Hosting-Geschäft einsteigen. Wenn das bedeutet, die Arbeit abzulehnen, soll es so sein. Es gibt viele großartige Hosting- oder Infrastrukturunternehmen, die diesen Service zu einem viel günstigeren Preis anbieten können. Wir fördern die Portabilität unserer Arbeit und werden alles daran setzen, dass sie gehostet wird, auch wenn der Kunde Jahre später den Hosting-Anbieter wechselt.

    Für # 3 erhalten unsere Kunden den gesamten Quellcode des Endprodukts mit einer Einschränkung: Für Produkte von Drittanbietern, die in der Lösung verwendet werden (z. B. Websteuerelemente von Telerik oder Component One), können wir dem Kunden die kompilierte DLL für geben die Kontrolle durch Dritte (z. B. ein Raster). Unsere Lizenzvereinbarungen mit diesen Drittunternehmen (die wir dem Kunden zur Verfügung stellen) verbieten es uns, den Quellcode für diese Art von Kontrollen weiterzugeben, da es sich um das geistige Eigentum Dritter handelt, nicht um unser Eigentum. Die Verwendung dieser Art von Produkten spart dem Kunden Entwicklungszeit und ist viel billiger als die Erstellung derselben Funktionalität von Grund auf neu. Wir sind über diese Richtlinien im Voraus informiert, bevor Arbeiten durchgeführt werden. Wenn der Kunde für die Entwicklung benutzerdefinierter Steuerelemente bezahlen möchte (anstatt das vorgefertigte Produkt eines Drittanbieters zu verwenden), stellen wir natürlich den Quellcode für dieses benutzerdefinierte Steuerelement zusammen mit allem anderen bereit.

    Wenn es um die Wiederverwendung von Code geht, sind wir uns darüber im Klaren, dass wir Teile des Codes wiederverwenden können, es sei denn, er wurde ausdrücklich ausschließlich für die Verwendung durch den Kunden entwickelt (z. B. für einen proprietären Geschäftsprozess), bevor Arbeiten ausgeführt werden. Wenn der Kunde natürlich exklusiven Code entwickeln lassen möchte, steht dieser ihm zur Verfügung.

    Wie andere gesagt haben, wird # 4 immer empfohlen. Immer!

    Grüße,
    Tim Young

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.