
Zacznijmy od początku
Co oznacza ten rysunek, wyjaśnię później, a teraz pozwólcie, że rozpocznę od wprowadzenia.
W zimny lutowy dzień nic nie zapowiadało kłopotów. Grupa niewinnych studentów po raz pierwszy przyszła na zajęcia z przedmiotu, który postanowiono nazwać „Metodologia organizacji projektowania i rozwoju systemów informacyjnych”. Mieliśmy standardowy wykład, nauczyciel mówił o zwinnych metodach rozwoju, takich jak Scrum, nic nie zapowiadało kłopotów. A oto na koniec nauczyciel ogłasza:
Chcę, abyście osobiście poczuli wszystkie trudności pracy zespołowej, podzielcie się na grupy, wymyślcie projekt, wybierzcie lidera i wspólnie przejdźcie przez wszystkie etapy projektowania. Na koniec oczekuję od was gotowego produktu oraz artykułu na Habrze.
I tu zaczyna się nasza historia. Jak kulki w bilardzie, odbiłyśmy się od siebie, aż energia uderzenia się rozproszyła, a w końcu zebraliśmy się w grupkę z 7 osób. Może to trochę dużo jak na projekt studencki, ale aby lepiej rozdzielić role, to wystarczająco. Zaczęło się omawianie pomysłów na projekt od „Weźmy gotowy projekt” do „Emulator formowania obiektów kosmicznych”. Ale ostatecznie przeszła idea, której nazwę przeczytaliście na pierwszym obrazku.
Stop Procrastination — co to jest, do czego służy i jak go rozwijaliśmy oraz co z tego wynikło
Opowieść będzie prowadzona z perspektywy lidera projektu, którym, na szczęście lub nieszczęście, zostałem mianowany. I tak, jaki pomysł przyszedł nam do głowy? Inspirując się popularnym budzikiem „Shake Alarm” od SupperCommon, a dokładniej funkcją całkowitego zablokowania działania smartfona, dopóki użytkownik nie wykona określonego działania, które prawdopodobnie zmusi go do obudzenia się, postanowiliśmy stworzyć podobną aplikację, która pomoże pozbyć się zależności od telefonu, według tego samego zasady co „Shake Alarm”
Zasada działania
Użytkownik ustawia timery
-Czas, jaki można spędzać przy smartfonie
-Czas bez smartfona (okres blokady)
Po upływie timera na ekranie pojawia się nakładka, której nie można zminimalizować
-Aby zamknąć nakładkę, trzeba przejść przez mały test (wpisać hasło na zagmatwanej klawiaturze, rozwiązać zadanie matematyczne, potrząsnąć telefonem przez kilka minut)
Po odblokowaniu w ten sposób czas, który można spędzić na smartfonie, skraca się dwa razy, aż do jednej minuty.
Tworzymy zespół
Na początku trzeba było określić, kto czym się zajmie i w jakim języku to wszystko będzie pisane. Uważam, że ma to niewiele wspólnego z zarządzaniem projektami, ponieważ gdy tworzy się zespół do prawdziwego projektu, zbiera się od razu tych, którzy są potrzebni. W rezultacie wziąłem też na siebie obowiązek projektanta, wybrałem jednego team leada, który miał dobre doświadczenie w opracowywaniu aplikacji, a pod jego kierownictwo przydzielono trzech programistów, a jeszcze dwóch zostało testerami. Oczywiście wybór języka programowania był zależny od umiejętności. Ostatecznie zdecydowano się na użycie Javy, ponieważ wszyscy programiści mieli z nią doświadczenie.
Ustalamy zadania
Na polecenie nauczyciela stworzono tablicę zadań w darmowej usłudze . Planowano pracować w systemie Scrum, gdzie każdy sprint powinien reprezentować pewną ukończoną aplikację.
Jednak w rzeczywistości wyszedł z tego jeden duży i długi sprint, w który ciągle wprowadzano poprawki, uzupełnienia i korekty.

