
Lassen Sie uns der Reihe nach vorgehen
Was diese Grafik bedeutet, erfahren Sie gleich, aber lassen Sie mich zunächst mit einer Einführung beginnen.
An einem kalten Februartag gab es keinerlei Anzeichen für das, was kommen sollte. Eine Gruppe ahnungsloser Studierender trat zum ersten Mal zu einer Vorlesung in dem Fach, das sie "Methodologie der Organisation von Entwurf und Entwicklung von Informationssystemen" nannten. Es war eine ganz gewöhnliche Vorlesung, der Dozent erzählte von agilen Entwicklungsmethoden wie Scrum, es schien nichts Ungewöhnliches zu passieren. Doch gegen Ende der Stunde verkündete der Dozent:
Ich möchte, dass Sie die Herausforderungen der Teamarbeit am eigenen Leib erfahren. Teilen Sie sich in Gruppen auf, denken Sie sich ein Projekt aus, ernennen Sie einen Leiter und durchlaufen Sie gemeinsam alle Phasen des Designs. Am Ende erwarte ich von Ihnen ein fertiges Produkt und einen Artikel auf Habr.
Hier beginnt unsere Geschichte. Wie Billardkugeln prallten wir voneinander ab, bis die Energie des Aufpralls nachgelassen hatte und sich eine Gruppe von 7 Personen versammelte. Für ein Schulprojekt mag das vielleicht zu viel sein, aber um Rollen besser zu verteilen, ist es genau richtig. Die Diskussion über Projektideen begann von "Lass uns ein bestehendes Projekt übernehmen" bis hin zu "Emulator zur Formierung von Himmelskörpern". Am Ende setzte sich jedoch die Idee durch, deren Titel Sie auf dem ersten Bild gelesen haben.
Prokrastination stoppen – was ist das, wie geht man damit um, und wie haben wir es entwickelt und was ist daraus geworden?
Die Erzählung erfolgt aus der Sicht des Projektleiters, der glücklicherweise oder unglücklicherweise mir zugewiesen wurde. Und welche Idee kam uns in den Sinn? Inspiriert von dem beliebten Wecker „Shake Alarm“ von SupperCommon, insbesondere der Funktion, die Arbeit des Smartphones vollständig zu blockieren, bis der Nutzer eine bestimmte Aktion ausführt, die ihn wahrscheinlich aufwecken wird, haben wir beschlossen, eine ähnliche App zu entwickeln, die dabei hilft, von der Smartphone-Abhängigkeit loszukommen, nach dem gleichen Prinzip wie „Shake Alarm“.
Funktionsweise
Der Nutzer stellt Timer ein.
-Zeit, die man mit dem Smartphone verbringen kann
-Zeit ohne Smartphone (Blockierungszeitraum)
Nach Ablauf des Timers erscheint ein Overlay auf dem Bildschirm, das nicht geschlossen werden kann
-Um das Overlay zu schließen, muss man eine kleine Herausforderung meistern (ein Passwort auf einer verwirrten Tastatur eingeben, eine Mathematikaufgabe lösen, das Telefon ein paar Minuten schütteln)
Nach der Freischaltung auf diese Weise wird die Zeit, die man mit dem Smartphone verbringen kann, halbiert, und das bis auf eine Minute
Wir bauen ein Team auf
Zuerst mussten wir festlegen, wer was machen wird und in welcher Programmiersprache alles geschrieben wird. Ich denke, das hat wenig mit dem Projektmanagement zu tun, denn wenn man ein Team für ein echtes Projekt zusammenstellt, nimmt man gleich die Leute, die man benötigt. Letztendlich habe ich auch die Verantwortung für das Design übernommen und einen Teamleiter ausgewählt, der gute Erfahrung in der Anwendungsentwicklung hatte. Ihm wurden drei Programmierer unterstellt, und zwei weitere wurden zu Testern. Natürlich wurde die Programmiersprache nach den Fähigkeiten ausgewählt. Letztendlich wurde beschlossen, Java zu verwenden, da alle Programmierer damit vertraut waren.
Aufgaben festlegen
Auf Empfehlung des Dozenten wurde ein Aufgabenboard auf einem kostenlosen Service erstellt. Es war geplant, nach dem Scrum-System zu arbeiten, wobei jeder Stream eine abgeschlossene Anwendung darstellen sollte.
In der Praxis entwickelte sich jedoch alles zu einem langen Stream, in den ständig Änderungen, Ergänzungen und Korrekturen eingefügt wurden.

