Qual è la relazione corretta tra lo sviluppatore del software e il cliente aziendale?


10

I professionisti IT sono esperti che si fidano delle risorse IT di un'azienda o di un'organizzazione. Come professionisti di fiducia abbiamo responsabilità che vanno oltre le cose che un cliente non IT può comprendere o conoscere. Quindi penso che il giusto rapporto tra un professionista IT e i suoi clienti interni / esterni sia più simile a quello tra un medico e un paziente piuttosto che un servitore e un maestro. Ho ragione?

Ecco un'analogia a cui pensare. Un paziente insiste sul fatto che la sua gamba deve essere amputata. Il suo medico non è d'accordo, ma il paziente non può essere persuaso. Il medico dovrebbe amputare la gamba solo per soddisfare il paziente?

Un'altra analogia. Un cliente desidera che un ingegnere civile costruisca un ponte verso un design non sicuro. Anche quando l'ingegnere spiega che non è sicuro, il cliente non gli crede. L'ingegnere dovrebbe comunque costruire il ponte?

Penso che la risposta giusta in entrambe queste analogie sia NO. Il professionista medico e l'ingegnere dovrebbero essere in una posizione di fiducia e dovrebbero esercitare il proprio giudizio, anche di fronte alla disapprovazione del paziente / cliente. Lo stesso non dovrebbe valere per i professionisti IT quando il professionista IT è qualificato per prendere la decisione ma il suo cliente non lo è?


2
Durante una conferenza ho sentito una volta un oratore dire "Qualunque cosa tu faccia, non lasciare che il cliente abbia accesso diretto al tuo programmatore principale. Se lo fai lo colpiranno letteralmente ." Penso che questa sarebbe sia la relazione sbagliata tra uno sviluppatore di software e il cliente sia il peggior uso di cui abbia mai sentito parlare.
Jon Hopkins,

E qui al mio lavoro è un principio fondamentale che il cliente abbia sempre accesso diretto al programmatore principale!
Frank Shearar,

Per piccoli valori di "letteralmente", presumibilmente?
Mawg dice di reintegrare Monica il

Risposte:


9

È un po 'più complicato rispetto ai tuoi esempi. Questo perché in molti casi lo sviluppatore di software è un esperto di cose legate all'IT (ad es. Programmazione, progettazione di database ecc.), Ma il cliente aziendale è un esperto nel settore problematico. In tali casi, la relazione corretta è quella di due esperti in diversi settori che lavorano insieme per creare una buona soluzione.

Ad ogni modo, come ogni bravo artigiano, lo sviluppatore di software è obbligato ad avvisare il cliente quando i clienti vogliono cose inadeguate. Se chiedi al tuo pittore e decoratore di tappezzare il bagno, è anche obbligato ad avvisarti che non funzionerà bene. Ma quando il cliente insiste ostinatamente sulla sua cattiva idea, va bene fargli firmare un modulo "sei stato esplicitamente avvisato" e attuare ciò che vuole (purché non ci sia rischio per la salute, rischio legale ecc.).


1
+1 Penso anche che amputare una gamba senza motivo e costruire un ponte non sicuro sia molto più pericoloso che consegnare un'applicazione che non soddisfa le reali esigenze del cliente. Tuttavia, come ha affermato Dportas, il ruolo dello specialista IT è quello di avvisare il cliente. E poi è solo etica. Un buon avvocato non consiglierà il suo cliente di fare causa all'altra parte se è sicuro di perdere. (ma vinci la sua tariffa oraria)

1
+1 - Ho visto almeno altrettanti casi dello sviluppatore che non capiscono veramente il business dei clienti quanti sono quelli che identificano correttamente il cliente che chiede la cosa sbagliata e identificano loro stessi ciò che è realmente necessario . Cioè spesso identificheranno correttamente che c'è un problema con ciò che è stato suggerito, solo che la loro soluzione è ancora alla fine difettosa. L'approccio giusto è il rispetto reciproco per le reciproche conoscenze di dominio e una discussione aperta sul potenziale problema e sulle potenziali soluzioni. Generalmente i clienti sono disposti ad ascoltare.
Jon Hopkins,

