
Let's take it in order
What does this picture mean a little later, but now let me start with an introduction.
On a cold February day, nothing foreshadowed trouble. A group of innocent students came for the first time on a pair of subjects that they decided to call the "Methodology of organizing the design and development of information systems." There was a regular lecture, the teacher told about flexible development methods, such as scrum, nothing foreshadowed trouble. And finally, the teacher announces:
I want you to experience the teamwork, divide into groups, create a project, appoint a leader and go through all the design stages. In the end, I expect from you a finished product and an article on Habré.
This is where our story begins.
Like balls in a billiard room, we jumped apart from each other until the impact energy dissipated and a group of 7 people gathered together. Perhaps for an educational project this is too much, but in order to better distribute the roles, that's the thing. The discussion of ideas for the project began from “Let's take a ready-made project” to “Emulator of space objects formation”. But in the end, the idea that you read in the first picture passed.
')
Stop Procrastination - what it is, what it is eaten with and how we developed it and what came of it
The story will be conducted on behalf of the project manager, who fortunately or unfortunately appointed me. So, what idea came to our mind? Inspired by the popular “Shake the Alarm Clock” alarm clock from SupperCommon, namely, the function completely block the work of the smartphone until the user performs a certain action that most likely makes him wake up, we decided to create such an application that will help get rid of the phone addiction, on the same principle as the "Shake the Alarm Clock"
Principle of operation
User sets timers
-Time that can be spent on a smartphone
-Time without smartphone (blocking period)
After the timer expires, an overlay appears on the screen that cannot be minimized.
-To close the overlay you need to go through a small test (enter the password on the confusing keyboard, solve a math problem, shake the phone for a couple of minutes)
After unlocking in this way, the time that can be spent behind the smartphone is halved, and so on up to one minute.
Build a team
To begin with, it was necessary to determine who would do what and in what language it would all be written. I think this is of little relevance to project management, because when you assemble a team for a real project, you immediately gather those you need. As a result, I also took on the burden of the designer, chose one team leader who had good experience in developing applications, three programmers were assigned to him, and two more became testers. Of course, the programming language was chosen by skill. As a result, it was decided to use Java, since all programmers were familiar with it.
Set tasks
According to the teacher’s recommendation, a task board was created on the free
Trello service. It was planned to work on the system Scrum, where each stream will be a kind of complete application.
However, in reality, a large and long stream came out of all this, in which changes, additions and corrections were constantly made.

We write specs
Influenced by Savin's book Testing.com, I had in my head my idea of ​​how things should be arranged. It all started with the writing of specifications, as I think without a clear description of what we expect, what and how it should work, nothing will work. Programmers will program everything as they see them, testers will test another, the manager was waiting for the third, but it will turn out as always the fourth.
Writing specifications is not easy, you need to think through all the details, all the nuances. Of course, nothing happened the first time. As a result, the specifications were supplemented, altered 4 times. The last option can be found at the end of the article, in the link section.
Draw design
Design in a mobile application is the most important thing. However, not everyone understands this, including from my team, many ardently argued with me that the design is not needed, that this is the most unimportant part of the application, etc. Do not be so naive. First, a ready-made design is a relief for the programmer’s work; he doesn’t need to think that where and where to push, he simply takes and imposes what is drawn. Together with the specifications, the design almost completely frees the mind of the programmer from unnecessary things, and gives him the opportunity to concentrate on logic. In general, the prototype (awful) design was first drawn:

But then the design was combed and brought to a normal look.
(Link to all design elements at the end of the article).

We program
Programming is difficult, but possible. I will omit this moment, since I personally did not do it. Programmers had done a great job, without which everything would be meaningless. Of course, we managed to implement some of the ideas. And the program still needs some work. Many bugs and features that need to be removed. If we had more time, we would have gotten out of deep alpha, but for now you can test the application at the end of the article.
Well, about testing
What is important in programming? In my opinion the main thing is that everything works and looks as it should. How to go out is not always and not immediately. For this you need testing. To my testers, I proposed a testing model using test cases. First, test cases are written in full compliance with specifications, and then testing is carried out on them. What came out of this can be seen in the links below.
Thanks for reading. I hope you found at least something useful here, maybe an idea for your startup, or maybe good advice or a tool.
References:
Latest
specs .
Design by
Figma .
Test cases and
bug reports .
The app itself is on
HokeyApp . - The application was built under the name HandsOff, do not even ask why (because Stop Procrastination is too long).
Well, in the end
Do you think this made all the sense?