Domanda:
È discreto entrare in contatto con uno sviluppatore precedente?
DeaconDesperado
2013-02-19 22:18:19 UTC
view on stackexchange narkive permalink

Sono nella posizione in cui ho ereditato una base di codice estremamente complessa scritta prevalentemente da sviluppatori che da allora si sono separati dall'azienda. Non so in quali circostanze si siano separati. Il codice in questione ha diversi anni e idealmente l'azienda vorrebbe aggiornarlo per sfruttare le nuove soluzioni che i vecchi sviluppatori dovevano in gran parte preparare in casa all'epoca.

Il codice è per lo più non commentato , e alcune parti sono completamente prive di documenti. Lo sviluppatore in questione mantiene una presenza piuttosto consistente sui social media ed è ancora coinvolto nell'ingegneria del software presso altre società.

La mia domanda è: è appropriato entrare in contatto con questo sviluppatore precedente per ottenere approfondimenti sul codice e, in tal caso, quale sarebbe un modo discreto per farlo?

Non si può negare che ottenere quel Missing Manual ™ sarebbe estremamente utile e velocizzerebbe i tempi di sviluppo.

Questo potrebbe applicarsi a qualsiasi lavoro sicuramente? Non sono sicuro che sia abbastanza specifico per i programmatori.
@Ozz Certamente, anche se penso che per i programmatori le esigenze siano un po 'più importanti quando il codice non è documentato e ciò che si eredita è in gran parte black-box. Suppongo che questo sia il contesto che sollevo nella domanda, idealmente documenteremmo tutti il ​​nostro codice completamente, ma a volte i vincoli di lavoro / tempo non lo consentono.
Penso che siano i tuoi superiori che dovrebbero prendere questa decisione. Semplicemente perché sono consapevoli delle circostanze che hanno portato il precedente sviluppatore ad andarsene ma anche perché più in generale penso che sarebbe utile per le persone di gestione capire che la documentazione non è gratuita.
@lollancf37 D'accordo, questa è una parte importante che forse non avevo considerato.
@DeaconDesperado - sostituire "codice" per "motore", "reazione chimica", "calcolo matematico" ecc. Questo è un problema comune e NON strettamente correlato alla programmazione IMHO.
Perché tutte le risposte si aspettano che fornisca supporto gratuitamente? Se fossi nella posizione dello sviluppatore precedente, discuterei di un contratto a pagamento.
Potresti semplicemente chiedere allo sviluppatore precedente. La sua risposta sarà una di queste tre: "Certo", "No" o "dovrai pagarmi per il mio tempo". In quest'ultimo caso, rivolgiti alla direzione facendolo entrare come "consulente" per passare alcuni giorni a familiarizzare con le parti oscure del codice.
@Ozz: non è strettamente correlato alla programmazione, ma gli altri esempi che hai fornito indicano che è correlato ai tipi di ingegneria. Non riesco a immaginare di contattare un ex addetto alle vendite o al marketing e chiedere aiuto a uno dei loro potenziali clienti.
Sette risposte:
tdammers
2013-02-19 22:22:57 UTC
view on stackexchange narkive permalink

Perché non ne discuti con i tuoi superiori?

In circostanze normali, prenderei in considerazione la fornitura di supporto di emergenza per i progetti su cui si è lavorato presso precedenti datori di lavoro una cosa standard, ma poiché non lo sai le circostanze, non darei per scontato nulla - se si sono separati in termini amichevoli, non avrai problemi, e se non lo hanno fatto, dovrai stringere i denti, ma almeno non creerai problemi per te in questo modo.

Grazie, e questa è stata la prima cosa che mi è venuta in mente. Sfortunatamente, stiamo tornando abbastanza indietro che anche i superiori in questione non erano con l'azienda nello stesso momento.
Non importa che il tuo capo non fosse il loro capo, la compagnia dovrebbe decidere se contattare gli sviluppatori. E se uno di loro lavora per un concorrente? E se uno di loro è in una battaglia legale con l'azienda o se ne va in cattive condizioni. Questa è una decisione per il tuo capo.
Tad Donaghe
2013-02-19 22:31:45 UTC
view on stackexchange narkive permalink

