StopProcrastination

Давайте по порядку


Что означает этот рисунок чуть позже, а сейчас позвольте начать с введения.

В холодный февральский день ничего не предвещало беды. Группа ни в чём не повинных студентов пришла в первый раз на пару по предмету, который решили назвать «Методология организации проектирования и разработки информационных систем». Была обычная лекция, преподаватель рассказывал про гибкие методы разработки, такие как скрам, ничего не предвещало беды. И вот под конец преподаватель объявляет:
Я хочу, чтобы вы на себе испытали все тяготы командной работы, разделитесь на группы, придумайте проект, назначьте руководителя и пройдите вместе все этапы проектирования. В конце я жду от вас готовый продукт и статью на хабре.
Отсюда и начинается наша история. Как шарики в бильярде мы поотскакивали друг от друга, пока энергия удара не рассеялась и вместе собралась группка из 7 человек. Возможно для учебного проекта это слишком много, но чтобы лучше распределить роли самое то. Началось обсуждение идей для проекта от «Давайте возьмём готовый проект» до «Эмулятор формирования космических объектов». Но в итоге прошла идея, название которого вы и прочитали на первой картинке.

Stop Procrastination — что это такое, с чем его едят и как мы его разрабатывали и что из этого вышло


Рассказ будет вестись от лица руководителя проекта, которым к счастью или к сожалению назначили меня. Итак какая же идея пришла нам в голову? Вдохновившись популярным будильником «Тряси Будильник» от SupperCommon, а именно функцией полностью блокировать работу смартфона до тех пор, пока пользователь не совершит определённое действие, которое, вероятнее всего заставит его проснуться, нами было решено создать подобное приложение, которое поможет избавиться от телефонной зависимости, по такому же принципу, что и «Тряси Будильник»

Принцип работы


Пользователь устанавливает таймеры
-Время, которое можно проводить за смартфоном
-Время без смартфона (период блокировки)
По истечении таймера на экране появляется оверлей, который нельзя свернуть
-Чтобы закрыть оверлей нужно пройти небольшое испытание (ввести пароль на запутанной клавиатуре, решить математическую задачку, потрясти телефон пару минут)
После разблокировки таким способом время, которое можно провести за смартфоном уменьшается в два раза, и так вплоть до одной минуты.

Строим команду


Для начала нужно было определить, кто чем будет заниматься и на каком языке всё это будет писаться. Я думаю, именно к управлению проектами это имеет мало отношения, ибо когда собираешь команду для реального проекта ты собираешь сразу тех кто тебе нужен. В итоге я взял ещё и на себя ношу дизайнера, выбрал одного тимлида, который имел хороший опыт в разработке приложений, ему в подчинение было назначено три программиста, и еще двое стали тестировщиками. Конечно, язык программирования выбирался по умениям. В итоге было решено использовать Java, так как с ним были знакомы все программисты.

Ставим задачи


По рекомендации преподавателя была создана доска задач на бесплатном сервисе Trello. Планировалось работать по системе Скрам, где каждый стрим будет представлять собой некое законченное приложение.

Однако на деле из всего этого вышел один большой и длинный стрим, в который постоянно вносились правки, дополнения и исправления.

image

Пишем спеки

Под влиянием книги Савина «Тестирование.com», я имел в голове своё представление о том как всё должно быть устроено. Всё началось с написания спецификаций, как я считаю без чёткого описания, чего мы ждём, что и как должно работать ничего работать не будет. Программисты запрограммируют всё как видят они, тестировщики протестируют другое, руководитель ждал третье, а получится как всегда четвёртое.

Писать спецификации не легко, нужно продумать все детали, все нюансы. Конечно же с первого раза ничего не получилось. В итоге спецификации дополнялись, переделывались 4 раза. Последний вариант вы можете найти в конце статьи, в разделе ссылки.

Рисуем дизайн


Дизайн в мобильном приложении — самое главное. Однако не все это понимают, в том числе и из моей команды многие рьяно спорили со мной, что дизайн не нужен, что это самая не важная часть приложения и т.д. Не стоит быть таким наивным. Во-первых, готовый дизайн — это облегчение работы программиста, ему не нужно думать, что где и куда запихнуть, он просто берет и верстает, то что нарисовано. Вместе со спецификациями дизайн почти полностью освобождает ум программиста от ненужных вещей, и даёт ему возможность сконцентрироваться на логике. В общем сначала был нарисован прототипный (ужасный) дизайн:

