By Pete on 2019-02-03
As much as I’d like to develop Training Ticks into a great product that helps to serve all the needs that runners and other athletes have, it’s also a vehicle for my own learning and personal development. With that in mind I’ve decided to start chronicling the journey through a blog, partly because I hope it will be interesting to others, but also because I’d like to get better at writing content. My posts are probably going to hop about fairly randomly between topics ranging from running itself through to product development, and maybe the odd bit of techie stuff too. For this first post I’ll keep it simple and write about how I started out on the journey.
I’ve been working with backend databases for my whole working life, but I’ve started to become more involved in product development in my latest role, and I was getting a bit of an itch for the idea of building something from scratch. I wanted to give myself a personal project that would allow me to learn about and apply some ideas on frontend / customer-facing stuff, both from a software development and product perspective.
I’m a very keen runner and have racked up plenty of half marathons over the last 6 years, so in 2017 entered my first full marathon. About 6 weeks ahead of the Liverpool Rocknroll Marathon I picked up an injury to my ankle that resulted in a trip to the physio, and the predictable conclusion that my glutes were too weak and that I needed to do some strengthening. I stuck religiously to my prescribed exercises and managed the injury sufficiently to be able to complete the marathon, but of more relevance to this blog was the Google sheet that I created along the way to log the exercises I was doing.
I’ve found that when I get into a consistent routine with strengthening and stretching exercises it serves me well with regard to rehab and injury prevention. But then once I’d got my body working well and was back to running longer distances, I fell out of the habit of doing the exercises that have got me there in the first place. My Google sheet was something I used to motivate me, and it was fine when I had a small number of exercises to target a particular injury or niggle, but wasn’t especially scalable when I wanted to add more exercise types for all-round body robustness.
Additionally, as a data nerd, I had a nagging frustration that these data points relating to my strengthening exercises couldn’t be easily integrated with my running data in Strava. Thus I couldn’t explore the impact they have on my running performance. So when I found myself with a weekend to spare a niggle in my hip that I decided could do with a little rest from running, I looked at my Google sheet and decided there was a problem here that I could try to solve with my own web-based app.
Taking a critical look at the problems with the sheet and a couple of other fitness logging apps that I’d tried, I picked out 3 things in particular that I wanted to address in order for me as a “customer” to get the most from the tool I was going to build:
These 3 simple requirements gave me a nice lightweight scope for an MVP, and so I went about building my first web app using the Flask framework in Python, and a Bootstrap frontend. I sketched out an idea for how the UI could work, researched what components were available to achieve this, and quickly began coding.
Requirements (2) and (3) were tackled by letting each user build up their own set of custom exercise types. It was simple enough for me as a user to just apply my own naming convention of “(L)” or “(R)” as part of the exercise name to then specify different numbers of reps for each, but equally another user could come along and create one exercise to include both left and right sides together.
For requirement (1) I went through the journey of doing and recording an exercise, trying to keep the friction minimal at every point:
And that was it, a working MVP! Admittedly I was a little limited in what types of exercise I could at this stage, so at the point I wanted to do a plank I added the ability to measure in seconds as well as reps. And if I got carried away with one exercise calf raises and did 15 reps instead of 10 then I needed to be able to edit the reps... Or maybe I’m now feeling strong enough to manage 15 for every set now so I want to set that as the new default when I edit it. Each of these slightly more advanced scenarios gave me a small feature to build and were the perfect fuel for my first few iterations of the app.
So that’s how the Log adhoc exercises feature that you can use from the home page came to be. The novelty of having a new app that I’d built myself to log my exercises gave me fresh motivation to make sure I was performing strengthening exercises on a daily basis, plus I had a project up and running that I could build on. I was accumulating a few ideas in my head for what kind of stuff I could build next that would help my training, and I’ll discuss the inspiration for some of these in future posts.[Back to Blog Home]