Come abbiamo tentato il lavoro di squadra e cosa ne è uscito

Come abbiamo tentato il lavoro di squadra e cosa ne è uscito

Facciamo ordine

Cosa significa questo disegno lo spiegherò più tardi, ma per ora permettetemi di iniziare con un'introduzione.

In un freddo giorno di febbraio, nulla presagiva guai. Un gruppo di studenti innocenti si è presentato per la prima volta a una lezione su un argomento che abbiamo deciso di chiamare "Metodologia per l'organizzazione della progettazione e dello sviluppo dei sistemi informativi". Era una lezione normale, il docente parlava di metodi di sviluppo agili, come Scrum, e tutto sembrava procedere serenamente. E infatti, verso la fine, il docente annuncia:

Voglio che sperimentiate di persona tutte le fatiche del lavoro di squadra, dividetevi in gruppi, inventate un progetto, nominate un leader e seguite insieme tutte le fasi della progettazione. Alla fine, mi aspetto da voi un prodotto finito e un articolo su Habr.

Da qui inizia la nostra storia. Come palle da biliardo ci siamo rimbalzati l'uno contro l'altro, fino a quando l'energia dell'urto non si è dissipata e insieme ci siamo radunati in un gruppo di 7 persone. Forse per un progetto scolastico è eccessivo, ma per distribuire meglio i ruoli è l'ideale. Iniziarono le discussioni sulle idee per il progetto, da "Prendiamo un progetto già pronto" a "Emulatore per la creazione di oggetti spaziali". Ma alla fine si è fatta strada l'idea, il cui nome avete letto nella prima immagine.

Stop Procrastination — cos'è, a cosa serve e come lo abbiamo sviluppato e cosa ne è venuto

Il racconto sarà condotto dalla prospettiva del project manager, che fortunatamente o sfortunatamente sono io. E quindi, qual è stata l'idea che ci è venuta in mente? Ispirandoci al popolare sveglia "Shake Alarm" di SupperCommon, e in particolare alla funzione che blocca completamente il funzionamento dello smartphone finché l'utente non compie un'azione specifica che, molto probabilmente, lo costringerà a svegliarsi, abbiamo deciso di creare un'app simile che aiuti a liberarsi dalla dipendenza da telefone, seguendo lo stesso principio di "Shake Alarm".

Il principio di funzionamento

L'utente imposta i timer
-Tempo da trascorrere sullo smartphone
-Tempo senza smartphone (periodo di blocco)
Al termine del timer, appare sullo schermo un overlay che non può essere chiuso
-Per chiudere l'overlay è necessario superare una piccola prova (inserire una password su una tastiera complicata, risolvere un problema matematico, scuotere il telefono per qualche minuto)
Dopo aver sbloccato in questo modo, il tempo che si può trascorrere sullo smartphone si riduce della metà, fino a un minuto

Formiamo una squadra

Inizialmente dovevamo stabilire chi si sarebbe occupato di cosa e in quale linguaggio sarebbe stato scritto tutto. Penso che questo abbia poco a che fare con la gestione dei progetti, poiché quando si forma una squadra per un progetto reale si raccoglie subito chi è necessario. Alla fine ho preso anche l'onere del designer, ho scelto un team leader che avesse una buona esperienza nello sviluppo di applicazioni, a lui sono stati assegnati tre programmatori, e altri due sono diventati tester. Naturalmente, il linguaggio di programmazione è stato scelto in base alle competenze. Alla fine è stato deciso di utilizzare Java, poiché tutti i programmatori lo conoscevano.

Stabiliamo compiti

Su raccomandazione del docente è stata creato un pannello di attività su un servizio gratuito Trello. Si prevedeva di lavorare secondo il sistema Scrum, dove ogni stream rappresenterà un'applicazione completa.
Tuttavia, nella realtà è emerso un grande e lungo stream, a cui sono state costantemente apportate modifiche, integrazioni e correzioni.