1
Allora, dove lavorate tutti che il "cliente business" sia effettivamente previsto nel dominio problematico? Troppo spesso ho scoperto che non è così ...
CaffGeek,

Ciad: secondo la mia esperienza, alcune società di software si concentrano sulla vendita al management di alto livello, che costringe quindi il management di medio livello a implementare tutto ciò che suona bene sulla carta. In tali società, raramente si trovano "clienti commerciali" che sono anche esperti nel settore problematico, poiché si tende a mantenere lo stesso responsabile che ha firmato l'accordo, indipendentemente dal fatto che abbia senso. Altre società preferiscono vendere al reparto interessato, quindi la persona di contatto principale di solito conosce il suo lavoro.
user281377,

1

Nell'esempio del medico e dell'ingegnere, il professionista è un consulente che rifiuta di eseguire un servizio. In un negozio IT, non lo sei.

Siamo dipendenti, non consulenti, quindi siamo soggetti alla regola d'oro: chi ci dà le regole d'oro. I programmatori che ignorano ciò sono arroganti e sciocchi. Ho sentito innumerevoli lamentele al riguardo da parte di uomini d'affari che sono stufi del personale IT che non spiegherà le loro decisioni a nessuno al di fuori del loro sacerdozio insulare e che esplodono le richieste che tutti al di fuori della loro organizzazione considerano perfettamente ragionevoli. Ho visto responsabili IT licenziati per quel genere di cose.

Come dipendente, il tuo equivalente a un consulente che rifiuta di eseguire un servizio è coperto da un preventivo di Napoleone Bonaparte:

Ogni comandante responsabile dell'esecuzione di un piano che considera cattivo o disastroso è criminale. Deve sottolineare i difetti, insistere sul fatto che sia cambiato e infine dimettersi piuttosto che essere lo strumento della distruzione dei propri uomini.

Devi scegliere le tue battaglie. Ciò che ti è stato chiesto di fare è così atroce e immorale che preferiresti smettere? In caso contrario, o spiegare il problema agli stakeholder e negoziare qualcosa di ragionevole, o semplicemente farlo.

E non andare a fare cose per le quali non ti sei comprato. Le persone che lo fanno sono chiamate "cannoni sciolti".

Per inciso, ho lasciato un lavoro perché hanno ucciso un progetto e ho pensato che fosse una mossa davvero stupida. Un paio di mesi dopo che me ne sono andato, sono venuti per concordare con me e mi hanno chiesto di tornare come appaltatore per fare il progetto, ma ero già impegnato altrove.


2
Molti sviluppatori sono consulenti! Sono uno.
Amir Rezaei,

1
Sono un consulente!
nvogel,

Inoltre, ingegneri e medici possono essere impiegati. Sono sicuro che ogni grande ferrovia ha ingegneri civili sul libro paga, per quando vogliono costruire o modificare un ponte.
David Thornley,

4
Sono stato consulente a tempo pieno dal 1991 al 2006 e sono tornato a tempo pieno a luglio. Immagino che se un cliente vuole pagarmi per fare qualcosa di stupido ma non immorale o pericoloso, e insiste sulle mie obiezioni ... ehi, sono i loro soldi da sprecare. E di solito ho scoperto che i miei clienti sanno più delle loro attività di me, quindi le cose che vogliono sembrano pazzesche all'inizio hanno senso dopo che ho capito di più. Trovo che mi viene chiesto di fare cose stupide meno come consulente pagato ogni ora che come dipendente il cui straordinario è "gratuito" per il datore di lavoro.
Bob Murphy,

1

I medici prestare giuramento di 'non nuocere' e sono tenuti per legge a mettere il miglior interesse del paziente prima . Un medico che eseguiva un'operazione inutile e dannosa (anche se il paziente lo richiedeva) si sarebbe aperto a una causa per negligenza e avrebbe potuto perdere la licenza.

Allo stesso modo, un ingegnere civile, che è responsabile di un progetto di costruzione, ha l'obbligo legale di garantire che soddisfi tutti i codici di costruzione applicabili. Come con il medico, un ingegnere che fa ciò che viene suggerito nella domanda, probabilmente affronterà un'azione legale.

