Come imparare e introdurre la mischia in una piccola startup? [chiuso]

5

Tra pochi mesi, un amico stabilirà la sua società di software di avvio e io sarò l'architetto del software con uno sviluppatore aggiuntivo. Anche se non abbiamo esperienza quotidiana con metodi agili, ho letto molto tipo di "panoramica" su di loro, e credo fermamente che siano un buon - se non l'unico - modo di costruire software. Quindi con questa azienda, voglio iniziare uno sviluppo iterativo e agile dal primo giorno, preferibilmente qualcosa di leggero.

Stavo pensando a Scrum, ma la domanda è: qual è il modo migliore per me e i miei colleghi per conoscerlo, per introdurlo (quali tecniche quando ecc.) e per valutare se dovremmo tenerlo?

Contesto che potrebbe essere pertinente: siamo tutti esperti sviluppatori intorno alla stessa età con mentalità professionale simile. Abbiamo lavorato insieme in passato e in seguito in diverse aziende, principalmente con un focus Java / .NET. Alcuni hanno un po 'di familiarità con le idee generali del movimento agile. In questa startup, ho un grande potere su strumenti, metodi e processi. Il prodotto della startup sarà sviluppato da zero e potrebbe essere classificato come middleware. Abbiamo alcuni contatti "clienti" nel settore che potrebbero fornire input non appena arriveremo ad uno stage alfa.

    
posta Jens Bannmann 17.10.2012 - 07:06
fonte

4 risposte

4

Disclaimer : Non ho mai fatto alcun addestramento Scrum formale (anche se ho lavorato su un paio di progetti basati su Scrum finora e mi piace molto). Quindi puoi preferire l'opinione di qualcuno più esperto sull'argomento.

IMHO se hai letto il materiale "obbligatorio" come il libro di Scrum , probabilmente ne sai abbastanza in teoria. Inoltre, con la tua esperienza di sviluppo, capisci come funziona e cosa lo fa funzionare nella pratica. Con un team di due persone, il modo più semplice è quello di avere l'altro ragazzo che legge anche il materiale pertinente, quindi inizia con una discussione sul tuo SDLC. Discutere su eventuali parti o domande non chiare di cui disponi e elaborare il tuo processo . Potrebbe essere uno Scrum esatto o un ibrido: fai tutto il meglio per tu (il tuo team, i tuoi progetti, il tuo ambiente). Quindi inizia a farlo immediatamente, e continua a rivedere e ad aggiustare mentre procedi: questo è in realtà il succo più importante per il successo a lungo termine.

Potresti prendere in considerazione una formazione o un seminario formale con un consulente Scrum / Agile esperto (se ce ne sono a portata di mano dove vivi). Tuttavia, per un team di avvio di due, questo potrebbe essere un eccessivo overkill.

Per ulteriori approfondimenti, ho trovato una lista di letture sul sito di Scrum Alliance.

    
risposta data 17.10.2012 - 09:40
fonte
1

Non c'è bisogno di spendere un sacco di soldi per imparare l'uomo di mischia. Basta fare il tuo lavoro e sono sicuro di poter imparare tutto ciò di cui hai bisogno.

Soprattutto voglio solo dire di essere semplice. Permetti al tuo processo di crescere organicamente. Ricorda che vuoi essere in grado di abbracciare il cambiamento e produrre software di lavoro presto e spesso. Gli incontri stand up faccia a faccia e la programmazione delle coppie sono molto utili.

So che con .net il loro è il modello Scrum Project che è possibile utilizzare con Team Foundation Server. Non sono sicuro se sono uguali per JAVA, ma immagino di sì.

Nozioni di base sulla mischia: link C'è molto di più, ma quel sito web è un buon inizio.

Questi sono alcuni suggerimenti che ho appena trovato:

  1. Definisci le caratteristiche e scomporle in storie degli utenti.
  2. Le storie degli utenti sono catalogate e inserite nel backlog.
  3. Fai scorrere il gruppo di storie degli utenti.
  4. Riunione permanente ogni 2-3 giorni.
  5. Fornisci al cliente software funzionante per testare ogni 3-6 settimane.
  6. Utilizza la programmazione di coppie per interrompere il ristagno di problemi complessi lavorando insieme.
risposta data 17.10.2012 - 18:25
fonte
0

Il mio suggerimento sarebbe per te di acquisire un budget per te stesso per partecipare alla sessione di addestramento e certificazione formale per scrum master con l' scrum alliance . Se questo budget non è approvato, prova ad acquisire tutti i materiali per questa formazione, esaminali tu stesso e vedi provare ad evangelizzare il processo Agile nella tua squadra.

Un altro pensiero: sebbene chiunque nel team possa assumere il ruolo di scrum master, probabilmente non è la decisione migliore per l'architetto in questo ruolo. Non è che l'architetto non sia adatto a questo, ma la quantità di lavoro che l'architetto deve fare al di fuori di essere un facilitatore per il team è in conflitto con il ruolo di scrum master (almeno nella mia esperienza).

    
risposta data 17.10.2012 - 10:02
fonte
0

Non devi spendere per assumere consulenti per addestrarti. tu e il tuo team avete solo bisogno di imparare le fonti corrette di ftum.

