Inspiration and solution
Complex projects and large teams can cause a lot of stress. Increasing workload and complexity make it difficult to see the actual progress and team members communicate problems too late. All of this causes frustration and stress, which can lead to delays and even burnouts.
During the Atlassian Codegeist Hackathon 2020 we used Atlassian’s powerful Connect framework to develop Jirami: Realtime Retrospective. An app that gives insight into project status, promotes communication and brings people together as a team in a playful way.
Welcome to Jirami, an unexplored island that houses marvelous wonders but also great perils! Exploring this island will be no easy task but uncovering its secrets will be worth it! Will your team take up the adventure to form an exploration party and map the entire island?
Jirami provides insight into the project’s status, challenges of individual team members and their vitality. Using the fast and easy Atlassian Connect Express, each chosen sprint progress is visualized by a route across the island with the points of interest representing user stories and issues. Discover unexplored areas by completing user stories and issues but don’t fall behind on the tour guide!
Jirami connects team members and makes working together the main focus. Create a quest to let your team members know you need help. Quests immediately show up in the Jira board and on the Jirami Island.
Jirami promotes communication and an open environment by letting team members give an impression of their mood each day. Team members can communicate their mood during the day by assigning a grade to how they feel, picking a representative emoji and writing a short description. This is a conversation starter for addressing problems.
To give the team something to work towards and further strengthen cooperation, Jirami offers the option to set goals and rewards. For example, the scrum master will bring cake or karaoke for the whole team if a goal is reached. Jirami uses story points from issues in a Jira board to create a score. This score can be used to set goals for teams to reach. When the amount of user stories in the Jira board is completed, the goal is reached, and the reward can be claimed.
Exercise and vitality are important aspects of a healthy and stress-free work environment. This is why Jirami can be linked to Google Fit, to integrate real-time health data into the project status. Team members fill up a health bar during the day by doing at least 30 minutes of moderate exercise, as recommended by the World Health Organization.
To motivate the team even more, team members can unlock badges for achievements. These can be for example: helping a lot of team members by solving quests, earn the most points in a sprint or building up a streak of exercising days. Each new sprint the scoreboard resets and there is a new chance to be a winner.
How we built it
The Jirami app uses the Atlassian Connect Express npm package. This package is used to make the Jirami app for the Atlassian ecosystem. This package allowed us to use the Atlassian authentication system. This is used in the entire app to verify users.
Our goal was to create a system where you have a scoreboard, a map which shows your current sprint and much more. To create the map, we used the Jira Software Cloud REST API. We made multiple API requests to receive the specific data to fill the map.
To create the scoreboard in our application we used the Jira webhooks. This way, our system receives the specific issue that was changed. To make sure our system was not flooded with requests., we decided to use the filter options provided by the Jira issue created webhook. To keep track of the score we decided to set up a custom Database. The database type we decided to use was a MongoDB database. This stores all the score data for users and all the other data our app requires.
To create Goals, Moods and Quests in our application we stored all the data in our MongoDB database. We used Mongoose to query to our Database.
Our app is also connected to the Google Fit API. We can make a request to the Google API by going to a custom page that connects the data. We can then make requests for people's fitness data.
For the frontend, we used the default system setup from Atlassian Connect Express. More specifically, we used the setup with Handlebars. This allowed us to create a router system which is used across the entire app to render different pages. With this system, we were able to create an interactive web application.
To develop the app, we used the Ngrok dev loop. This allowed us to host and test our app directly in Jira. This saved a lot of time and was a very useful system.
For hosting, we followed the instructions from the Atlassian Connect Express readme. The suggestion was to use Heroku, which turned out to be a great choice for our system. The main reason being that it also provided continuous integration.
Challenges we ran into
By far our biggest challenge was the time it took to make Jirami from scratch. We have added big features to our app and all the graphics are made by our team. It was a big challenge to make it the best possible app we can make. This made it so we had to work really hard to achieve our vision of the app. This did however result in a great end product.
Most of our issues with this project came with the Google Fit connection. This is because our app runs directly inside of Jira. That way we could not redirect a user to the Google login and back. We solved this by creating a website which redirects to a Google sign in page. This allows us to link the Atlassian account to Google Fit.
Accomplishments that we're proud of
We made everything by ourselves, so all the designs, code and video. The project is totally from scratch! We have worked with seven people, eight weeks long and we used every minute we could free up to work on Jirami. We are immensely proud of the energy that we put in this project and the final results. The first reactions are great, and we are getting a lot of compliments from small and big companies that they really want to try out Jirami.
What we learned
We learned to work with Atlassian Connect, how to make a connection with Google Fit and we learned working effectively with a new, dynamic, and remote team.
What's next for Jirami Real-time Retrospective
Four big companies from our network, have already shown interest in Jirami and in early begin August 2020 they will start a pilot with several teams. In the meantime, we will improve Jirami and will make more people aware about it. Last but not least, we've been approached by our government to submit it for a sizeable grant proposal.
Steps to try it out
For instructions with images, please open the following document: https://docs.google.com/document/d/13myMRmx-S7NZKDLE-hIEcW1HprTaLQVyGOnQHRlUfos/edit
- To install the app, you need to go to your Jira environment. You then go to ‘My Apps’.
- Then press on ‘Manage your apps’.
- To install the app, you first need to enable development mode. To do this you need to first press ‘Settings’.
- Then you can enable development mode -> To upload the app you use the ‘Upload app’ option.
- Then enter the Jirami fun URL http://www.jirami.fun (or https://jirami.herokuapp.com).
- Then press the upload button.
- After installation go to ‘My apps’ again.
- Now select Jirami.
- You have now successfully set up Jirami. Congratulations and have fun!