Come posso spostare una squadra dallo sviluppo C # ASP.NET allo sviluppo PHP usando Drupal?

3

Ho un team di sviluppatori specializzati in C # con una vasta esperienza nella creazione di applicazioni ASP.NET MVC. Presto avvieremo un nuovo grande progetto di sito web basato sulla piattaforma Drupal. I miei sviluppatori non hanno alcuna esperienza in Drupal o PHP e voglio rendere la transizione il più rapida ed efficace possibile.

Abbiamo deciso di prendere questa decisione in base a due fattori:

  1. Nella mia organizzazione ci sono un paio di squadre in competizione per fare questo progetto. Nessuno degli altri team ha esperienza in PHP o Drupal e credo davvero che il mio team lo farebbe meglio, sia che si tratti di ASP.NET o Drupal.
  2. Uno dei requisiti della gestione superiore era che non costruiremo qualcosa da zero, ma useremo una fondazione esistente. Molti dei requisiti sono disponibili in plugin / moduli per i vari CMS.

So che questo non è un ambiente ideale, ma è un dato stato e devo sfruttarlo al meglio. Nessuno dei CMS basati su .NET Framework supportava tutti i nostri requisiti. Dal momento che il mio team è dinamico in natura, credo che possa adattarsi a lavorare con Drupal.

Assumere altre persone non è un'opzione e mandarle a un corso richiederà troppo tempo. Ho pensato di dedicare una settimana in cui ogni sviluppatore studierà un argomento specifico e poi lo passerà al team.

Qualche suggerimento su come lo faresti?

    
posta Diana 02.03.2012 - 14:44
fonte

8 risposte

21

Non vorrei essere uno sviluppatore di questo team / su questo progetto, ha le sorti di un disastro (sul serio). Sembra una tipica domanda di gestione. Quindi, stai cambiando il set di competenze degli sviluppatori, non vuoi ottenere alcun tipo di formazione e inoltre non vuoi assumere un architetto con esperienza.

  1. Avrai dolori crescenti in questo progetto.
  2. Finirai con il codice (si spera) che dovrà essere riattrezzato più tardi dopo aver scoperto i "trucchi" che verranno visualizzati.

Secondo me, qualcuno del progetto deve avere abbastanza conoscenza della lingua per vedere il quadro generale. Avere che ogni sviluppatore proverà ad apprendere un sottoinsieme senza sapere come si integrano tutti insieme finirà per metterti nei guai. Qualcuno deve capire come tutto si integra e non arriverà tra una settimana.

Buona fortuna. : P

    
risposta data 02.03.2012 - 18:33
fonte
10

Per familiarizzare in modo particolare con una determinata lingua, il codice impiega molto tempo e impegno. Senza un'adeguata guida durante la transizione, un'applicazione potrebbe essere un incubo di manutenzione e potrebbe non funzionare a tuo vantaggio nel lungo periodo.

Detto questo, ti suggerisco di avere uno sviluppatore PHP esperto e poi lavorare con il tuo team per essere guidato dallo sviluppatore esperto sulle migliori pratiche in PHP e fare un cambiamento saggio e graduale.

Personalmente, sto lavorando come sviluppatore C # da quasi 4 anni e probabilmente penserei 100 volte prima di effettuare il turno.

Buona fortuna!

    
risposta data 02.03.2012 - 15:55
fonte
8

Sto presumendo che i tuoi sviluppatori C # "esperti" non siano molto richiesti da altre aziende, forse sei basato in qualche posto con pochissimi altri lavori, o forse i tuoi sviluppatori non sono esperti.

Come sviluppatore c # esperto e esperto, se mi avessero detto che sarei stato forced per passare a Drupal o PHP, avrei utilizzato link

Se i tuoi sviluppatori volevano imparare PHP avrebbero già iniziato a farlo nel loro tempo libero, il fatto che non hanno acquisito esperienza in Drupal o PHP della propria schiena, deve dirti quanto sono entusiasti in movimento !

    
risposta data 05.03.2012 - 10:50
fonte
3

Come sviluppatore .net che in realtà ha trascorso alcuni mesi ad imparare php + Drupal, la mia risposta è non farlo.

Usa dot net nuke o qualcosa di simile invece. Certo non è buono come Drupal, ma l'uomo ti farà risparmiare mesi di apprendimento.

    
risposta data 06.03.2012 - 13:12
fonte
2

Pensi che il tuo team sia in grado di eseguire un progetto php professionale senza conoscenze PHP? Di sicuro PHP è facile, non ha le "restrizioni" come asp.net o j2ee ... (di sicuro le restrizioni sono le sagge di queste lingue).

Come dovresti sapere, PHP ha molti fatti speciali che non esistono in C # o J2EE. È facile da imparare, ma come sviluppatore professionista devi sapere molto su come puoi sviluppare applicazioni sicure.

Sicuramente se hai un progetto Drupal con solo personalizzazione del design e nessun widget, nessun plug-in ecc., potrebbe funzionare, forse. Ma questo è un alto rischio.