Pisanie specyfikacji
Pod wpływem książki Sawina «Testowanie.com», miałem w głowie swoje wyobrażenie o tym, jak wszystko powinno być ustrukturyzowane. Wszystko zaczęło się od pisania specyfikacji, ponieważ uważam, że bez jasnego opisu tego, czego oczekujemy, co i jak powinno działać, nic nie będzie działać. Programiści zaprogramują wszystko tak, jak widzą, testerzy przetestują coś innego, a kierownik będzie oczekiwał czegoś trzeciego, a wyjdzie jak zwykle czwarte.
Pisanie specyfikacji nie jest łatwe, trzeba przemyśleć wszystkie szczegóły, wszystkie niuanse. Oczywiście za pierwszym razem nic nie wyszło. W rezultacie specyfikacje były uzupełniane i przerabiane 4 razy. Ostatnią wersję można znaleźć na końcu artykułu w sekcji linki.
Rysujemy projekt
Projektowanie w aplikacji mobilnej jest najważniejsze. Jednak nie każdy to rozumie, w tym wielu członków mojej drużyny zapierało się ze mną, że projektowanie nie jest potrzebne, że to najmniej ważna część aplikacji itd. Nie warto być takim naiwnym. Po pierwsze, gotowy projekt to ułatwienie pracy programisty, nie musi się zastanawiać, co gdzie i jak włożyć, po prostu bierze i koduje to, co zostało zaprojektowane. Razem ze specyfikacjami projekt prawie całkowicie uwalnia myśli programisty od niepotrzebnych rzeczy, dając mu możliwość skoncentrowania się na logice. Ogólnie rzecz biorąc, najpierw został narysowany prototypowy (straszny) projekt:

Ale potem projekt został przekształcony i doprowadzony do normalnego wyglądu.
(Link do wszystkich elementów projektu na końcu artykułu).

Programowanie
Programowanie jest trudne, ale możliwe. Pominę ten moment, ponieważ osobiście tym się nie zajmowałem. Programiści wykonali ogromną pracę, bez której wszystko byłoby bezsensowne. Oczywiście udało się zrealizować część pomysłów. Program jeszcze wymaga dopracowania. Jest wiele błędów i funkcji, które trzeba usunąć. Gdybyśmy mieli więcej czasu, wynieślibyśmy się z głębokiej wersji alfa, a na razie możecie przetestować aplikację na końcu artykułu.
A teraz o testowaniu
Co jest najważniejsze w programowaniu? Moim zdaniem najważniejsze jest, żeby wszystko działało i wyglądało tak, jak powinno. Jak trzeba, nie zawsze wychodzi od razu. Do tego potrzebne jest testowanie. Moim testerom zaproponowałem model testowania z użyciem przypadków testowych. Najpierw pisze się przypadki testowe zgodnie z specyfikacjami, a następnie przeprowadza się testowanie. Co z tego wyszło, możecie zobaczyć poniżej w linkach.
Dziękuję za przeczytanie. Mam nadzieję, że znaleźliście tutaj coś przydatnego, może pomysł na swoją własną firmę, a może dobry poradnik lub narzędzie.
Linki:
Ostatnie .
Projekt na .
i .
Samą aplikację na . — Aplikacja była budowana pod nazwą HandsOff, nawet nie pytajcie dlaczego (bo Stop Procrastination jest zbyt długie).
A na koniec
Jak myślicie, czy to wszystko miało sens?
Tylko zarejestrowani użytkownicy mogą brać udział w ankiecie. , proszę.
Czy taka praktyka jest potrzebna w instytucjach edukacyjnych i jak bardzo jest użyteczna oraz stosowalna w realnym życiu
Potrzebna, bezcenna wiedza
Potrzebna, choć doświadczenia trochę
Prawie bezużyteczna, maksymalnie zrozumiesz ogólne cechy pracy w zespole
Pustka straty czasu i energii
Głosowało 2 użytkowników. Nie ma wstrzymujących się.
Źródło: habr.com
