It is always a challenging exercise to create an app or any software that is both:
a first version easy to use (see Step 1: Make it simple), released as fast as possible
a code structure and systems that will be extensible and maintainable over time
With AI, it has become trivial to release an app very very fast: what used to take weeks or months can now be achieved in a matter of hours. However, problems arise when time comes to modify said app, which is inevitable. To put it in software engineering terms, the technical debt (= the implied cost of future refactoring caused by choosing an easy, short-term solution over a better approach) created by large AI-written systems can be scary.
The bottleneck is not code output (quantity) anymore, the bottleneck is quality, more than ever before. To increase quality, some questions need to be considered from the start: where is the product headed in the long term? are requirements written well enough that the architecture is future-proof? how does the data need to be structured? what data is important and needs to be secured? how do we make the UX align with the brand vision? ...
To answer these questions and more, a generalist software and business experience is extremely precious.
We want to build fast AND we want to build well.
Before even starting to design or write requirements, it is critical to understand the brand and company vision. In our case, the core values of TRAINOM (the company behind CALIRING) are: health, freedom, play, and progress. How are we incorporating these values in the CALIGYM app?
Fitness journeys are the foundation to long-term health (see Step 3: Stay aligned)
Progress is highlighted and encouraged through various ideas (see Step 3: Stay aligned)
Another important question to consider from the start is: where is the product headed? For example, we want to keep open the possibility of including personalized coaching later on. Introducing the CALIBEAR is a first step in that direction. It also informs architecture decisions.
One of the major advantages of having software experience is a deep understanding of structure:
it is critical to spend time thinking about data models and their evolution
architecture will save you (when it is well thought out) or cost you (when it is a poor fit) immense time
The released app is only the tip of the iceberg of the systems that bring it to life. Software knowledge and experience also allows to create the systems that will lead to a good user experience for everyone involved. A classical example for us, is that we need an easy way to add or update the exercises videos, descriptions,... without modifying the database directly. So it requires creating a suite of non-developer-friendly storage and update mechanisms. Same for the text translations: yes, I have setup an automated translation when uploading new information to the database, but we also needed the ability for humans to correct the translations.
"Give me six hours to chop down a tree and I will spend the first four sharpening the axe."
Because we want to build fast AND we want to build well.
In Step 3: Stay aligned, I dive deeper into how the designs helps the goal of providing a better product experience for people.