"Guidare" un esperto di domini per ritirarsi dalla programmazione [chiuso]

7

Ho un amico che lavora nel settore IT senza fini di lucro dove utilizza un'applicazione web personalizzata che non è più supportata dalla società che l'ha creata. (fuori dal mercato, il supporto era troppo costoso, non sono sicuro ...) Lo sviluppo di questa app è iniziato circa 10 anni fa, quindi le tecnologie utilizzate sono piuttosto obsolete - asp classici con vbscript e SQL Server 2000. Il dominio dell'applicazione è nel regno della contabilità del governo - quindi anche se il team di sviluppo è da tempo lontano, ci sono spesso nuovi requisiti di questo software. Inserisci il ...

L'esperto di dominio. Questo è un mago della contabilità di mezza età senza molte (o nessuna?) Esperienza di sviluppo precedente. Ha studiato le pagine, il codice e le domande e ha imparato a scimmiottare lo stile della squadra originale che, credetemi, è al massimo mediocre. È molto intelligente e molto tenace, ma non ha esperienza nel software oltre a ciò che ha raccolto da questa app. Altrimenti, è un ragazzo piacevole con cui parlare e sicuramente conosce il suo dominio.

Il mio amico in IT, e probabilmente i suoi superiori in azienda, lo vogliono fuori dal codice. Lo vedono come uno spreco della sua esperienza in compiti di codifica che non dovrebbe fare. Il mio amico mi ha coinvolto con alcuni piccoli contratti che ho gestito senza molti problemi - oltre a un po 'una barriera di comunicazione con l'esperto di dominio. Ha spiegato i requisiti molto rapidamente, assumendo la conoscenza preliminare del dominio che non ho. Questo è in parte il suo stile normale, e penso forse un po 'di risentimento per il mio coinvolgimento. Quindi, penso che si senta il proprietario del codice e si sia trincerato in una posizione di sviluppo.

Quindi ... la sua tecnica di codifica. Uno dei suoi ultimi sforzi consisteva nel creare una pagina che solo lui poteva raggiungere (in teoria - il modello di sicurezza per il sistema è infelice) dove può inserire una query SQL raw, eseguirla e salvare la query per eseguirla nuovamente in seguito. Un report su cui ho lavorato era stato originariamente implementato da lui usando 6 query distinte, 3 o 4 tabelle temporanee per coordinare i dati tra le query e il risultato finale ottenuto importando i dati dalla query finale in Access e facendo un pivot e qualche formattazione. Ha funzionato - beh, alcuni risultati non erano corretti - ma a quale costo! (Ho implementato il report in una singola query con almeno 1/10 della quantità di codice.) Modifica il codice nel blocco note. Sembra non conoscere il materiale di riferimento online per le lingue. Di recente ho letto un articolo su Dr. Dobbs ha intitolato "Ciò che rende i programmatori diversi" e ha immediatamente pensato al nostro esperto di dominio. Dall'articolo:

  • Their code is large, messy, and bug laden.
  • They have very superficial knowledge of their problem domain and their tools.
  • Their code has a lot of copy/paste and they have very little interest in techniques that reduce it.
  • The fail to account for edge cases, while inefficiently dealing with the general case.
  • They never have time to comment their code or break it into smaller pieces.
  • Empirical evidence plays no little role in their decisions.

5,5 su 6.

Il mio amico vuole che io discuti il caso con la loro gestione, in particolare, ho ricevuto questa email dal loro manager per rispondere a:

...Also, I need to talk to you about what effect there is from Domain Expert continuing to make edits to the live environment. If that is a problem for you I need to know so I can have his access blocked. Some examples would help.

A mio parere, dal punto di vista tecnico, è pericoloso fargli apportare modifiche senza alcuna supervisione.

D'altra parte, sto facendo solo contratti one-off a questo punto e non ho molto desiderio di essere coinvolto a fondo in modo tale che sto essenzialmente discutendo come uno dei Bob di Office Space. Mi piacerebbe aiutare la mia amica - ma mi sento come se mi trovassi nel bel mezzo di una battaglia politica.

Ancora più importante - se sono coinvolto e suggerisco che i suoi privilegi di modifica vengano rimossi, è necessario gestirli con cura in modo che non si sentano sminuiti. È senza dubbio il più esperto di questo sistema.