Дизайн v1

Но потом дизайн был причёсан и приведён к нормальному виду.
(Ссылка на все элементы дизайна в конце статьи).

Дизайн v2

Программируем


Программировать сложно, но можно. Я опущу данный момент, так как лично этим не занимался. Программистами была проделанная огромная работа, без которой всё было бы бессмысленно. Конечно удалось реализовать часть задумок. И программе ещё нужна доработка. Много багов и фич, которые нужно убрать. Будь у нас больше времени, мы бы вылезли из глубокой альфы, а пока вы можете протестировать приложение в конце статьи.

Ну и о тестировании


Что главное в программировании? По-моему мнению главное — чтобы все работало и выглядело так, как надо. Как надо выходит не всегда и не сразу. Для этого нужно тестирование. Своим тестировщикам, я предложил модель тестирования с использованием тест-кейсов. Сначала пишутся тест-кейсы в полном соответствии со спецификациями, а затем по ним проводится тестирование. Что из этого вышло можете посмотреть ниже в ссылках.

Спасибо, что прочитали. Надеюсь, вы нашли здесь хоть что-то полезное, может идею для своего стартапа, а может хороший совет или инструмент.

Ссылки:


Последние спецификации.
Дизайн на Figma.
Тест-кейсы и баг-репорты.

Само приложение на HokeyApp. — Приложение билдилось под названием HandsOff, даже не спрашивайте почему (потому что Stop Procrastination слишком длинное).

Ну и в конце


Как вы думаете, имело ли всё это смысл?

Комментарии (11)


  1. selotec
    21.05.2019 07:49

    Идея для приложения хорошая. Если человек намерен следовать правилам игры. Я недавно ставил приложение, которое напоминало воду пить. Через полдня удалил, потому что начали раздражать частые сигналы от телефона)


  1. karminski
    21.05.2019 08:35
    +1

    Спасибо за статью. Было бы приятнее читать без орфографических ошибок.


    1. arman_ka Автор
      21.05.2019 09:10

      Прошу прощения, я поправил все, что нашёл


  1. sshmakov
    21.05.2019 09:06

    Всё началось с написания спецификаций, как я считаю без чёткого описания, чего мы ждём, что и как должно работать ничего работать не будет.

    После этого решения трудно было ожидать, что у вас что-то получится a la скрам.


  1. n0rbert
    21.05.2019 09:08
    +1

    Интересно было бы почитать именно про командную работу. Как взаимодействовали члены команды, кто-то отлынивал или терялся, кто-то вез на себе проект, а кто-то только вносил смуту.
    По описанию кого то назначили тимлидом. Насколько он с этой ролью справлялся, что мешало. И т.п.


    1. arman_ka Автор
      21.05.2019 09:12

      Хорошая мысль, постараюсь добавить ещё один пунктик про трудности


  1. Revertis
    21.05.2019 12:17

    Как мы пытались в командную работу
    Может хватит коверкать русский язык?


    1. arman_ka Автор
      21.05.2019 15:53

      Язык — субстанция меняющаяся, и меняется она в сторону облечения, улучшения и удобства, трудные словоформы никогда не войдут в обиход. Не понимаю людей искусственно тормозящих развитие языка. Странно, почему вы на старославянском не общаетесь?


      1. OneMike
        23.05.2019 12:06

        Здесь вообще не о том. Сама конструкция бессмысленная — пытались что? Играть? Влезть? Дурацкая мода какая-то.


        1. arman_ka Автор
          23.05.2019 12:09

          ну вы постареете и ваши внуки будут только так и говорить, если не хуже. В языке много дурацких конструкций, если эта дурацкая она не устоится, так же как и «скучаю по вас» звучит очень дурацки, но так правильно, хотя все говорят «по вам»


    1. arman_ka Автор
      21.05.2019 16:42

      Но название поправил на «Как мы пытались работать в команде, и что из этого вышло», потому что так звучит лучше, но не считаю, что прошлое коверкало язык