Ciò è molto diverso dalla situazione in cui a uno sviluppatore di software viene chiesto di fare qualcosa che sanno essere poco pratico. Non ci sono conseguenze legali per accettare un progetto, anche se sai che è essenzialmente uno spreco di denaro.

Detto questo, uno sviluppatore di software dovrebbe sempre fornire i suoi migliori consigli su qualsiasi progetto. Tuttavia, se le persone che pagano le bollette non sono disposte ad ascoltare e insistono su una linea di condotta poco saggia, lo sviluppatore non ha alcun obbligo morale o legale di rifiutare.


2
È possibile che un progetto software metta in pericolo la vita e gli arti. Come in un database di cartelle cliniche o in un sistema di controllo per un aereo, ad esempio. Molto più probabile, tuttavia, che potrebbero esserci fattori etici o regolatori che sono la preoccupazione legittima dei professionisti IT, come le norme sulla privacy e sulla protezione dei dati o le leggi sulla proprietà intellettuale.
nvogel,

@dportas Questo è possibile, ma in tal caso ci sono probabilmente leggi e regolamenti che regolano la sua costruzione e certificazione. Chiaramente non dovresti mai infrangere la legge per il tuo cliente. Tuttavia, questo è raramente un problema e, a giudicare dagli esempi citati da OP, non è ciò che è stato chiesto.
Kris,

0

Lo stesso non dovrebbe valere per i professionisti IT quando il professionista IT è qualificato per prendere la decisione ma il suo cliente non lo è?

Secondo me SÌ!

Se hai una lunga relazione con il tuo cliente.


0

Il mio suggerimento in questa situazione sarà di avvisare il cliente in una comunicazione scritta e conservarne copia (e-mail, concordare qualsiasi cosa). Se il cliente insiste, allora vai avanti e fallo (questo è talvolta noto come disaccordo e impegno). Assicurati solo che se accadrà qualcosa di brutto, dovresti essere in grado di difenderti correttamente.


0

La differenza fondamentale è la licenza. Medici e ingegneri civili dispongono di licenze professionali e ne hanno bisogno per svolgere il loro lavoro e guadagnarsi da vivere, e hanno anche la responsabilità personale legale per più cose.

Ciò può esercitare maggiori pressioni su medici e ingegneri, quando sono spinti a fare qualcosa che potrebbe causare rischi personali e professionali, ma dà loro maggiore respingimento, poiché possono sostenere che non possono fare qualcosa a causa dell'etica professionale e che perderanno le loro licenze. Una minaccia di licenziare un ingegnere civile per aver rifiutato di firmare un piano perde forza quando la conseguenza della firma è che l'ingegnere perderà la sua licenza e non sarà comunque in grado di lavorare sul campo.

Questo è collegato ai requisiti legali. Non posso prescrivere molti farmaci, e se faccio certe cose a qualcuno che un medico può fare legalmente commetterei un crimine. Allo stesso modo, la maggior parte dei governi qui non consentirà a un'azienda di costruire un ponte senza che un ingegnere civile autorizzato approvi il progetto.

Ci sono state proposte per autorizzare i programmatori, ma nessuno di cui sono a conoscenza è mai andato da nessuna parte. Probabilmente sarebbe necessario avere un requisito legale per avere programmatori con licenza per lavorare prima sui progetti, e ciò non accadrà presto. Esistono organizzazioni professionali con codici etici paragonabili a codici medici o di ingegneria, ma senza alcuna forza legale sono più simili a guide per codici etici personali.


0

Non sto pensando alla dimensione etica, ma la relazione adeguata con la base clienti / utenti può essere abbastanza variabile a seconda del tipo di mercato. Dove lavoro, abbiamo un prodotto altamente tecnico e utenti altamente tecnici e il ricavo medio per cliente è piuttosto elevato. Quindi i nostri confini aziendali sono un po 'sfocati: abbiamo clienti e rivenditori a valore aggiunto che agiscono come consulenti, che aiutano nella verifica del codice e possono persino inviare moduli per l'inclusione nel software. Se stessimo vendendo un'applicazione per il mercato di massa, questo modello non avrebbe alcun senso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.