Как мы пытались работать в команде, и что из этого вышло +6


StopProcrastination

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


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

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

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


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

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


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

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


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

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


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

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

image

Пишем спеки

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

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

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


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

Дизайн v1

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

Дизайн v2

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


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

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


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

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

Ссылки:


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

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

Ну и в конце


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




К сожалению, не доступен сервер mySQL