Come posso giustificare una tecnologia rispetto a un'altra? (Java su .NET)

7

Lavoriamo in un'azienda Java / .NET e il mio team e io stiamo pianificando un progetto per un cliente.

Uno dei requisiti è che il progetto deve essere fatto in .NET

Ho chiesto di questo requisito, e il cliente ha detto che non importa, e che se ho una buona ragione possiamo usare altra tecnologia. Ma, devo giustificare la decisione.

Come project manager / analista sono interessato a realizzare il progetto in Java perché:

  • Il team conosce molto meglio java, per quanto riguarda la lingua e i framework
  • Non so nulla della tecnologia .NET (e forse potremmo prendere decisioni sbagliate pensando in un modo Java di fare cose)
  • Ci sono altre persone in compagnia che hanno più competenze in .NET ma hanno altri progetti con maggiore priorità.

Per esperienza, sono sicuro che se usiamo Java, il progetto avrà molta più qualità. Ma questi argomenti potrebbero essere deboli dal punto di vista del cliente.

Come posso giustificare la realizzazione del progetto in Java?

EDIT: non sto chiedendo se una tecnologia è migliore di altre. "Non è una questione di guerra tecnologica".

    
posta user674887 16.11.2011 - 14:27
fonte

6 risposte

16

Perché l'argomentazione di produrre un prodotto di qualità migliore in Java è debole?

Supponendo che la tecnologia con cui hai familiarità possa essere usata (relativamente) facilmente per implementare le soluzioni che ti occorrono devi andare con la tecnologia che tu (come sviluppatori) conosci per diversi motivi:

  • Hai più familiarità con le librerie, i framework e gli strumenti, quindi lavorerai più velocemente.
  • Produrrà un prodotto di qualità superiore per lo stesso motivo e ciò condurrà a:
    • Un prodotto più stabile quindi meno chiamate di supporto.
    • Sviluppo più semplice dei miglioramenti

Al contrario, l'utilizzo di una tecnologia sconosciuta porterà allo sviluppo

  • impiegare più tempo
  • avere maggiori probabilità di avere errori e quindi richiedere più supporto
  • essere più difficili da estendere in futuro

Ovviamente questo è valido solo se non esiste un business case per l'utilizzo di una tecnologia piuttosto che di un'altra. Un caso del genere sarebbe dove il cliente ha l'infrastruttura e le competenze IT per .NET e non Java (o viceversa).

    
risposta data 16.11.2011 - 15:07
fonte
3

Non penso che ci sia un cliente su questo pianeta che considererebbe la qualità un argomento debole.

Tuttavia, come project manager / analista, non penso che dovresti essere tu a prendere questa decisione. Chiedete al team cosa vogliono usare e perché - chiarite che deve essere una ragione che potete spiegare al cliente (cioè qualcosa di più vantaggioso rispetto a "Voglio .NET sul mio CV"). L'autonomia è la motivazione numero uno per gli sviluppatori di software e consentire loro di fare scelte tecniche è importante. Sono quelli più qualificati per decidere e sono quelli che dovranno vivere con la decisione.

Se hanno buoni motivi per scegliere .NET, lasciali fare. La tua mancanza di conoscenza della tecnologia è irrilevante. Ma è più probabile che scelgano quello con cui sono più a proprio agio, il che è un buon motivo per scegliere Java.

    
risposta data 16.11.2011 - 14:45
fonte
2

Mi sono messo nei tuoi panni e mi piacerebbe sicuramente andare per Java ma per quanto ho capito, hai già preso la decisione. il tuo problema è come spiegare la decisione al cliente. (correggimi se sbaglio)

Gli direi che il tuo team ha più esperienza in Java che in .Net.

Non prendere una decisione di marketing a buon mercato per un cliente e dirgli che Java sarebbe più adatto per quel progetto perché sarebbe una grande bugia. non perché .Net è meglio di Java, perché non hai esperienza in .Net e non sai se sarebbe adatto per questo progetto o meno.

    
risposta data 16.11.2011 - 15:36
fonte
1

Risposta rapida breve:

Java è un framework di programmazione (tecnologia) valido, stabile, aggiornato e abbiamo anni di esperienza con loro. (Puoi dirlo al tuo cliente)

Risposta filosofica lunga, noiosa, descrittiva:

Come menzionato in altri post, hai già la risposta, il tuo team ha più esperienza in "tecnologia" Java rispetto a ".NET" "tecnologia".

Entrambe le tecnologie hanno buone caratteristiche, ma richiedono tempo e amp; abilità per impararli. ".NET" ha alcune funzionalità avanzate.

Non puoi scartare nessuno di loro per essere "obsoleto" o senza "sufficienti biblioteche", o "non supporta lingue internazionali" o altro materiale.

Proponi framework Java.

Tuttavia, potresti considerare di mettere in pratica alcuni dei tuoi sviluppatori con ".Net" con un "mondo reale", non con i libri, requisito.

Ad esempio, in un po 'di tempo libero, lascia che creino dei moduli o pagine web che hanno lo stesso scopo, usando una copia dello stesso D.B. Anche se sembra una perdita di tempo. In questo modo, ti prepari quando arriva un altro cliente e desideri un'applicazione simile., Ma con ".NET"

Oracle, inizia a mettere Java in pista.

Solo i miei 2 cheseburguers (2 centesimi).

    
risposta data 16.11.2011 - 17:46
fonte
0

Preferirei rispondere, non come programmatore, ma come manager. Sono responsabile per un futuro all'interno del mio dipartimento in cui lo sviluppo continua ad essere accessibile e flessibile.

Preferisco Java, non perché Java possa funzionare su più piattaforme (che in realtà migra applicazioni Java su piattaforme diverse?) ma perché i miei sviluppatori (con Java come solo uno degli ambienti) possono lavorare su più piattaforme. Sono molto più preoccupato di nutrire gli sviluppatori con molte abilità che hanno il desiderio di apprendere la tecnologia.

Se acquisto .Net solo perché mi consente di assumere un programmatore economico o di aiutarmi a mantenere il controllo su Windows (probabilmente facile da gestire), quindi blocco la community degli sviluppatori su un'unica piattaforma. L'unico futuro garantito è che Microsoft troverà un modo per cambiarlo e quindi addebitarmi di più per il privilegio.

    
risposta data 30.11.2011 - 17:27
fonte
0

Sono sorpreso che nessuno abbia menzionato il costo. .net costerà al cliente di più per la manutenzione e l'acquisto del framework mentre Java è gratuito e indipendente dalla piattaforma. Quanto dici - alla fine JVM è gratuito con ogni sistema operativo e CLR no.

    
risposta data 17.04.2013 - 03:19
fonte

Leggi altre domande sui tag