Spero che questo sia un territorio familiare per alcuni altri stackchanger, perché mi sento un po 'disorientato. Come dovrei rispondere? Dovrei sostenere che non dovrebbe essere autorizzato a toccare il codice? Devo dire che "nessuno sviluppatore singolo, non importa quanto esperto, dovrebbe lavorare sul codice di produzione deselezionato"? Dovrei discutere di tenerlo coinvolto con il codice, ma con un processo di revisione? Devo dire "sono felice di poter aiutare, ma ora sono impegnato!" Altre opzioni?

Grazie mille!

    
posta James Kolpack 03.07.2012 - 02:17
fonte

2 risposte

18

Adotta la prospettiva a lungo termine su questo problema. Molti degli oggetti che hai menzionato si lavano via quando posizioni una lente obiettiva sulla situazione.

Hai una skin minima in questo gioco e nessun desiderio / prospettiva reale per un significativo lavoro a contratto da parte del NFP. In definitiva, quale vantaggio c'è per rispondere in un modo o nell'altro alla richiesta di gestione?

Sei benissimo nel decoro per affermare semplicemente "Non ho abbastanza storia di questo progetto per fare una dichiarazione del genere". E poi si può continuare con "Una buona pratica è avere un sistema di test per fare e testare i cambiamenti prima di apportare quei cambiamenti nella produzione.Nessuno, me compreso, dovrebbe apportare modifiche direttamente alla produzione in una situazione di non emergenza ". E sì, anche nella maggior parte delle situazioni di emergenza si dovrebbe colpire Test prima di Prod.

Il PFN chiede a un tecnico di esprimere un giudizio personale, che è davvero al di fuori del regno del tuo ruolo, soprattutto come un appaltatore part-time / ad-hoc. Non vi è alcun guadagno per voi o beneficio per la vostra reputazione professionale essendo coinvolti nella loro materia interna.

Aggiornamento:
Questo non era direttamente nella tua domanda, ma riguarda gli aspetti più tecnici di esso. E fornisce passaggi più concreti di ciò che puoi realmente fare per aiutare questa situazione. Non influisce sulla mia risposta originale per rimanere fuori dal problema personale. Vale sempre la pena ricordare che il codice è il prodotto delle circostanze che lo hanno creato. Cerco di non essere troppo veloce per giudicare qualsiasi serie di codice che non ho personalmente scritto perché non conosco tutte le circostanze. Ho scritto qualche codice criptato sotto pressione, e me lo ricordo ogni volta che vedo nuovi esempi. Mantienilo reale. Mantienilo umile.

Alcune persone semplicemente non sanno che quello che stanno facendo è sbagliato. Nel tuo prossimo contratto, puoi offrire di mostrargli alcune tecniche per migliorare le sue capacità di codifica. Inizia con un complimento e / o riconosci la sua esperienza nel dominio. Quindi mostragli una facile semplificazione e sottolinea perché gli renderà la vita più facile. Inizia in piccolo e inquadralo sempre verso il suo vantaggio, non come aizzarlo. Soprattutto non vuoi pubblicizzare che stai cercando di "addestrarlo"; inquadralo semplicemente offrendo semplici trucchi e suggerimenti. Nonostante la sua personalità brusca, tutti apprezzano l'apprendimento dei trucchi del mestiere che semplificano le loro vite.

    
risposta data 03.07.2012 - 02:37
fonte
4

Parafrasando la tua domanda "Il mio compagno lavora per un'azienda che vuole licenziare qualcuno che non pensa stia facendo un lavoro abbastanza buono, mi hanno chiesto di aiutare, e sono felice di esserlo, perché sono d'accordo, posso avere qualche consiglio su come torcere davvero il coltello su questo tipo? "

Tutto ciò che posso aggiungere alla superba risposta di @ GlenH7 è che si tratta di un serio problema occupazionale. A parte l'etica, discutere apertamente su internet potrebbe mettere in profondità un certo numero di persone ..... Glen ha indicato che non hai nulla da guadagnare ... Vorrei andare fino a perdere molto.

Il mio consiglio è di rimanere fuori da esso, non è la tua battaglia.

    
risposta data 03.07.2012 - 05:23
fonte

Leggi altre domande sui tag