Preferirei dare al tuo team la possibilità di imparare PHP per più di una settimana. Ottieni quanto più letteralmente possibile e insegna e allena la tua squadra il più velocemente possibile. Ma avere un progetto in un linguaggio di sviluppo che nessuno conosce in così poco tempo viene spesso chiamato "suicidio".

Una buona letteratura per il tuo problema potrebbe essere Sviluppo per Drupal e Sviluppo PHP professionale o un libro su modello per php . Ci sono molti buoni libri disponibili. Esamina la guida allo sviluppo di drupal . Quindi hai molto da imparare: -)

I migliori auguri.

    
risposta data 02.03.2012 - 15:09
fonte
1

Come avrai senza dubbio realizzato da tutte le altre risposte, costringendo gli sviluppatori a fare un tale cambiamento, specialmente su un progetto che sembra essere un incubo altamente visibile e ad alta pressione non sarà facile.

Il mio consiglio sarebbe di chiedere agli sviluppatori che vorrebbero l'opportunità di lavorare sul progetto, piuttosto che forzarli. Anche se quasi sicuramente ci si ritroverà con un numero molto minore di sviluppatori che lavorano al progetto, almeno saranno sul progetto per scelta e, in quanto tali, saranno molto più motivati a renderlo un successo. Inoltre, una squadra più piccola sarà più facile da gestire e generalmente più efficiente, quindi avrai più soldi per te. Certo, il progetto potrebbe, sulla carta, sembrare che ci vorrà più tempo che se ci metti tutti i tuoi sviluppatori, ma è solo perché la versione del piano che mostra ogni singolo sviluppatore che lavora in parallelo su attività che si concludono magicamente i tempi giusti esatti per garantire la data di consegna più rapida possibile è una favola. Dovresti anche ricevere dei plausi in più dal management superiore se invii una proposta che utilizza risorse significativamente inferiori rispetto a quelle proposte dagli altri team.

Inoltre, supponendo che tu non voglia usare nessuno dei temi pronti all'uso, avrai bisogno di una quantità ragionevole di funzionalità di web design e di alcuni sviluppatori CSS molto capaci. Ne parlo solo perché il tema di Drupal può essere un po 'più difficile dell'HTML / CSS che entra in un'app web normale. La buona notizia è che ci sono tonnellate di ottima documentazione e alcuni tutorial eccellenti disponibili sulla personalizzazione di Drupal.

    
risposta data 05.03.2012 - 11:50
fonte
1

Il solo fatto che tu stia facendo questa domanda qui indica che non hai parlato con la tua squadra di questo, o hai e hanno indicato dei dubbi. In ogni caso, puoi organizzare un numero qualsiasi di corsi o seminari di formazione nella tua squadra, se non sono a bordo, non ti sosterranno e fallirai. Ricorda, hanno iniziato a lavorare per te per una ragione. Comprendi che, potenzialmente, stai modificando molti dei parametri che li hanno spinti a scegliere di venire al lavoro per te in primo luogo.

Siediti con la tua squadra, scopri insieme come procedere su questa transizione e se è fattibile. Scopri come condividere il credito. Il tuo post qui parla molto di te e di come hai bisogno di impressionare la gestione e di come i tuoi sviluppatori dovrebbero farmi mettere in riga. Se questo deve essere fatto, dovrà essere uno sforzo di gruppo, quindi inizia da lì.

Puoi costringere la tua squadra alla tua volontà fino a un certo punto (è per questo che la chiamano lavoro, sei pagato per fare come ti è stato detto). Tuttavia, alla fine le persone si ridurranno fino a produrre il minimo indispensabile per essere pagati o semplicemente smetteranno. O uno di questi sicuramente condannerà il tuo progetto al fallimento.

    
risposta data 05.03.2012 - 16:23
fonte
0

In linea di massima sono d'accordo con ciò che hanno detto tutti, ma ci sono alcuni punti pratici che possono aiutarti a consegnare qualcosa.

Il tuo approccio di fare in modo che ogni sviluppatore prenda un'area non è male. Incorporare in questo un sacco di prototipi. Crea un elenco di attività, qualcosa di simile al seguente e generale. Alcuni dipendono dagli altri, ma è solo un esempio.

  1. Installa PHP e Drupal.
  2. Crea un processo di compilazione e distribuzione
  3. Configura un server e istanze di sviluppatori locali
  4. Crea un plug-in per Drupal che dice "Hello World"
  5. Crea una pagina PHP che accede ai dati in un database
  6. Configura il team come utenti Drupal, configura un flusso di lavoro Drupal o simile.

e così via.

Quando in effetti inizi a comporre il sito web, prendi in prestito da Agile e concentrati su YAGNI, sprint brevi e progressi visibili. Mirare a sviluppare roba in un modo che renda facile (ier) rifattorizzare e sostituire.

Il progresso visibile è essenziale qui. Il tuo obiettivo è un sito Web funzionante, quindi suddividere i compiti in componenti visibili, "Cambia pagina per fare ciò" significa che puoi vedere i progressi e che non saranno gettati via dagli sviluppatori che lavorano duramente su qualcosa che non è correlato al percorso critico.

    
risposta data 05.03.2012 - 13:46
fonte

Leggi altre domande sui tag