2010-08-02 7 views
5

Sto lavorando per una piccola azienda, che opera nel settore dell'automazione. Il capo mi ha assunto perché vuole vendere/dare alcune applicazioni desktop ai suoi attuali clienti . Mi impone di utilizzare la piattaforma Netbeans (un framework di applicazioni desktop generico). Un suo amico ingegnere del software gli consigliò di scegliere questo quadro.Come convincere il capo a sostituire la piattaforma Java/Netbeans per Python/PyQt?

Al momento ho creato 3 applicazioni desktop con Netbeans Platform. Mi piace Netbeans Platfom. Approfitto davvero di modularità, Window System e Lookup. Purtroppo sono frustrato nel sapere che posso fare lo stesso lavoro con Python e PyQt in una frazione di tempo.

ho già illustrato al mio capo i principali vantaggi di Python, ma non gli piace l'idea di utilizzare un linguaggio che non ha mai heared di esso.

Sono l'unico programmatore che codifica le applicazioni desktop. E a parte l'imposizione del quadro, sono libero di usare quello che voglio.

Sto cercando buone motivazioni per convincerlo a lasciare la piattaforma Netbeans per Python/PyQt.

P.S: il mio inglese è cattivo, mi dispiace.

risposta

12

Se le tue capacità di vendita non funzionano in un formato di discussione, ti consiglio vivamente di documentare il documento . Alcuni manager/capi rispondono molto bene a questo.

Crea una matrice di tutte le metriche che utilizzi per classificare i due framework (lascio lì il livello di obiettività: ad esempio se obiettivo dovrebbe analizzare il costo della transizione e la perdita di esperienza istituzionale; potrebbe non essere alto).

Infine, inviarlo via e-mail e viola si dispone:

  • fatto un rapporto/analisi della situazione fornendo opzioni di miglioramento
  • questo dimostra che si sta pensando verso futuro e che si mostra iniziativa

EDIT: si può anche chiedere il vostro capo per mostrare la vostra analisi al suo amico se lui si fida il suo amico più di tanto, ma chiedete una scritta contro-analisi in modo da poter affrontare la critica.
È una buona cosa farlo apertamente e documentare bene il processo decisionale, poiché alla fine, se il tuo suggerimento è accettato, condividerai la responsabilità per la decisione.

+0

Non dimenticare che dovrai fornire supporto/manutenzione/aggiornamenti/bugfix per le applicazioni già create sulla piattaforma NB. Dover supportare due piattaforme è un costo aggiuntivo per un'impresa (potrebbe essere grande o trascurabile, ma vale la pena considerare) – Mchl

+0

@Mchl, o se non sono troppo avanzati, riscrivili in Python + Qt. Mentre puoi facilmente ottenere un programmatore ID-10-T fuori dal college che conosce Java (perché è così sexy), è stata la mia esperienza che i programmatori migliori imparano Python. Certo, puoi trovare grandi programmatori in Java (suppongo?) Ma penso che il rapporto sia un po 'più alto con Pythonistas, quindi è perfettamente possibile che portarli su Python finisca per essere meno costoso (manutenzione, ecc.) A lungo termine. –

+3

Dalla mia esperienza, "i programmatori migliori tendono a scegliere il linguaggio x" sembra non essere mai supportato da alcuna prova. Contrariamente a 'le persone che programmano in x si sentono superiori alla programmazione di poeple in y';) – Mchl

1

Avete sottolineato il punto del minor tempo di sviluppo. Qualsiasi persona che non vuole una svolta più breve nel tempo è un idiota. Questo è l'unico problema principale che posso pensare per il cambiamento. O quello che potresti fare è svilupparlo sul lato e quando hai errori dire questo è quello che ho fatto nel mio tempo libero (avere una copia funzionante scritta in python).

+11

* "Qualsiasi persona che non vuole una svolta più breve nel tempo è un idiota." * E chiunque pensi che il breve tempo di sviluppo sia l'unica questione importante qui è anche un idiota. :-) –

+6

Sostengo categoricamente che qualsiasi persona che trasforma generalizzazioni frettolose in affermazioni categoriche è un idiota ... err, dannazione .. :-) – Unreason

+0

Chiama il capo un idiota e il gioco è fatto :) –

0

Proprio utilizzare Netbeans come IDE e lui accorgerai mai: P

Parlando più seriamente: un confronto fianco a fianco dei punti di forza e di debolezza dietro ciascuno di tecnologie sarà certianly più convincente. Basta non imbrogliare troppo a favore di Python;)

3

In primo luogo, i risultati parlano da soli: se riesci a mettere insieme un'altra versione di una delle tue applicazioni in pyqt, e digli quanto tempo ci è voluto, potrebbe essere motivazione sufficiente

Oppure, la prossima volta che inizierai un progetto, potresti prototipare quattro o cinque diverse versioni dell'interfaccia in pyqt al mattino, chiedere il suo feedback dopo pranzo e poi dire "se continuo a continuare su questi, sarà fatto in due giorni, se lo rifaccio in netbeans, sarà fatto in quattro. "