Se mi chiedessi di aiutarti con il codice che avevo scritto più di 6 mesi fa, non sono sicuro che sarei di grande aiuto. Lo stesso potrebbe accadere quando si chiede a qualcun altro del codice che ha scritto anni fa.

Diciamo però che ricordo di aver scritto il codice in questione. Se puoi farmi alcune domande che non impiegherò più di 15 a 20 minuti per rispondere dalla sommità della mia testa, sarei felice di aiutarti, ma per qualsiasi sforzo oltre a questo, risponderei solo se Sono stato pagato per il mio tempo.

Quindi, supponendo che la persona a cui chiedi ricordi il codice ed è disposta ad aiutarti, fai del tuo meglio per porre le domande in modo che sia facile rispondere in una quantità di tempo molto limitata.

Gilbert Le Blanc
2013-02-19 22:22:47 UTC
view on stackexchange narkive permalink

È opportuno entrare in contatto con questo sviluppatore precedente per ottenere alcune informazioni sul codice ...

Certo. Renditi conto che stai facendo una richiesta personale. Comprendi anche che lo sviluppatore precedente potrebbe non ricordare perché le cose sono state codificate in un certo modo.

e, in tal caso, quale sarebbe un modo discreto per farlo?

Invitalo a cena, o qualcosa di equivalente che dimostri che apprezzi il suo tempo. Dopo il fatto, mandagli una carta regalo con un biglietto di ringraziamento.

Jim G.
2013-03-12 22:10:22 UTC
view on stackexchange narkive permalink

È discreto entrare in contatto con uno sviluppatore precedente?

Sì, a condizione che tu abbia il supporto dei tuoi superiori.

È prudente entrare in contatto con uno sviluppatore precedente?

Dipende completamente.

Il codice è per lo più non commentato e alcune parti sono completamente non documentate. Lo sviluppatore in questione mantiene una presenza piuttosto considerevole sui social media ed è ancora coinvolto nell'ingegneria del software presso altre società.

Chiaramente hai motivi sufficienti per contattare lo sviluppatore precedente. Ma aiuta ancora chiedersi: "Che cosa speriamo di ottenere da questa nuova conoscenza?"

Ecco cosa intendo:

  • Il tuo la riconciliazione sarà probabilmente breve (a meno che tu non stia cercando di persuadere lo sviluppatore precedente a rientrare nella tua azienda).
  • In considerazione della sua brevità, devi certamente massimizzare l'utilizzo del tempo.

Invitalo a cena o qualcosa di equivalente che dimostri che apprezzi il suo tempo. Dopo il fatto, mandagli una carta regalo con una nota di ringraziamento. [Dalla risposta di @Gilbert LeBlanc]

Nella maggior parte dei casi, consiglierei contro questa tattica.

Perché?

Perché questo è un professionista riacquisto; non una chiamata sociale. Non stai cercando di vino e cenare con questo sviluppatore precedente; stai cercando di ottenere informazioni importanti e mission-critical sulla tua applicazione software (che sfortunatamente è rimasta priva di documenti per troppo tempo).

Detto questo, devi pagare a questo sviluppatore precedente una tariffa oraria per il suo tempo . In questo modo, puoi essere completamente pragmatico e richiedere valore per il tempo di questo sviluppatore. Ciò mantiene le cose a livello ed evita qualsiasi malinteso sullo scopo di questo riacquisto. Per massimizzare l'utilizzo del tempo, esegui la due diligence prima della riunione in modo da poter porre domande specifiche e mirate sulla parte dell'applicazione software che non capisci.

Juha Untinen
2013-03-13 17:02:58 UTC
view on stackexchange narkive permalink

Con un'adeguata compensazione monetaria per la consultazione sul sistema, la persona in questione è destinata a soddisfare il tuo desiderio insaziabile di svelare i segreti quasi dimenticati di un codice di un'era più civile.