La mischia è una struttura leggera, facile da usare per la terminologia, ma difficile da apprezzare. quindi potresti aver bisogno della fonte che non solo introduce gli elementi, ma spiega anche quei momenti di comprensione "aha".

solo per creare un impegno nell'apprendimento, puoi anche iscriverti a un test di certificazione di qualità GOID come PSM.

Ho iniziato il mio viaggio con il test PSM e ho utilizzato il libro Scrum Narrative e PSM Exam Guide. è stato efficace tutto il meglio per la tua squadra.

    
risposta data 01.04.2017 - 19:28
fonte

Leggi altre domande sui tag

___ terminologia qstnhdr ___: perdita di memoria ______ qstntxt ___

Quando sento il termine perdita di memoria con ciò intendo un bug in un programma che non causa nessun problema tranne che non libera risorse di memoria e, se continua a farlo, può consumare molta memoria, danneggiare le prestazioni del sistema e, nel peggiore dei casi, mandare in crash il programma (o un altro programma, se il sistema operativo decide di scegliere di ucciderlo). / p>

Ma ora, in questa sezione di commenti di questa domanda, gli upvotes mi hanno fatto pensare se questo è l'intero significato del termine. In passato l'ho sempre visto usato in quel senso.

link

Quindi, chiameresti qualcosa una semplice perdita di memoria che blocca un programma da qualche altro effetto collaterale o causerebbe un dead-block non liberando un lock?

Aggiornamento - Nota: sfortunatamente alcuni admin hanno cancellato la sezione dei commenti, quindi non posso più fare riferimento a quella discussione: /

Fondamentalmente ho detto che una perdita di memoria è innocua tranne che mangia memoria (e di conseguenza a lungo termine in questo senso può essere dannoso, bloccando l'app / sistema). Hanno detto che non è vero, con C ++ RAII può causare seri problemi. - Sì, se non si elimina un oggetto con un codice importante nel distruttore che può causare problemi, ma nel mio vocabolario è un bug grave e non una perdita di memoria.

    
______ azszpr108885 ___

La perdita di memoria quintessenziale sarebbe esattamente ciò che hai descritto, l'incapacità di liberare un po 'di memoria che il processo aveva allocato. Le conseguenze sarebbero normalmente che il programma crescesse gradualmente di dimensioni mentre è in esecuzione, con possibili effetti secondari a causa di ciò. Le allocazioni di memoria successive potrebbero non riuscire o il sistema potrebbe comportarsi in modo anomalo a causa delle risorse sprecate.

Tuttavia, un problema può essere descritto con precisione come una perdita di memoria, a condizione che in effetti la perdita di memoria. Può anche fare altre cose che sono potenzialmente più serie. Ad esempio, se non si riesce a chiudere un flusso I / O standard, si verificherà una perdita di memoria perché la memoria associata al flusso verrà interrotta. Tuttavia, può anche eseguire il processo fuori dai descrittori di file o forse causare un successivo flusso aperto in errore a causa di un limite sul numero di flussi I / O standard.

    
______ azszpr108919 ___

Dipende. Certamente il programma potrebbe essersi arrestato a causa di una perdita di memoria. Ma non chiamerei tutte le perdite di memoria di crash. Una perdita di memoria ha una definizione molto chiara.

Un arresto anomalo dell'applicazione potrebbe essere causato da molte cose diverse.

  • Eccezione non gestita
  • Perdita di memoria
  • Perdita di risorse
  • Deadlock
  • Altro (bug nel codice)

Al momento del crash si dovrebbe prendere un crash / memoria dump e usare qualcosa come Windbg per analizzare lo stato del codice al momento del crash per determinare se si trattava di una perdita di memoria, deadlock, bug, ecc.

Una perdita di memoria semplicemente non libera la memoria dopo averla finita. Ciò può causare un arresto anomalo se i limiti delle risorse sono soddisfatti come indicato.

Una perdita di risorse non libera la risorsa dopo averla finita. Un esempio potrebbe essere aprire una connessione al database e non chiuderla dopo aver terminato.

I deadlock sono diversi dalle perdite, perché le perdite possono non essere rilevate e potrebbero essere benigne se le risorse di sistema non vengono consumate. I deadlock sono una condizione che non si accumula nel tempo.

    
______ azszpr108888 ___

Un significato correlato di "perdita di memoria" si applica alle lingue che usano la garbage collection. Lì, la memoria supposto deve essere trapelata, ma se non lo fai, è lo stesso problema.

    
______ azszpr108926 ___

Si verificano perdite di memoria Se non si riesce a eliminare la memoria allocata dinamicamente. puntamento la perdita di memoria è uno degli aspetti più lunghi e noiosi della programmazione in ambienti non gestiti.

Un semplice esempio di perdita di memoria può essere seguito.

%pre%     
______ azszpr108884 ___

link

%bl0ck_qu0te%

Le perdite di memoria possono causare errori casuali poiché alla memoria possono essere assegnati valori imprevisti.

%bl0ck_qu0te%

I blocchi morti possono essere causati dalla memoria a cui sono stati assegnati valori imprevisti.

Ulteriori letture su questo argomento:

  1. link
  2. link
___ Uso dei caratteri nelle tue applicazioni