Dec 16, 2019
How I launched a simple but important application in a week (or less)
Since I can remember I love to challenge myself. Pushing me to the limit is a hard way to know how far you can go in tough situations. It's not good nor healthy putting yourself in these kinds of storms, hence, I don't recommend everyone use the same method. but for me, I think is exciting.
A few days ago, the company where I'm working right now was organizing The Annual Employees' Party. At the event, they raffle differents gifts to the employees using an old reliable method.
It consists of printing the list of every company employees (like 600 workers) and cut each page into little parts of paper. After that, fold those pieces and put them all inside a plastic container. Later, at the event, a volunteer will take one random piece and the name printed on it, will be one winner.
Anyone can notice that doing in that way brings a lot of unnecessary work and as we know, anything can be improved with code.
My product manager talked to me about the idea to automate the whole process but warning me if I choose to take the task, the solution should be ready in less than 10 days. If not, no problem, the solution would be used the next year.
As the title of the article says, I took the task, and with it a great responsibility, because so many people were excited about this new method.
So, what did I have to do?
First, we took the specific requirements and tried (all of way up) to keep it as simple as possible.
- We decided to create a responsive web app because the event staff would be using tablets.
- The app will have just two modules or functionalities. Assistance and Raffle.
- The app would need a login and tracking any change made by each user logged.
How did I do?
The easiest and faster way to launch a simple app like this is by using Firebase. In case you don't know, Firebase is Google's platform that helps you quickly develop apps using it as a Back-end, (likely Backend-as-a-Services).
Firebase was I huge ally for me because it makes ridiculously easy to implement any kind of authorization method. Also, it has a No-SQL database service named Firestore that gives you the capability to retrieve data in real-time. Exactly what I want.
Using firebase I instantly had the backend of the app. So, I could be focused on the frontend.
For my frontend I used CRA. Create-React-App (CRA) helped me to have a quick starter of a simple react scaffolding ready to code on.
I was extremely focused on build a functional MVP, i didn't care about the style at all. Once I had it working I knew everything will be ok. After 4 days, I covered each requirement and fully tested and approved for the party staff team.
At last, I coded a node.js script to upload all the data (name, code, department) of every employee, and after, give some style to the app.
The event day
I was nervous about the first look, and the impression of the workers which were present. Almost 400 people watching the screen where the application will be shown, inexperienced user of the app and a paradigm broken was some of the things that got me a bit worry and anxious.
The crowd reaction was better than I expected, the use of the app "almost" didn't presented any trouble, and each raffle was successful and clear.
Again, I know this is a singular situation and might be not the media of every attempt but as I say at the beginning, the challenge makes me more strong and excited me to go over the limit. It was a successful case (not always happen in this way) but with this story, I'd like to show you two important lesson:
Trust in yourself. the first thing you need to know before taking risk is how far you know you can go, I how hard you want you to push yourself through.
Focus on functionality overall. I think it doesn't need an explanation but always, ALWAYS, be focus on the MVP fist, the core functionalities. Make your product usable and later you care about any other details.
I hope this article can inspire someone and give this little bit of motivation you probably need.