Consigli per quanto riguarda la creazione di un gruppo di autoapprendimento, team di programmazione autonomo ... [chiuso]

3

Sono uno studente senior della mia università e presidente della IEEE Student Branch. Recentemente stavo pensando a qualche idea per far conoscere agli studenti l'ambiente professionale, il modo in cui il software viene prodotto nel settore e ottenere un'esperienza pratica.

Ovviamente i viaggi nelle software house non sono sufficienti e non possiamo fornire questo numero di stage. Quindi è nata l'idea di simulare una software house all'interno dell'università.

Le risorse a mia disposizione sono gli studenti con i loro computer portatili, UPS universitari e rete LAN con accesso a Internet, e una stanza di dimensioni ragionevoli con una lavagna e tre ore di tempo libero al giorno ..:)

Tuttavia, non ho assolutamente idea da dove cominciare. Le pietre miliari o qualsiasi cosa possa essere chiamata, sono requisiti Generazione del documento, condivisione delle risorse, delega di compiti, controllo della versione ecc ...

Apprezzerei molto qualche consiglio, strumenti di programmazione (per JAVA), strumenti di comunicazione ecc. e altre cose usate in una software house decente ...

Le tecnologie da prendere di mira devono essere casuali a partire da J2EE Spring Hibernate e Success Programming in .NET C # e ASP.NET MVC così come lo sviluppo di Android o iPhone ....

    
posta tGilani 14.03.2011 - 17:26
fonte

4 risposte

4

Avere la possibilità di lavorare 3 ore al giorno, simulare di essere una casa di sviluppo è una grande idea e anche un'opportunità. Molte società di sviluppo hanno iniziato in modi simili, i miei migliori auguri.

Rispondendo alla tua domanda:

Nella mia esperienza, dovresti concentrarti su 3 aspetti principali, ma avanzare solo quando ritieni che uno stadio sia stato completato con successo:

I - Ottieni il team
II - Impostare le basi della gestione dello sviluppo
III - Impostazione delle nozioni di base sulla gestione dei processi software

Quindi, ora spiegherò queste fasi.

I - Ottieni il team

1) Ottenere un vero progetto da sviluppare: preferibilmente un piccolo progetto all'interno di una piccola azienda
2) Studenti interessati: mostra loro il tuo piano di lavoro, se sono interessati arriveranno, menzioni anche questa è una vera opportunità
3) Concentrati sull'ottenere e testare le richieste dei clienti
4) Discutere apertamente l'architettura del sistema iniziale e progettare con il team e da lì scegliere la linguistica di programmazione e la tecnologia di implementazione 5) Crea un programma base dai tuoi requeriments, inserendo le date di sviluppo e test
6) Inizia il progetto e osserva la tua squadra auto-organizzarsi, mentre chiedi loro di rimanere in orario

II - Impostazione delle nozioni di base sulla gestione dello sviluppo

Quando finisci il tuo primo progetto, inizia a prendere in considerazione la gestione dello sviluppo, poiché probabilmente avrai problemi di completamento dei requeriments del cliente:

1) Scegli una metodologia di sviluppo (Scrum, XP, altri)
2) Standarizzare i tuoi strumenti di sviluppo di base (linguaggio di programmazione, ambiente di sviluppo, ecc.) 3) Crea e riempi le posizioni in base alle caratteristiche del tuo team
4) Ottieni un altro progetto e mettilo in funzione: questa volta il progetto e l'ambito del client dovrebbero essere maggiori del primo progetto
- Inoltre, considera che molti aspiranti dovrebbero aver smesso in questo momento, quindi il processo sarà molto più controllato

III - Impostazione delle nozioni di base sulla gestione dei processi software

Quando finisci il tuo secondo progetto, concentrati su quanto segue, come probabilmente dovresti avere problemi con un'implementazione del software di successo:

1) Scegli una metodologia di processo software (basata su CMMI, basata su RUP, altri)
2) Definire gli elementi di controllo del processo e del documento
3) Definire strumenti di processo e di comunicazione
4) Ottieni un progetto e un client più grandi 5) Scoprilo e mettilo in funzione

Dopo tutto quello ...