Come abbiamo tentato il lavoro di squadra e cosa ne è uscito

Scriviamo le specifiche

Sotto l'influenza del libro di Savin "Testing.com", avevo in mente la mia visione di come tutto dovesse essere organizzato. Tutto è iniziato con la scrittura delle specifiche, poiché credo che senza una chiara descrizione di cosa ci aspettiamo, cosa e come dovrebbe funzionare, nulla funzionerà. I programmatori realizzeranno tutto come lo vedono loro, i tester verificheranno altro, il manager si aspetterà altro, e alla fine otterremo, come sempre, qualcosa di diverso.
Scrivere specifiche non è facile, bisogna pensare a tutti i dettagli, a tutte le sfumature. Naturalmente, di primo acchito non è riuscito nulla. Alla fine, le specifiche sono state integrate e riscritte 4 volte. L'ultima versione puoi trovarla alla fine dell'articolo, nella sezione dei link.

Disegniamo il design

Il design nell'app mobile è la cosa più importante. Tuttavia, non tutti lo capiscono; anche nella mia squadra molti hanno discusso animatamente con me dicendo che il design non è necessario, che è la parte meno importante dell'applicazione, e così via. Non bisogna essere così naif. Innanzitutto, un design pronto è un sollievo per il lavoro del programmatore; non deve pensare a cosa, dove e come inserire ogni elemento, può semplicemente prendere e sviluppare ciò che è stato disegnato. Insieme alle specifiche, il design libera quasi completamente la mente del programmatore da cose inutili e gli permette di concentrarsi sulla logica. In generale, inizialmente è stato disegnato un prototipo di design (orrendo):

Come abbiamo tentato il lavoro di squadra e cosa ne è uscito

Ma poi il design è stato rifinito e portato a un aspetto normale.
(Link a tutti gli elementi di design alla fine dell'articolo).

Come abbiamo tentato il lavoro di squadra e cosa ne è uscito

Programmazione

Programmare è difficile, ma fattibile. Salto questo aspetto, poiché personalmente non mi sono occupato di questo. I programmatori hanno svolto un lavoro enorme, senza il quale tutto sarebbe stato privo di senso. Certamente siamo riusciti a implementare alcune idee. E l'applicazione ha ancora bisogno di miglioramenti. Molti bug e funzionalità da correggere. Se avessimo avuto più tempo, saremmo usciti da una profonda fase alfa; nel frattempo, puoi testare l'app alla fine dell'articolo.

E riguardo ai test

Qual è l'aspetto principale della programmazione? A mio avviso, il principale è che tutto funzioni e appaia come dovrebbe. Non sempre e non immediatamente tutto esce come dovrebbe. Per questo è necessario il testing. Ai miei tester ho proposto un modello di test utilizzando test case. Inizialmente vengono scritti test case in piena conformità con le specifiche, quindi vengono eseguiti i test. Puoi vedere cosa ne è uscito nei link qui sotto.

Grazie per aver letto. Spero che tu abbia trovato qui qualcosa di utile, forse un'idea per il tuo startup, oppure un buon consiglio o strumento.

Link:

Ultimi specifica.
Design su Figma.
Test case e bug report.

L'app stessa su HokeyApp. — L'app è stata costruita con il nome HandsOff, non chiedere perché (perché Stop Procrastination è troppo lungo).

E infine

Cosa ne pensi, ha avuto senso tutto questo?

Solo gli utenti registrati possono partecipare al sondaggio. Accedi, per favore.

È necessaria una tale pratica nelle istituzioni educative e quanto è utile e applicabile nella vita reale?

  • Necessaria, un'esperienza preziosa

  • Necessaria, anche se l'esperienza è limitata

  • Quasi inutile, al massimo capirai le caratteristiche generali del lavoro in team

  • Una pura perdita di tempo e sforzo

Hanno votato 2 utenti. Non ci sono astenuti.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster