Organizzazione efficace del progetto

1

Uno dei nostri incarichi è scrivere un sito web che dovrebbe utilizzare un database. Mi piacerebbe avere qualche aiuto nell'organizzarlo. Ecco le caratteristiche del nostro lavoro.

  • Il compito è per un gruppo di 5 persone.
  • Abbiamo accesso a un server, dove ogni persona della lezione ha un account e un database (MySQL). (Alcuni non hanno visto mysql fino a una settimana fa)
  • Non è installato git su quel server. (Abbiamo poca o nessuna esperienza con git)
  • Non possiamo accedere a quel server dalla nostra università (potrei chiedere se questo potrebbe essere cambiato ma temo che non sarà in tempo)

Che cosa stiamo facendo:

  • Abbiamo diviso l'attività tra i membri:

    Uno fa il login e l'immissione di dati, un altro un profilo utente, un altro un diverso tipo di profilo utente, uno ha progettato il database e un altro il programma per usare le informazioni degli utenti

  • Abbiamo impostato un repository github

    Proviamo a sincronizzare il lavoro usando il repository, e poi da lì al server (nella mia cartella utente)

Problemi che affrontiamo:

  • Recentemente abbiamo scoperto che è possibile modificare direttamente i file di altri utenti. Quindi potremmo apportare modifiche direttamente sul server (se non lavoriamo dalla nostra università)
  • C'è poca coesione tra di noi, quindi manca la comprensione di ciò che fanno gli altri membri o cosa dovrebbe fare ciascuno.
  • Ora che proviamo una versione beta del sito web, abbiamo rilevato che ciascuna parte non è ben correlata tra loro.
  • Abbiamo bisogno di imparare sulla strada: alcuni non hanno visto mysql fino a una settimana fa, impariamo php e html con tutorial e pochi supporto

Prima di apportare modifiche all'organizzazione o al modo in cui lavoriamo vorrei sapere come possiamo migliorare il nostro sistema di lavoro.

    
posta llrs 05.02.2016 - 10:53
fonte

1 risposta

0

Questo non risponderà a tutte le tue domande, ma almeno potrebbe essere meglio di niente.

  • There is few cohesion between us, so there is lack of understanding what other members are doing or what should each one do.
  • Now that we try a beta of the website we found each part is not well correlated with each others.

Penso che inizi a programmare troppo velocemente, impieghi più tempo a pianificare e elencare le tue funzionalità.

1. Requisiti

  1. Scrivi tutte le pagine che desideri avere (dal punto utente)
  2. Da ognuna di queste pagine scrivi ciò che ti aspetti da questa pagina (l'obiettivo principale da tenere presente)
  3. Quindi, per ogni pagina, annota tutte le funzionalità che ti aspetti (e cosa dovrebbe).
    per esempio. Se utilizzo un blog come esempio di un sito web

    • Post.php (pagina per aggiungere / aggiornare un post):
      • Obbligatorio: obbliga l'utente a registrarsi
      • Obbligatorio: obbliga l'utente ad essere amministratore (nel caso tu abbia più livelli di sicurezza)
      • Obbligatorio: convalida il contenuto non è vuoto
      • avere un testo con un pulsante di invio / modifica

    3.1. Disegna utilizza schemi caso di tutte le interazioni che l'utente potrebbe fare.
    per esempio. Se provo a modificare un post ma non sono un amministratore né registrato devo reindirizzare alla schermata di accesso.

Questo ti aiuterà a creare un elenco TODO e a dichiarare chiaramente il comportamento finale che ti aspetti.

2. Disegno

  1. Progetta il database in base ai tuoi requisiti
  2. Identità elementi comuni / condivisi da ciascuna pagina
    per esempio.

    • Se ho molte pagine che hanno bisogno di forzare l'accesso dell'utente, potrei provare a creare una classe / metodo per farlo e riutilizzarla quando necessario.
    • La tua interfaccia utente ha una forma comune, prova ad avere un solo file con questa forma.

    L'idea qui è di evitare di fare lo stesso lavoro da ciascuno dei tuoi compagni e in un modo diverso. Fallo una volta, condividilo con i tuoi amici

  3. Pensa all'implementazione dal punto 2. (Il flusso delle tue chiamate, i tuoi metodi, le tue classi, ...) INSIEME e assicurati che sia solid in rock. Poiché sei nuovo sia per la programmazione che per MySQL / HTML / PHP, tutte le conoscenze sono importanti.

    Il codice condiviso è fondamentale, lo si vuole fare UNA VOLTA e non lo si tocca dopo perché si rischia di riscrivere il codice in più file.
     NOTA: il codice non è SOLIDO IN ROCCIA, potrebbe essere necessario aggiornarlo se necessario.

    Non sono bravo a spiegarlo, ma l'obiettivo principale è definire chiaramente quali classi, i metodi saranno disponibili in tutti i tuoi file. (Cosa sarà condiviso).
    Tu non dovresti aver bisogno di stabilire chiaramente le classi / metodi interni (privati) e la logica, ma devi assolutamente pensarci perché dichiarerà ciò che dovrai passare nei tuoi metodi / classi pubblici.

    ad es. Per verificare se sono l'amministratore stavo pensando a una classe Security con IsPartOfGroup(group name) . (Dove il nome del gruppo è admin )
    So che questa classe avrà bisogno di accedere alle mie informazioni di accesso e accesso al database. Non sono sicuro se dovrei recuperare i dati (un carico pigro, che significa creare una logica!) Solo quando IsPartOfGroup() è una chiamata (supponendo che possa richiedere un uso intensivo delle risorse) o se potrebbe già averla quando chiama IsPartOfGroup() ( perché lo recupero quando creo la mia classe Security .
    So che avrò bisogno delle mie informazioni di accesso (una classe Session?) E della connessione al database e non avrò bisogno di passarlo su ogni% chiamataIsPartOfGroup(). Quindi sono abbastanza sicuro di passare solo il mio nome di gruppo a IsPartOfGroup()

  4. Pensa sempre più a fondo ai tuoi requisiti (pensa velocemente a come lo implementeresti, ma pensa a più di 5 secondi) in modo tale da poter elencare i passaggi di sviluppo (aiutandoti nella sezione di progettazione!):

    • Crea un sistema di sessione
      • Crea un gruppo di sicurezza
    • Crea una forma condivisa del tuo sito web
      • Crea HTML / JS
      • Crea un modo di includere la pagina richiesta
    • login.php
      • Crea una sessione da credenziali valide
  5. Prova del concetto  Non so se potrebbe essere una buona idea (se ne hai il tempo) ma perché sei nuovo a questo potrebbe essere "easiler" per avviare la codifica e creare metodi / classi fittizi che restituiscono valori hardcoded per un test codici per la parte di codice condivisa.

3. Fase di programmazione

  1. Crea classi / metodi fittizi che restituiscono un valore di caso d'uso.  Mentre il codice condiviso è effettivamente implementato, altri membri del tuo team dovrebbero essere in grado di iniziare a fare la loro parte usando le classi / metodi fittizi.
     Potrebbero testare il loro codice.
  2. Fai quello che devi fare!

Dispacciamento

Non so quali strumenti potrebbero essere disponibili, quindi lo terrò semplice, potresti creare un foglio di lavoro google condiviso. Elenca tutte le attività e le attività secondarie come gerarchia. Sarai in grado di inviare compiti o / e portare il proprietario a spedire un compito se finisci presto un'attività.

    
risposta data 11.02.2016 - 05:19
fonte

Leggi altre domande sui tag