Come gestite le fonti esterne che non sono conformi agli standard e ai protocolli di servizio?

4

Sto lavorando a un prodotto che richiede una grande quantità di interazioni con diversi fornitori di dati esterni. Questi fornitori di dati utilizzano un numero di standard (principalmente basati su xml) che sono tutti regolati e concordati. Alcuni di questi standard non sono eccezionali e possono essere aperti all'interpretazione.

Ora, una volta ogni tanto, alcune fonti di dati decidono di differire solo un po 'da questi standard, il che significa che la mia applicazione mostra un errore quando l'utente prova a connettersi a loro - tuttavia - molti prodotti concorrenti sembrano essere meno preoccupati per la correttezza, e semplicemente entrare in modalità quirks per ottenere qualcosa di lavoro. Dal punto di vista dei miei clienti, il mio prodotto fa schifo perché non può fare X, ma il prodotto concorrente può, e quando provo a contattare l'origine dei dati per farli risolvere i loro problemi, o non ottengo una risposta, arrivo a parla con una persona non tecnica che non ha idea di cosa sto parlando, o il tempo di implementazione sulla correzione è semplicemente molto lungo.

Per come la vedo io, ho 2 opzioni:

  1. Stare fermo e rischiare di perdere clienti, o
  2. Fai stranezze e hack ad hoc per le fonti semi-compatibili (che dovrebbero quindi essere supportate)

Ho cercato la precedenza storica per il modo in cui gli altri hanno gestito questi problemi (ad esempio, la battaglia tra Firefox e IE, dove alcuni siti semplicemente non funzionavano in FF perché il sito conteneva errori o costrutti non standard) , ma senza molta fortuna nel trovare qualcosa di sostanziale.

Riguardo all'opzione 1, penso che sia chiaro che se questa è la strada da percorrere, in qualche modo devo far capire all'utente che il problema è dalla parte della fonte, senza diventare troppo tecnico, il che può risultare complicato. / p>

Per quanto riguarda l'opzione n. 2, devo considerare anche l'enorme costo di mantenimento sarà che io ho più di 50 fonti hackerate e strane in modo diverso, per non menzionare il sovraccarico nel bizzarro bug-report che è destinato a venire. Inoltre, abbracciando i capricci io stesso sarei parte del problema di tutti quelli che non rispettano gli standard.

Qualcuno ha qualche esperienza con una situazione come questa? Quali sono le cose principali da considerare qui? Ho trascurato qualcosa?

[Aggiorna] Dopo aver letto i commenti qui ho deciso di dare qualche altro contesto. Sto lavorando per un piccolo team (3 sviluppatori, circa 10 persone in totale) che gestiscono un prodotto in una grande coorporazione (1k + dipendenti). Il nostro prodotto è una suite spaziale (si pensi a google maps) con un sacco di flussi di lavoro specifici per il dominio. I miei problemi principali sono con i server WFS / WMS che usano gli standard OGC ( link e link rispettivamente). Questi standard sono un labirinto di parametri opzionali, open-for-abuse e definizioni open-for-interpretative specificamente per quanto riguarda i valori predefiniti (beh, questa è comunque la mia opinione). Ora, se guardi oltre gli standard, nel mondo dei dati spaziali hai anche molti altri problemi come proiezioni errate, geometria autointersecante e molto altro ancora:)

Come ho affermato, siamo una squadra piuttosto piccola, ma poiché il nostro nome aziendale è piuttosto ampio, i nostri clienti si aspettano che gestiremo tutto in modo abbastanza professionale - beh, alcuni clienti comunque.

    
posta cwap 10.02.2016 - 16:13
fonte

2 risposte

7

Dipende interamente dal ruolo della tua azienda e del suo software. In alcuni modelli, devi semplicemente stimare il costo di rendere il tuo livello di integrazione flessibile e adattabile e confrontarlo con il costo stimato di perdere clienti che non vogliono o non possono rispettare gli standard particolari che hai scelto per rispettare.

E poi ci sono casi in cui il tuo modello di business può essere più incentrato sull'adattamento alle esigenze del cliente.

Alcuni esempi da considerare:

I fornitori di browser non implementano mai completamente gli standard web. E, nella misura in cui un del browser implementa lo standard più recente, perdona anche il markup errato. Nessuno userà un browser che non rende il 90% del web perché il venditore ha deciso di "resistere".

Gli autori del team di sviluppo di SQL Server implementano lo standard T-SQL nel loro motore di database. È l'aspettativa del cliente pagante che il database gestisca i propri dati in modo efficiente, sicuro e prevedibile. Sarebbe dannoso per il cliente e quindi per Microsoft per "perdonare" errori nel T-SQL del cliente e / o fare ipotesi sul loro intento!

Clever , un servizio di integrazione del sistema scolastico fornisce un'API singola per gli editori di curriculum (i clienti paganti). Ma è il loro modello di business scrivere centinaia (o migliaia?) Di integrazioni specifiche per i clienti dei loro clienti, che possono o meno essere a conoscenza di standard.

Riguardo all'aggiornamento: il ruolo e l'importanza dei dati che stai gestendo non sono ancora chiari a P.SE . La criticità dei tuoi dati potrebbe essere ovunque, dalle ambulanze di routing alle consegne di pizza. Non lo sappiamo E va bene, continuiamo così.

Hai un sacco di contesto tecnico da portare al tuo manager. E, se la complessità del software o dell'ecosistema è significativa, quale sembra essere, è una complessità che il tuo team dirigente deve capire. Devono rispondere a queste domande per te dal punto di vista del business.

Se hai il coraggio di esitare ad avvicinarti a loro, pensa attentamente a quanto sarà entusiasta il tuo Presidente o CEO per sapere che le decisioni commerciali sono state fatte da te, o svidgen ... o anche Kilian Foth !

    
risposta data 10.02.2016 - 16:30
fonte
2

Ti stai prendendo troppo sul serio.

Il cliente desidera dati aggregati da determinate fonti. Hai accettato di farlo accadere in cambio di denaro. Pertanto, è tuo obbligo mantenere quella promessa. Il fatto che alcune fonti non siano strettamente conformi a un protocollo che pensavate di aver fatto non ha alcuna rilevanza per il cliente; anzi, probabilmente non capirebbero nemmeno la differenza, motivo per cui ti hanno assunto: sei l'esperto.

Quindi, la cosa da fare è estrarre i dati che puoi dalle fonti nel modo in cui il cliente molto probabilmente vorrebbe (in questo caso, è facile: estrai almeno quanto i tuoi concorrenti). Il fatto che ciò richieda hack, codice brutto o standard irrisolti è irrilevante - hai già accettato di proteggere il cliente da queste complicazioni prendendo i loro soldi.

Sei solo giustificato nel rifiutare un'attività se le stranezze nell'input rendono il progetto intero così costoso che non puoi generare un profitto al prezzo concordato . Poi è il momento di rinegoziare (anche se nel mondo reale, dovresti spesso inghiottire il costo se il cliente è altrimenti redditizio). Altrimenti, è vendere-la-tua-idealistica-anima-per tempo di soldi.

    
risposta data 10.02.2016 - 16:47
fonte

Leggi altre domande sui tag