Sviluppo del software del team utilizzando Ruby on Rails

1

Prima lavoravo da solo su progetti di programmazione di piccole e medie dimensioni e non ho esperienza di lavoro in un ambiente di squadra . Attualmente, ci saranno 3 di noi in un team di sviluppo software interno che ha il compito di sviluppare una serie di software per un'istituzione accademica. Abbiamo deciso di utilizzare il web per la maggior parte dei progetti e stiamo pensando di scegliere Ruby on Rails per questo e vorrei chiedere i vostri input, consigli e approcci per quanto riguarda lo sviluppo del software come team utilizzando il framework web RoR.

Una cosa che mi ha veramente confuso è come dividi i compiti di programmazione di un progetto se ci sono 3 di voi che stanno davvero facendo la codifica. È ovvio che noi, come sviluppatori, affrontiamo un problema in modo modulare e lo completiamo uno dopo l'altro. Se il progetto consiste di 3 moduli, ognuno di noi dovrebbe concentrarsi su ciascuno di questi moduli? Sarebbe più veloce in quel modo? Che ne dici se il 3 di noi si concentrasse prima su un modulo (è quello che preferisco di più).

Sta usando un sistema di controllo della versione distribuito come Git la risposta a questo tipo di problema? Ti preghiamo di non dimenticare di mettere i tuoi consigli ed esperienze in merito allo sviluppo del software di squadra.

Cheers!

    
posta Panoy 23.06.2011 - 12:15
fonte

4 risposte

2

Devi adattare un processo / flusso di lavoro. Ci sono molte diverse soluzioni a questo. Agile e Scrum sono i più usati. Non c'è scorciatoia per imparare cosa significano. Dovresti investire un po 'di tempo e leggere almeno un articolo o un libro su di loro.

Inoltre avrai bisogno degli strumenti / utilità follwing (con esempi)

  • Gestione controllo origine: SVN, Git
  • Wiki: DokuWiki, MediaWiki
  • Monitoraggio dei bug: RedMine
  • Integrazione continua: capistrano
  • Test: RSpec
  • Projectmanagement: Basecamp

Generalmente lo sviluppo consiste in diverse UserStories / Funzioni / Carte e ognuno ne è responsabile. L'obiettivo è dividere la responsabilità, quindi tutti sanno cosa fare.

Ma gli strumenti non possono sostituire un buon processo di sviluppo / flusso di lavoro. Il modo migliore per iniziare è avere almeno uno sviluppatore senior in grado di dare l'esempio.

    
risposta data 23.06.2011 - 12:30
fonte
2

Stai facendo molte domande, ma hai un problema di base che molti project manager hanno affrontato. Come abbattere le attività in modo che le persone possano realizzare il progetto nel modo più efficiente.

Per attingere a poche premesse agili, ti consiglio:

  1. Accoppia la programmazione. Almeno parte del tempo lavora con un altro sviluppatore sulla stessa workstation sullo stesso problema. Cambia chi sta digitando se questo è un problema. Questo è un vero metodo di collaborazione e favorisce la fiducia e il supporto nel tuo team.

  2. Storie. Scrivi in brevi frasi su schede ogni storia utente. Questo è un caso di uso semplice come "accesso utente". Questi dovrebbero essere abbastanza granulari, quindi la scheda indice per vincolare lo spazio. Mantieni le carte su un muro e gli sviluppatori prendono le carte dal muro e le lavorano. Quindi li spostano su un'altra parete per la verifica. Dai priorità alle tue storie in modo che vengano eseguite le funzioni più importanti.

  3. Git. Sicuramente dovresti considerare git e possibilmente comprare un account github in modo da poter mantenere il tuo codice confidenziale. Leggi un po 'su .gitignore in modo da poter mantenere file di rail specifici come il database.yml da github.

  4. Questo è davvero secondario, ma trova il tuo gruppo di utenti Ruby locale e inizia ad andare alle riunioni, collegherai con altri facendo la stessa cosa e imparerai alcune tecniche fantastiche.

Buona fortuna

    
risposta data 24.06.2011 - 17:20
fonte
1

If the project consists of 3 modules, should each one of us focus on each of those modules? Would it be faster that way? How about if the 3 of us would focus on one module first (that’s what I really prefer).

Quello che stai cercando è una metodologia di sviluppo del software . Devi sviluppare le tue applicazioni in modo iterativo; ogni sviluppatore sviluppa una piccola attività alla volta.

Is using a distributed version control system such as Git the answer to this type of problem?

Alcuni sistemi di controllo delle versioni saranno assolutamente necessari, indipendentemente dal fatto che siano distribuiti o meno.

Please don’t forget to put your tips and experiences with regards to team software development.

Indipendentemente dalla metodologia scelta, la comunicazione frequente tra i membri del team e gli stakeholder è fondamentale.

    
risposta data 23.06.2011 - 12:42
fonte
0

Prima di tutto sul controllo della versione, è ovvio che ne hai bisogno. È necessario sviluppare con un team almeno per condividere il codice, ma dopo averlo usato, scoprirai come è utile essere in grado di gestire la versione con strumenti come git.

Ti suggerisco anche di cercare git-flow , è un modo convenzionale e conveniente per organizzare il tuo ramo con git, vedi Un modello di branching Git riuscito e comando git-flow

Quindi devi assolutamente conoscere la soluzione per la gestione dei progetti, vedi Scrum , XP

Scegli con cura i tuoi strumenti di tracciamento dei biglietti, che ti aiuteranno a mantenere organizzati i lavori da fare nel team, mi piace usare tracker registrativo , codebase e redmine .

    
risposta data 23.06.2011 - 12:51
fonte

Leggi altre domande sui tag