Wir schreiben Spezifikationen
Beeinflusst durch das Buch von Savin „Testing.com“ hatte ich meine eigene Vorstellung davon, wie alles strukturiert sein sollte. Es begann mit dem Schreiben von Spezifikationen, denn ohne eine klare Beschreibung dessen, was wir erwarten, was und wie es funktionieren sollte, wird nichts funktionieren. Die Programmierer werden alles so programmieren, wie sie es sehen, die Tester werden etwas anderes testen, der Vorgesetzte wird etwas Drittes erwarten, aber am Ende wird es wie immer das Vierte sein.
Spezifikationen zu schreiben ist nicht einfach, man muss alle Details und Nuancen durchdenken. Natürlich hat beim ersten Mal nichts funktioniert. Letztendlich wurden die Spezifikationen viermal ergänzt und überarbeitet. Die letzte Version finden Sie am Ende des Artikels im Abschnitt Links.
Wir zeichnen das Design
Das Design in einer mobilen Anwendung ist von größter Bedeutung. Doch nicht jeder versteht das, auch viele in meinem Team haben leidenschaftlich mit mir gestritten, dass Design unnötig sei und dass es der unwichtigste Teil der Anwendung ist, und so weiter. Seien Sie nicht so naiv. Erstens, das fertige Design erleichtert die Arbeit für den Programmierer, er muss nicht darüber nachdenken, was wo und wie plaziert werden soll, er nimmt einfach das Gezeichnete und setzt es um. Zusammen mit den Spezifikationen befreit das Design den Programmierer nahezu vollständig von unnötigen Gedanken und ermöglicht es ihm, sich auf die Logik zu konzentrieren. Ursprünglich wurde ein prototypisches (schreckliches) Design erstellt:

Aber später wurde das Design überarbeitet und auf ein akzeptables Niveau gebracht.
(Link zu allen Designelementen am Ende des Artikels).

Wir programmieren
Programmieren ist herausfordernd, aber machbar. Ich lasse diesen Punkt aus, da ich selbst nicht direkt damit beschäftigt war. Die Programmierer haben großartige Arbeit geleistet, ohne die alles sinnlos gewesen wäre. Natürlich wurden einige Ideen umgesetzt, aber die Software benötigt noch Verbesserungen. Es gibt viele Bugs und Features, die behoben werden müssen. Wenn wir mehr Zeit hätten, könnten wir aus der tiefen Alpha-Phase herauskommen, und bis dahin können Sie die Anwendung am Ende des Artikels testen.
Und zum Testen
Was ist das Wichtigste beim Programmieren? Meiner Meinung nach ist es wichtig, dass alles funktioniert und so aussieht, wie es soll. Das gelingt nicht immer und nicht sofort. Dafür ist Testen notwendig. Ich habe meinen Testern ein Testmodell vorgeschlagen, das Testfälle verwendet. Zuerst werden Testfälle in voller Übereinstimmung mit den Spezifikationen geschrieben und dann wird entsprechend getestet. Was daraus entstanden ist, können Sie unten in den Links sehen.
Danke, dass Sie gelesen haben. Ich hoffe, Sie haben hier etwas Nützliches gefunden, vielleicht eine Idee für Ihr eigenes Startup oder einen nützlichen Rat oder ein Werkzeug.
Links:
Letzte .
Design in .
und .
Die Anwendung auf . — Die Anwendung wurde unter dem Namen HandsOff erstellt, fragen Sie nicht warum (weil Stop Procrastination zu lang ist).
Nun zum Schluss
Was denken Sie, machte all das Sinn?
Nur registrierte Benutzer können an der Umfrage teilnehmen. Sind Sie an Contour interessiert?
Ist eine solche Praxis in Bildungseinrichtungen nötig und wie nützlich und anwendbar ist sie im realen Leben?
Ja, es ist eine wertvolle Erfahrung.
Ja, auch wenn es wenig Erfahrung ist.
Fast nutzlos, höchstens versteht man die allgemeinen Merkmale der Teamarbeit.
Völlige Zeit- und Kraftverschwendung.
2 Benutzer haben abgestimmt. Enthaltungen gab es keine.
Quelle: habr.com
