
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 . 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.

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):

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

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 .
Design su .
e .
L'app stessa su . — 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. , 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
