Evita di farti prendere in ostaggio dai tuoi sviluppatori

hostage100107Questo fine settimana ho avviato una conversazione con un'artista locale che ha assistito il suo capo nella gestione di un paio di applicazioni web di sua proprietà.

La conversazione ha preso una svolta e sono proseguite alcune discussioni sul pagamento delle tariffe di sviluppo settimanali senza vedere alcun progresso con lo sviluppatore con cui hanno lavorato. Ora lo sviluppatore desidera addebitargli un'altra tariffa forfettaria per completare il progetto, nonché una tariffa di manutenzione settimanale per coprire altre richieste. La situazione peggiora.

Lo sviluppatore ha trasferito i nomi di dominio in modo da poterli gestire. Lo sviluppatore ospita anche l'applicazione sul suo account di hosting. In breve, lo sviluppatore ora li tiene in ostaggio.

Per fortuna, la donna con cui lavoro in passato ha richiesto l'accesso amministrativo per modificare alcuni dei file modello per il sito. Lo sviluppatore avrebbe potuto fornirle un accesso limitato, ma non l'ha fatto. Lui (pigramente) le ha fornito il login amministrativo al sito. Stasera ho usato quell'accesso per eseguire il backup di tutto il codice per il sito. Ho anche capito quale software di gestione stava usando e sono andato all'amministrazione del database dove ho potuto esportare i dati delle applicazioni e le strutture delle tabelle. Whew.

Il proprietario aveva in programma di spostare i siti su nuovi nomi di dominio una volta completato lo sviluppo. È enorme perché significa che i domini attuali potrebbero scadere nel caso in cui ci fosse una separazione arrabbiata tra lo sviluppatore e l'azienda. L'ho già visto accadere.

Alcuni suggerimenti se hai intenzione di ottenere un team di sviluppo in outsourcing:

  1. Registrazione del dominio

    Registra i tuoi nomi di dominio a nome della tua azienda. Non è male avere il tuo sviluppatore come contatto tecnico sull'account, ma mai trasferire la proprietà del dominio a chiunque all'esterno della tua azienda.

  2. Ospitare la tua applicazione o sito

    È fantastico che il tuo sviluppatore possa avere una società di hosting e possa ospitare il tuo sito per te, ma non farlo. Chiedi invece i suoi consigli su dove ospitare l'applicazione. È vero che gli sviluppatori acquisiscono familiarità con il software di gestione, le versioni e l'ubicazione delle risorse e questo può aiutare il tuo prodotto a essere completato prima. Detto questo, tuttavia, possiedi l'account di hosting e aggiungi il tuo sviluppatore con i suoi dati di accesso e accesso. In questo modo, puoi staccare la spina ogni volta che ne hai bisogno.

  3. Possiedi il codice

    Non dare per scontato di essere il proprietario del codice, mettilo per iscritto. Se non vuoi che il tuo sviluppatore utilizzi le soluzioni che hai pagato per sviluppare altrove, devi deciderlo al momento del contratto. Ho sviluppato soluzioni in questo modo, ma le ho anche sviluppate dove conservo i diritti sul codice. In quest'ultimo caso, ho negoziato un costo inferiore per l'applicazione in modo che l'azienda fosse incentivata a concedermi i diritti. Se non ti dispiace che il tuo sviluppatore utilizzi il tuo codice altrove, non dovresti pagare il massimo!

  4. Ottieni una seconda opinione!

    Non ferisce i miei sentimenti quando la gente mi dice che accetta offerte o si consulta con altri professionisti. Anzi, lo consiglio!

La linea di fondo è che stai pagando per il talento del tuo sviluppatore ma devi mantenere il controllo e la proprietà sull'idea. È tuo. Eri tu che ci hai investito, tu che hai rischiato il tuo business e la redditività per questo ... e sei tu che dovresti mantenerlo. Gli sviluppatori possono essere sostituiti e questo non dovrebbe mai mettere a rischio la tua applicazione o, peggio, la tua azienda.

