Quanto tempo dedichi effettivamente allo sviluppo e alle attività infrastrutturali?

4

Quando lavoro, mi sento come la maggior parte delle volte che non sto facendo un vero lavoro. Ad esempio, dopo aver apportato una modifica al codice per testarlo, devo prima creare il progetto e avviare il server (per esempio JBoss). Dopo aver provato, trovo che c'è un altro piccolo problema. Quindi faccio cadere il server, apporto le modifiche, costruisco di nuovo e riavvio il server. La costruzione e l'attivazione / disattivazione del server non sono molto utili.

Inoltre, l'IDE (diciamo Eclipse) fa cose come l'aggiornamento degli indici di Maven e la costruzione dell'area di lavoro che impiega un po 'più di tempo per fare le cose.

Ti sei imbattuto in questo tipo di situazione? Avete consigli su come superare / aggirare questo? Qualche funzionalità sugli strumenti IDE / build che possono essere utili? Qualsiasi architettura / design / tecnologia applicativa che tenta di superare questo?

    
posta Can't Tell 18.03.2012 - 15:31
fonte

4 risposte

7

Se lo guardi dal punto di vista del business, dovresti fare una distinzione tra attività che aggiungono valore e attività che non aggiungono valore. Che cos'è un'attività che aggiunge valore? Uno che il cliente è disposto a pagare.

Il cliente vuole pagarti per avviare il server? No! Il cliente vuole pagarti per un cambiamento rilevante nel codice? Sì!

Se vuoi lavorare nel modo più produttivo possibile, devi eliminare tutte queste attività che non aggiungono valore o almeno ridurle al minimo assoluto. Questo è un passo cruciale verso la produzione snella. Questo sta diventando sempre più importante anche nelle società di servizi.

Ora supponiamo di avere una macchina con un tempo di setup e shutdown prima di poter iniziare a produrre un'altra parte. Quello che farai per massimizzare la produttività è che raggrupperai gli stessi prodotti insieme, al fine di minimizzare i tempi di installazione e spegnimento. In questo modo potresti forse fare più cambiamenti contemporaneamente prima di riavviare il sistema.

Ci sono molti libri scritti sull'argomento che ti daranno un consiglio generale su come riconoscere tutti i "rifiuti" nella tua azienda o in particolare su ciò che fai, ma anche come sbarazzartene. Il consiglio è generale, quindi dovresti pensare a te stesso su come applicarlo alla tua specifica situazione di programmazione.

Forse questo libro è qualcosa per te. Gestisce specificamente i servizi. Anche la pagina di Wikipedia sulla gestione del servizio snella è pertinente.

    
risposta data 18.03.2012 - 17:01
fonte
3

Lo sviluppo implica sempre un sovraccarico come questo, anche senza IDE. Alla fine della giornata "qualcuno deve farlo" e "qualsiasi tempo ci vuole, conta come tempo di sviluppo".

In entrambi i casi, quello che descrivi è solo il ciclo di sviluppo con un IDE (utilizzo una varietà di IDE e editor).

Dato che hai chiesto suggerimenti, una cosa che trovo facile con un IDE è la capacità visiva di selezionare ed eseguire facilmente uno o un numero selezionato di test per evitare il ritardo di esecuzione dell'intera suite.

Un'altra cosa che può aiutare molto è il caching. Ad esempio, sviluppo in rotaie e memorizza nella roba in produzione più dello sviluppo per facilitare le modifiche allo sviluppo. Tuttavia, è necessario modificarlo in quanto deve contribuire ad accelerare le cose per lo sviluppo (ad esempio, le risorse di css / js non cambiano).

A volte è meglio usare gli strumenti da riga di comando e un editor di peso più leggero a seconda delle circostanze.

    
risposta data 18.03.2012 - 15:41
fonte
1

Dovresti iniziare tenendo traccia di quanto tempo è trascorso da ciascuno dei tuoi sviluppatori che sta svolgendo le loro diverse attività.

  1. Prendi nota delle attività ripetitive e facilmente eseguibili tramite script (ad esempio, esegui build su codice e riavvia il server con codice aggiornato)
  2. Assegna priorità all'impatto di ogni classe di attività (ad esempio, avvia nuova build, avvio / arresto, controllo del codice sorgente)
  3. Indagare la soluzione più efficiente in termini di tempo / costi per ogni singola attività, indipendentemente dal fatto che la soluzione debba essere uno script, più hardware o un nuovo pacchetto software.
  4. Lavora individualmente ogni soluzione nei tuoi processi.
  5. Valuta a intervalli di tempo prestabiliti per assicurarti di vedere i guadagni di produttività attesi e modificare se necessario.
  6. Mostra tutte le parti possibili di questo elenco ai clienti. : -)
  7. profitto!

Nella mia azienda quando viene creata una nuova build, aggiorniamo una casella a discesa su un server interno e ogni volta che uno qualsiasi dei nostri server di sviluppo riavvia Apache, automaticamente estrae e distribuisce la nuova build.

Sebbene le soluzioni gratuite / open source possano sembrare ottime per iniziare, a volte si notano maggiori risparmi in termini di produttività pagando un servizio per gestire i processi.

Ad esempio, la mia azienda utilizza JIRA per il monitoraggio dei problemi che si integra con il controllo del codice sorgente e consente a chiunque di visualizzare le specifiche modifiche all'origine applicabili a un determinato ticket.

    
risposta data 22.05.2012 - 16:10
fonte
0

Può sembrare capriccioso, ma avere un hardware potente può facilmente migliorare la tua produttività. Molte delle attività menzionate (creazione, avvio del server, aggiornamento degli indici di Eclipse ...) sono ad alta intensità di hardware (CPU, HDD, RAM ...). Il miglioramento delle prestazioni dell'hardware ha un ROI molto rapido.

Alcuni mesi fa abbiamo cambiato il nostro ambiente a 8 GB di RAM in x64 (precedentemente 4 GB di RAM in x86, che significava quindi ~ 3,2 Gb utilizzabili) e posso dire che questo è stato un enorme miglioramento della produttività. Ora non devo più preoccuparmi dell'uso della memoria o della chiusura di alcuni software perché è troppo pesante. Posso persino avviare Eclipse su 2 o 3 aree di lavoro differenti, avviare 2 server diversi ed eseguire un server di database contemporaneamente!

Stiamo anche utilizzando JRebel come proposto da Jarle Hansen.

    
risposta data 22.05.2012 - 15:49
fonte

Leggi altre domande sui tag