ahjmorton
2013-02-20 01:18:37 UTC
view on stackexchange narkive permalink

L'opportunità o meno dipende da

  • Come hanno lasciato l'azienda (licenziato / licenziato / ancora a giocare a golf con il CEO)
  • Il dominio in cui ti trovi, dato che si tratta di social media, probabilmente non sarà fondamentale per l'azienda, ma se lo è, allora hai motivo di farlo.

Alla fine spetta allo sviluppatore loro stessi per decidere se risponderti o meno: non hanno alcun obbligo nei confronti dell'azienda per cui non lavorano più e potrebbero essere in grado di rispondere solo a una o due email dato che probabilmente sono passati a qualcos'altro.

Il mio consiglio è di trattarlo davvero come ultima risorsa.

Per inciso, ho risposto a domande sul mio codice dopo aver lasciato un'azienda, ma poiché facevo parte di una società di consulenza in quel momento, avevo l'obbligo di dare una mano dato che avevo ancora altri membri della mia azienda lì, non so se questo si applica a te ma se lo fa è un'altra strada che puoi provare.

MrFox
2013-03-13 02:01:54 UTC
view on stackexchange narkive permalink

No, non è quasi mai appropriato contattare qualcuno che ora lavora altrove per aiutarti. Chiederesti effettivamente loro di fare più lavoro per il loro precedente datore di lavoro (il tuo attuale datore di lavoro) gratuitamente, mentre lavoravano anche per il loro nuovo lavoro.

Questa documentazione di cui hai così disperatamente bisogno ora avrebbe dovuto essere fatta mentre erano ancora presenti. La direzione avrebbe dovuto assicurarsi che lo fosse.

Ora, potrebbe essere appropriato che i tuoi superiori che hanno lavorato con questa persona chiedano loro di avere una sorta di trasferimento delle conoscenze, e solo loro possono giudicare se questa è una buona idea o meno, o in quali termini sarebbe accaduto.

Ecco una storia per mettere le cose in prospettiva:

Questa volta ero un appaltatore di un progetto che era in ritardo, con risorse insufficienti, ma ancora molto richiesto dalle imprese. Ad un certo punto ho alzato le mani e ho detto: "Ragazzi, aspettate. Quello che stiamo facendo non è gestibile. Dovremmo davvero fare un po 'di sforzo per assicurarci che questo progetto possa sopravvivere se venissi investito da un autobus durante il carpooling per il pranzo . " E la risposta che ho ricevuto dal management è stata: "Non ci interessa, buttalo fuori il prima possibile e assicurati che funzioni". - quindi è quello che abbiamo fatto. Una volta entrato in produzione, tutti i costosi appaltatori sono stati sciolti prima che i termini del contratto fossero scaduti. In generale, si trattava di trattare con capi dai capelli a punta che stavano chiaramente cercando di spremere ogni dollaro dal budget. Ora, mi sento male per il poveretto che mantiene quel casino? Sono sicuro. Darò un'ora in più all'azienda in questione? Assolutamente no, anche se chiedono gentilmente.

Allora ... come fai a sapere che non sei quel poveretto che mantiene quel progetto? Non puoi mai essere sicuro di quali fossero le circostanze quando qualcuno se n'è andato, quindi la cosa da fare è non fare supposizioni.

Ma ... se chiede al ragazzo tramite la sua presenza sui social media, potrebbe scoprirlo.
Potrebbe, e potrebbe funzionare, ma non lo considererei con tatto. Cosa succede se la situazione con l'ex dipendente era simile alla mia storia sopra? Qualcuno viene infastidito su Google + da una persona che non ha mai incontrato chiedendo aiuto per conto di un'azienda con cui non vogliono avere niente a che fare. Un po 'uncool, giusto? Ma poi passa un anno, c'è una nuova povera anima che mantiene lo stesso codice, viene su questo sito, presume che sia ok e infastidisce di nuovo la stessa persona! Se questa fosse una pratica comune diffusa, sarebbe terribile. Ecco perché non penso che sia tatto.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...