Quando finisci questa fase, ti sentirai sicuramente più sicuro riguardo a quali metodi, strumenti, linguaggi di programmazione, eccetera tra cui scegliere, ricorda solo questo:

  • Non è possibile mettere in atto un processo senza averlo vissuto, specialmente quando si fa riferimento allo sviluppo del software.
  • Lo sviluppo del software è sempre complesso e non funzionerà in tutti gli scenari, quindi non cercare di stabilizzare il processo perfetto, solo quello funzionante e migliorarlo dove consente di essere migliorato.
  • Con le metodologie di sviluppo del software non puoi aspettarti molta qualità con i team inesperti, puoi aspettarti solo più compiti completati in un attimo.
  • Se hai eseguito con successo la fase III (e ne vedi tutti i benefici), congratulazioni perché hai ottenuto qualcosa che non molti team hanno mai avuto a disposizione.

Questo è tutto ... in bocca al lupo!

    
risposta data 14.03.2011 - 18:51
fonte
2

Voto contro la prima versione. costa denaro ed è troppo goffo. Raccomando il tracker pivotal per tracciamento dello sviluppo agile molto semplice e leggero. se usi le lavagne, potresti riuscire a farla franca con le storie sulle schede.

per un ambiente di sviluppo, eclipse è difficile da battere per java ed è gratuito.

Sono d'accordo con sovversione e hudson rispettivamente per il controllo del codice sorgente e le build automatiche, usando maven per configurare un progetto e gestire i pacchetti.

configurare build e release è un esercizio molto utile per tutti gli sviluppatori. è importante incorporare test automatici, javadoc e altra generazione di documenti dall'origine e forse alcuni strumenti di analisi statica. Maven è un buon strumento da usare perché ti permette di iniziare molto facilmente con i valori predefiniti, ma ha un sacco di modifiche alla configurazione che puoi fare man mano che ti senti più a tuo agio con lo strumento.

un altro utile strumento per avere una wiki. una delle grandi sfide del software è mantenere la documentazione fresca e disponibile e una wiki fornisce uno strumento molto flessibile per la condivisione e l'aggiornamento rapido delle informazioni. Mi piace la confluenza, ma costa denaro. di quelli gratuiti, sia trac che mediawiki sono piuttosto buoni, ma probabilmente ci sono milioni di altri che non conosco. i requisiti possono vivere sulla wiki fino a quando non vengono strutturati in storie utente che possono essere archiviate in tracker pivotal.

quando pianifichi, dovresti impostare una durata di iterazione (probabilmente una settimana o meno), e all'inizio di ogni settimana decidi quali storie inserirai in tale iterazione, quindi segui i progressi quotidianamente (sincronizzazione rapida faccia a faccia -up per la squadra alla fine della giornata).

    
risposta data 14.03.2011 - 23:13
fonte
1

Poiché questa è una domanda piuttosto ampia, aggiungerò qui il mio suggerimento "parziale, in alcun modo completo": Inizia con le basi che ogni negozio di sviluppo professionale avrà ... forse chiedi ai negozi locali a cosa servono:

Controllo del codice sorgente (Suggerirei SVN in quanto è gratuito e ampiamente utilizzato, Mercurial sembra essere in aumento, quindi questa è un'altra possibilità)

Project / Bug tracking (L'ultimo negozio che utilizzavo VersionOne per la gestione di un processo di mischia - sembrava funzionare abbastanza bene)

Build automatici (usato Hudson nel mio ultimo negozio)

Supponendo che tu abbia un progetto reale che costruirai, avrai bisogno degli strumenti di base di cui sopra per aiutarti a gestire il processo.

Se non hai già un progetto in mente, forse dovresti creare la tua soluzione di tracciamento dei bug / monitoraggio dei progetti. Ci sono, ovviamente, molte risorse disponibili, ma quale modo migliore per imparare a gestire un progetto software piuttosto che scrivere software per fare proprio questo?

    
risposta data 14.03.2011 - 21:01
fonte
0

Puoi tenere un concorso ...

Il Contest Runner è il "Cliente". I team devono presentare una proposta, progettare e implementare il sistema. Hanno bisogno di auto organizzarsi. Squadre di 5 o più individui costringeranno a scontri personali .. aggiungendo un bel tocco del mondo reale.

Poiché vengono giudicati, devono prestare attenzione ai dettagli e non possono lasciare bug in sospeso (o caratteristiche ovvie). Forse puoi ottenere uno sponsor o inserirli in una competizione esistente.

    
risposta data 14.03.2011 - 17:42
fonte

Leggi altre domande sui tag