Sono uno sviluppatore Magento freelance, con sede in Spagna. Uno dei miei clienti è una società di sviluppo web con sede in Germania e mi stanno chiedendo qualcosa che penso sia impossibile. OK, forse non impossibile ma sicuramente non è un modo preferito di fare le cose.
Uno dei loro clienti ha un'installazione Magento Entreprise , che è la versione a pagamento (e credo proprietario) di Magento. Il loro cliente ha vietato loro di scaricare i file dal suo server. Il mio cliente mi chiede ora di studiare un particolare modulo dell'applicazione per interagire con esso da un modulo personalizzato che dovrò sviluppare.
Poiché dispongono di un accesso ssh di sola lettura al server del loro cliente, hanno trovato questa soluzione : Configura una sessione di condivisione desktop / schermo tra una stazione del loro sviluppatore e il mio, oltre a una conversazione Skype. La loro idea è che dirò allo sviluppatore:
show me file foo.php
Lo sviluppatore aprirà quindi questo file foo.php nel suo IDE. Dovrò quindi chiedergli di mostrarmi il metodo bar, la classe genitore, ecc ...
Ricorda che è una sessione di sola lettura, quindi dimentica di mettere un Zend_Debug::log()
ovunque, e non pensare nemmeno a un breakpoint xDebug (non usano alcun tipo di debugger, sic). Il loro cliente ha anche vietato loro di utilizzare qualsiasi sistema di controllo della versione ...
La mia prima reazione quando mi hanno spiegato questo è stato (e in realtà l'ho detto ad alta voce per loro):
Well, find another client.
ma l'hanno preso come uno scherzo da me. Capisco che dal punto di vista del business rifiutare un cliente non è una buona pratica, ma penso che le condizioni di questo incarico ne rendano impossibile il completamento.
Almeno secondo il mio flusso di lavoro. Voglio dire, il modo in cui lavoro o apprendo un nuovo framework / programma è:
- scarica tutti i file e copia di db sul mio pc
- crea un repository git e un ramo
- esegui l'applicazione localmente
- usa i punti di interruzione
- usa Zend_Debug :: log ()
- scrivi il codice e prova
- commit to git repo
- caricare su (test / staging prima se ce n'è uno, produzione se non) server
Ho accettato di provare la sessione di condivisione del desktop, anche se penso che sarà una perdita di tempo. Da una parte non mi dispiace, mi pagano per quel tempo, ma mi conosco e non mi piace la sensazione di perdere tempo. D'altra parte, ho altri clienti per i quali posso lavorare in base al mio flusso di lavoro.
Sto per dire loro che non posso (non voglio) farlo. Bene, per prima cosa proverò questa sessione di condivisione del desktop: forse ho sbagliato e può funzionare davvero. Ma mi piace considerarmi un professionista, e so che non so tutto. Quindi cerco di mantenere una mente aperta e sono sempre disposto ad apprendere nuove cose.
Quindi le mie domande sono:
- Può funzionare questo flusso di lavoro di condivisione desktop? Cosa dovrebbe essere fatto per trarne il massimo?
- Tenendo conto di tutti gli ostacoli (località geografiche, non locali, niente git), c'è un altro modo per lavorare su quel progetto?