E per quanto riguarda il "non averne mai sentito parlare", sentitevi liberi di far notare che Google usa Python in modo estensivo, e persino assunto molti sviluppatori di Python.

+2

+1: Puoi "convincere" un capo di tutto. Tutto quello che puoi fare è scrivere codice migliore con Python e mostrare che è meglio di Java per i tuoi clienti. –

5

Il problema di base qui è che il tuo capo non tecnico sta ricevendo consigli contraddittori da te e dall'amico che gli ha consigliato in primo luogo. Se vuoi che prenda sul serio il tuo consiglio, devi dimostrare che il tuo consiglio è probabilmente degno di fiducia. E questo arriverà solo con il prendere il comando e avere successo con progetti significativi in ​​azienda. In questo momento, non hai guadagnato la sua fiducia.

L'altra cosa da considerare è come le tue preferenze si confondono con gli obiettivi dell'azienda. Ad esempio, vuoi essere in grado di scrivere codice velocemente. Ma il capo/l'azienda ha bisogno di un codice che sia affidabile e mantenibile ... se decidi di prendere un'altra posizione. Non vuole essere lasciato nella situazione imbarazzante in cui l'azienda è impegnata per contratto a consegnare codice che non funziona veramente correttamente, e l'unica persona che lo capisce è andata via.

+0

Anche un n idiota capo può guardare un codice python piuttosto decente e avere una buona idea di cosa sta succedendo. Un codice Python eccellente sarà ancora più facile da capire. In Java, OTOH, se i commenti mentono, devi essere abbastanza intelligente. –

+0

@Wayne - Lo prendo come un complimento :-). Ma il mio punto è che il capo ottiene il codice che può essere mantenuto da qualcun altro. Ci sono probabilmente molti più codificatori Java nella sua città/sul suo libro paga rispetto ai programmatori Python. –

8

Il problema è che il tempo di sviluppo di solito non è nulla rispetto alla manutenzione. A chi importa se ci vogliono due giorni anziché quattro se l'app ha una durata di 1-5 anni?

Dovrai convincerlo che se vieni investito da un camion o lasci la compagnia (forse per lavorare per qualcuno che usa esclusivamente Python) che non sarà lasciato a bocca aperta con un mucchio di applicazioni che nessun altro sa e non può mantenere o aggiornare.

+1

Non direi che il tempo di sviluppo è una frazione del tempo di manutenzione; ma ciò dipende dalla terminologia utilizzata (se si dice sviluppo = 'risorsa utilizzata fino alla prima consegna' allora si potrebbe avere ragione). Inoltre, la manutenzione sarebbe abbreviata/più economica se il quadro è più economico. Ad ogni modo, sto alla mia risposta: documentare l'analisi costi/benefici (o alcuni altri metodi di pianificazione strategica, come ad esempio SWOT) è la cosa più utile che tu possa fare. – Unreason

1

Perhaphs che mostrano lo

a) Il tempo trascorso in via di sviluppo in Python e Java b) linee di codice in Python e Java

con queste due metriche forse si può fare il vostro caso più forte

1

Direi che molto, in termini di gestione del rischio, dipenderebbe dalla separazione/isolamento dei vari software sviluppati e dal loro ciclo di vita.

Se non è necessario aggiungere un gruppo centrale di librerie o avere (o possono sviluppare) collegamenti Python per questi, e i progetti sono relativamente autonomi, ad esempio una svolta di 2-6 mesi, è possibile dargli una citazione per un progetto in Java che sia ragionevole e che abbia familiarità con (per assicurarsi che non appaia gonfiato artificialmente). Quindi dai una citazione molto ridotta per lo stesso in py + pyQt e vedi se riesci a convincerlo a investire sui tuoi consigli.

Senza prova tangibile proveniente dall'interno che un cambiamento di percorso porterà beneficio della maggiore gestione e l'economia savvy persone che sono tecnicamente ignoranti non comprare in una nuova piattaforma quando il vecchio non ha impedito di realizzare e di vendita.

Senza una valutazione decente del motivo per cui non vuole cambiare piattaforma e ciò che considera rischi è piuttosto difficile dare consigli più pertinenti.

2

Alcune persone ti diranno di provare a convincere il tuo capo a parole. Altri ti diranno di documentare i risparmi di tempo che pensi di poter fare. La mia opinione è che tu vai avanti e fallo. Fallo nel tuo tempo se credi fermamente nel tuo miglior interesse.

Devo ancora incontrare un gestore di software che ha rifiutato un pezzo di software funzionante quando arriva in tempo e con un budget limitato. Questo è di gran lunga il miglior metodo di persuasione che ho usato nella mia carriera. È anche un ottimo modo per mostrare che hai iniziativa. Preparati a lavorare gratis se non funziona.

+0

Lo stai facendo per ** gratis ** anche se funziona. In entrambi i casi è una situazione di perdita per te. – Pacerier

Problemi correlati