================== Project Management ================== Project Kickoff =============== Il kickoff di progetto è un meeting iniziale per l'avvio di un nuovo progetto. Viene convocato dal marketing / amministrazione nel momento di concretizzare una lead. Partecipanti ------------ * Marketing/Owner * Possibili candidati per sviluppo * Realizzazione (piattaforma) * Sysadmin Output ------ Nel kickoff vanno stabiliti: * **Tipologia progetto** Se :abbr:`POC (Proof Of Concept)` o prodotto completo. È importante stabilirlo perchè a seconda della tipologia cambiano le necessità per deploy, testing, ecc. * **Referente** Il referente non è il *project manager*, ma piuttosto una persona di riferimento per il progetto: ovvero una persona che dovrà essere sempre informata sullo stato generale dello stesso. E' compito sia del referente, sia del team di progetto, di tenersi vicendevolmente aggiornati sullo stato del progetto stesso, segnalando eventuali problemi, documentazione mancante, ambienti malfunzionanti e così via, nell'ottica di consegnare il lavoro nei tempi previsti: alzare la "bandierina" per segnalare un problema il prima possibile, e cioè appena ci si rende conto che il nostro margine di intervento sia nullo. Il referente può essere sia un membro del team che lavorerà sul progetto, sia un "esterno". L'unico vincolo è che, nel caso sul progetto lavori un'unica persona, il referente sia qualcun altro; l'obiettivo che ci siano sempre almeno 2 persone a conoscenza di un progetto. * **Meeting** Di seguito gli incontri necessari per gestire nel modo migliore l'andamento di un progetto: * Meeting di allineamento: 1 volta a settimana il referente si confronta con il marketing/product owner in un breve incontro di max 15 minuti, per sapere a che punto sia il progetto e per confrontarsi con i requisiti * Meeting con Pierpaolo/Luca: quando necessario (1 volta a settimana/2 settimane) il referente allinea Pierpaolo e Luca sulla situazione di progetto. E' responsabilità del referente cercare di organizzare la riunione, con ogni mezzo * Meeting con i referenti di tutti i progetti: ogni 2 settimane Pierpaolo incontra tutti i referenti dei vari progetti per capire la disponibilità delle risorse e aggiornarsi sui progetti cross. * **Deadline consegna** Importante anche perchè in base a questa si potranno fissare a ritroso date dei test e altri step propedeutici al rilascio. - **Load test**: da fare solo per i prodotti o per i software, pianificarli in modo che terminino almeno 2 giorni prima del rilascio. Utilizzare `questo template`_ per preparare la test list da dare al sysadmin. - **Test end-to-end**: pianificarli in modo che siano terminati almeno 3-4 giorni prima del rilascio, per avere la possibilità di fare aggiustamenti, modifiche, etc. - **UATT (User Acceptance Tests)**: riguardanti solo la UI e la UX, **fare in modo che non avvengano modifiche durante o dopo i test end-to-end!** Quindi, da gestire a seconda del cliente. Se la UI/UX sono indipendenti dai test funzionali, possono andare anche in parallelo, utilizzando mock-up, etc. .. _questo template: https://docs.google.com/spreadsheets/d/1glP2D2_7LD8QxuIGr73P1suXAorS4jTQoHjqLeN-4oc/edit?ts=5b1aaf7b#gid=1068611982 * **Ambiente** Ambiente su cui dovrà essere deployato e girare il progetto. Generalmente svil e preprod per POC; svil, preprod e prod per prodotti "reali" * **Canale slack** dedicato per coordinamento * **Progetto gitlab** Se il progetto richiede codice, il repository sul nostro gitlab su cui andrà tracciato. Eventualmente anche più di uno per progetti che necessiteranno di più pezzi. Non necessarimente sul nostro gitlab, potrebbe essere anche GitHub o altri repositories per, ad esempio, codice pubblico * **Infrastruttura impattata** A carico del sysadmin, serve per identificare quali componenti infrastrutturali, interne o esterne, saranno impattate dal flusso applicativo proposto nel progetto. In questo modo sarà possibile effettuare le richieste di consistenze, apertura firewall, preparazione database, etc. in tempo per gli sviluppi. * **Progetto su odoo** Odoo sarà il punto di riferimento per il progetto, e dovrà quindi funzionare da *hub centrale* per il progetto, raccogliendo tutte le informazioni utili allo stesso. Bisognerà quindi creare il progetto su Odoo, scrivere e tenere aggionate tutte le informazioni: * Nome del progetto. Nel caso di progetti con vari sottoprogetti, come ad esempio Windtalk che si può suddividere in Windtalk Android e Windtalk iOS, creare più progetti seguendo la seguente convenzione per i nomi: `` -