Software Engineering for Youth Creativity
During these past two months, I had the privilege of working as a software engineer with Story Squad, an organization focused on engineering products that get kids off screens and back in conscious-creativity mode.
Nowadays, with the advent of Fortnite & Minecraft, and Social Media, kids are spending less time than ever using their imagination by reading, writing, and illustrating. Graig Peterson, Story Squad founder & W21 Transcend Fellow, noticed an issue. Many adults who grew up reading fairy tales internalized the logic of the stories, and this logic helped them make decisions as they grew older. That’s right, these stories served as a roadmap for their future selves. Without this, how would children know how to navigate life?
Story Squad’s monster app enables children to compete with other teams during a week-long gamified process that includes reading, writing, and illustrating. First, the children must read a short story (this story changes from week to week.) Then, the children must write a scene that ties back into the story. After that, they must all illustrate a scene from the story. Finally, blind voting takes place amongst the two teams (two children per team). The team with the highest total of individual points wins, and then they take their new score on to the next week. Children are incentivized to play along by the use of gamification. Achievement grinding and leaderboard domination are encouraged, although the SS organization is careful not to keep children attached to a screen all day.
Going into this experience, all new engineers went through a week-long onboarding process. Emotions were high, and most of us were very nervous to be working on such a massive codebase. Many of us were also dealing with imposter syndrome by wondering how exactly we were going to be able to contribute over the next several months. Thankfully, the Story Squad organization had an excellent onboarding process and they had us hit the ground running.
Technical Debt
Our team’s scheduled releases pertained to totally revamping the parent dashboard. The existing dashboard’s functionality was half-baked, and the current design provided an overall poor user experience. Working closely with the UX team, our team was able to create a new dashboard that allowed parents to create, delete, and edit profiles for their children while not sacrificing user experience. In addition to the CRUD operations, the dashboard also allowed parents to view their kids’ weekly stats.
In order to implement much of this functionality, it was required we make changes and engineer additions to the existing backend. Upon further inspection, we noticed many failing tests, which, due to our Github flow, would not allow us to merge any PR’s into the main branch of the backend. Not only did the tests need to be rewritten, but the repository’s secrets needed to be updated. One by one, we rewrote the 60+ failing tests, which put our team behind schedule. While doing so, we brought it to the attention of the project manager that the encrypted secrets needed to be updated. After about a week, the secrets were updated and the tests were fixed. This served as a great lesson to me and my team as to why you should never force merge or circumvent QA processes. It will only put you, or future developers working on the project, in an unnecessary time crunch by creating technical debt.
The Final Product
Before we knew it, the last week to contribute code had begun. Before that Friday evening, we had shipped and fixed all features related to our releases. On the new dashboard, parents could: successfully create & edit their children’s profiles; view their children’s weekly stats; and, update account information & settings.
The Future
As for the future of Story Squad’s Monster app, the horizons appear bright. The product has reached the minimum viable product stage, so user-testing shall commence soon. Upon retrieving user feedback, I suspect that parents will want the ability to view their children’s submissions from the parent dashboard. Unfortunately, however, I anticipate that the currently implemented database schema will raise technical challenges when it comes to deleting child profiles and/or their submissions.
During my time working on this project, I had the great pleasure of working with some really amazing software engineers. Our team lead, Sara, remained calm & collected as our team faced great ambiguity pertaining to the content of our releases. She had done a great deal of communication with the organization to get us clear, outlined releases, and she ensured that we stayed on track as a self-organizing team using agile methodology. Rob, an excellent front-end engineer who served as our team’s design lead, worked extremely hard to ensure that every feature and its code was up to standard. As for all the other amazing engineers that I did not mention here, the importance of their contributions to the success of this project remains immeasurable.
I am beyond grateful to have begun my professional career as a software engineer with a project that aims to improve & enrich the future of society, kids. I have, personally, learned so much from this experience, whether it be related to personal development or engineering, and I look forward to working with Story Squad and companies that follow similar missions in the immediate future.