Commenti

  1. 1

    Sono uno sviluppatore di web app e sono d'accordo con la maggior parte dei tuoi punti (forse tutti) ma vorrei un chiarimento sul n. 3.

    La duplicazione all'ingrosso di un sito o di un'applicazione venduta a un'altra società (o peggio a un concorrente) non è etica e dovrebbe sempre essere stabilita come non accettabile nel contratto. Tuttavia, ho sviluppato soluzioni innovative a problemi comuni mentre lavoravo al progetto di un cliente che non ha nulla a che fare con il loro particolare business né rappresenta una parte significativa della soluzione complessiva.

    esempio di calcolo dei costi nella Domanda:
    Il cliente desiderava il controllo a livello di pagina e di campo legato ai ruoli utente. La funzionalità "out of the box" per ASP.Net fa autorizzazioni a livello di cartella. Quindi ho esteso le autorizzazioni native per .Net e ho consegnato la soluzione come parte di un'applicazione web complessiva.

    Credo che abbiano diritto all'intera codebase (come stipulato nel contratto) ma mi sento giustificato nell'usare la stessa metodologia e pezzi di codice per realizzare questa estensione su progetti futuri.

    Un'altra ruga:
    L'ho fatto mentre ero allevato da una società di consulenza. La società di consulenza avrebbe il diritto, secondo te, di tornare indietro e copiare quella soluzione, commercializzandola come propria?

    • 2

      Non proprio,

      Penso che siamo d'accordo. Il mio punto è assicurarmi di avere il codice e di poter uscire dalla porta con esso. Se il tuo sviluppatore sta compilando il codice per te e lo invia al tuo sito, non hai il codice. L'ho visto accadere con tutto, dalla grafica, Flash, .NET, Java ... tutto ciò che richiede un file sorgente ed è emesso.

      Doug

  2. 3

    Capisco da dove vieni e anche se non sono d'accordo con tutto al 100% (ho delle avvertenze), le aziende dovrebbero sempre tenerlo a mente.

    1. ASSOLUTAMENTE. Non posso sottolinearlo abbastanza. Ho lavorato per una piccola azienda che ha fatto questo e mi sono sentito in colpa per essere stato coinvolto. Sono così felice di essere riuscito a uscire da lì. I clienti dovrebbero assolutamente mantenere il controllo dei propri domini. Se hanno qualcuno abbastanza esperto, non dare allo sviluppatore l'accesso a questo. In caso contrario, assicurati che lo sviluppatore abbia un modo per modificare le informazioni / trasferire il dominio tramite un'interfaccia rivenditore di qualche tipo, come minimo.

    2. In parte sarei d'accordo con questo, ma poi dipende dalla situazione. Se stai distribuendo una semplice app PHP e hai bisogno di un hosting a basso costo, procurati un account LunarPages o DreamHost o qualcosa del genere e scaricalo lì. Concedi l'accesso allo sviluppatore. Tuttavia, l'hosting condiviso a basso costo ha sicuramente i suoi svantaggi ... soprattutto per le cose più grandi. Ma se sei abbastanza grande da preoccuparti di questo, dovresti avere qualcuno di tecnico nello staff che possa occuparsene. Molto ovviamente riguarda la fiducia. Certo come l'inferno metti qualcosa in un contratto se puoi su questo genere di cose (restrizioni e simili). L'hosting di terze parti è ottimo se lo sviluppatore non ha bisogno di fare nulla di stravagante. Ammetto di essere combattuto perché è davvero una cosa situazionale. Dipende anche dalle dimensioni del sito, dalla gamma di tecnologie utilizzate. Se sarà grande, considera l'assunzione di una persona nello staff. Non sempre un'opzione, ma più sicura per grandi cose.

    3. Questo è anche qualcosa che ha fatto la mia precedente azienda. Potresti andartene, ti darebbero l'HTML, le immagini ecc…. ma nessun codice. Il codice era fondamentalmente un servizio in leasing. Detto questo, c'è possedere e possedere. Ho sempre fatto una vendita non esclusiva. Fondamentalmente, devo essere in grado di riutilizzare i miei componenti. Non ho problemi con il cliente a possederlo, a farne quello che vuole e ad avere qualcun altro che ci lavora su tutta la linea ... ma non ipotecerò me stesso e dovrò reinventare la ruota ogni volta.

    4. Sempre. Sempre. Sempre.

  3. 4

    Bel post ... ben fatto anche se non sono d'accordo con un punto (n. 2):

    "È fantastico che il tuo sviluppatore abbia una società di hosting e possa ospitare il tuo sito per te, ma non farlo."

    Sebbene comprenda la logica alla base di questo, in alcuni casi può essere controproducente imporre che il tuo progetto sia ospitato altrove. Se l'azienda che sviluppa il tuo sito o app ha una piattaforma di hosting che preferisce utilizzare, è probabile che sarà più efficiente e produttivo per loro utilizzarla.

    Inoltre, da un punto di vista filosofico, se ti rifiuti di utilizzare la piattaforma di hosting del tuo sviluppatore perché non vuoi essere "tenuto in ostaggio", allora questo crea un tono di sfiducia sin dall'inizio. Se davvero non ti fidi abbastanza del tuo sviluppatore da ospitare con loro, allora vuoi davvero lavorare con loro in primo luogo?

    So che esistono molte storie dell'orrore su questo tipo di situazione, ma in generale consiglierei di concentrarti sulla ricerca di uno sviluppatore di cui ti fidi. Puoi utilizzare l'hosting del tuo sviluppatore e proteggerti comunque richiedendo l'accesso amministrativo ed eseguendo i tuoi backup.

    Ancora una volta, buon post e informazioni molto utili.

    Grazie!
    Michael Reynolds

    • 5

      Ciao Michael,

      Può sembrare un problema di fiducia, ma non credo che lo sia - è davvero un problema di controllo e responsabilità. Se hai intenzione di investire una somma significativa nello sviluppo del tuo sito web, devi essere sicuro di poter controllare il suo ambiente.

      Le cose accadono negli affari che interrompono le relazioni e non devono essere negative. Forse il tuo sviluppatore / azienda ottiene un cliente molto grande e non può permettersi il tempo. Forse spostano gli obiettivi aziendali. A volte la loro società di hosting può avere problemi.

      Sto sostenendo che tu controlli ed essere responsabile del tuo hosting in modo da poter dipendere dal tuo sviluppatore per ciò che è bravo in: sviluppare!

      Apprezzo il respingimento, Michael.

  4. 6

    Sono anche uno sviluppatore di app web e penso che tu abbia colto nel segno. Alcuni pensieri:

    Penso che quasi tutti sarebbero d'accordo (e ha basato sui commenti di seguito) # 1 è un assoluto. Mai, mai farlo. Mai. In ogni circostanza.

    Ho una visione diversa del n. 2 rispetto forse ad alcuni dei miei colleghi sviluppatori: ci rifiutiamo di ospitare il prodotto finale per i nostri clienti (ovviamente, ospitiamo un server di test per i clienti per testare il prodotto durante lo sviluppo). Siamo lieti di aiutare i clienti a configurare l'hosting o a trovare un provider di hosting. Semplicemente non vogliamo entrare nel business dell'hosting. Se questo significa allontanare il lavoro, così sia. Ci sono molte grandi società di hosting o società di infrastrutture là fuori che possono fornire questo servizio a un prezzo molto più conveniente. Incoraggiamo la portabilità del nostro lavoro e faremo tutto il possibile per aiutarlo a ospitarlo, anche se il cliente cambia provider di hosting per anni lungo la strada.

    Per # 3, i nostri clienti ottengono tutto il codice sorgente del prodotto finale con un avvertimento: per i prodotti di terze parti che vengono utilizzati nella soluzione (come i controlli web di Telerik o Component One), possiamo fornire al cliente la DLL compilata per il controllo di terze parti (ad esempio una griglia). I nostri accordi di licenza con tali società terze (che forniamo al cliente) ci vietano di ridistribuire il codice sorgente per quel tipo di controlli, perché è proprietà intellettuale di terze parti, non nostra. L'uso di questi tipi di prodotti consente di risparmiare tempo di sviluppo per il cliente ed è molto più economico rispetto alla creazione della stessa funzionalità da zero. Siamo in anticipo su questa politica prima che qualsiasi lavoro venga svolto. Ovviamente, se il cliente desidera pagare per lo sviluppo del controllo personalizzato (invece di utilizzare il prodotto precostruito di terze parti) forniamo il codice sorgente per quel controllo personalizzato insieme a tutto il resto.

    Quando si tratta di riutilizzo del codice, siamo in anticipo sul fatto che possiamo riutilizzare parti del codice a meno che non sia stato espressamente sviluppato esclusivamente per l'uso del cliente (ad esempio per un processo aziendale proprietario) prima che qualsiasi lavoro venga svolto. Se il cliente desidera che venga sviluppato un codice esclusivo, ovviamente, questo è a sua disposizione.

    Come altri hanno già detto, il n. 4 è sempre consigliato. Sempre!

    Saluti,
    Tim Young

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.