I first connected with Bill when I came across his article on Curling stats on this blog. Given that I had recently published Curl Coach, which is, at its core, a curling stats app for iOS, I reached out to Bill asking to if he would be open to a chat about stats in curling. You see I have found that the best way to make an app like Curl Coach really good, is to get to get input from people who will actually use it, but I'm getting ahead of myself. Obviously Bill responded and we had several good discussions, and Bill thought it would be interesting to his readers to get some insight into how apps like Curl Coach come to be.
For me, I have two sons curling, one in Bantams and one in Little Rocks. As they grow older and move up, I wanted to be in a position to help them be their best. So I took the OCA level 1 competition course last fall and started on the path of coaching a young competitive team. Being partially retired (code for between jobs) I had some time on my hands and thought it would be interesting to develop a tool to help me with coaching. Now there are other applications out there for the iPhone and iPad, but I thought I could bring something fresh to the table because I saw those other applications as more about the stats than about coaching (my opinion only). While the stats are important, I wanted to create something that would help coaches coach. Stats are a part of that, but only if they can be leveraged to help with team and player development, learning strategy, and improving from game to game and season to season.
Okay, so that is the philosophy that drives Curl Coach development. I am going to spend a (very) little time on the technical aspects of developing, and then get back into how the app evolved and continues to improve. First, developing on apple platforms requires an architecture called Model-View-Controller or MVC for short. The M in the case of Curl Coach is the database of data that is required to managed players, venues, competitions and do all of the game charting. The V is the actual screens (and parts of screens) that you as a user interact with to enter information, do game playbacks, get reports, etc. Curl Coach has dozens of views that combine to provide the required functionality.
Some of these views are built in to iOS, buttons, date pickets, etc. whereas others are custom views (the sheet, the scoreboard, even the rocks) that have special properties and abilities built into them. Finally, the C part is used to collect up a set of views and to connect them to the Model.
When I develop as a one-man shop, it is very much about working on whatever interests me next. In the case of Curl Coach, the first piece was the sheet. A custom view that would draw the rings and all of the lines, and that could manage a set of sub-views that could draw the rocks. Once I had that, I added the ability to add a brush and move the rocks around, and from there the ability to extract all of those rock positions and movement and save them in the model. From there I built out the parts of the model to create players, pull them into teams, as well as creating venues and pulling all of that together into a competition, creating games, and starting to chart. I also developed some very simple reporting ability, more to verify that all of this data was actually getting saved properly and could be extracted later. Then I started using it to chart real games, and started running into real issues.
First came the realization that charting a game is HARD. It takes concentration and full time attention, and a charting app has to be simple and as easy to use as possible.
My first real issue came in the second end when I realized that the rings were the wrong way up, I spent much of that game holding my iPad upside down in order to be able to chart anything Another early problem came when the skip placed the brush (and I followed suit), and then promptly changed the brush once they got to the hack. I had no way to undo that brush. Many, many other issues came up, and each of them led to some kind of change or refinement to the application. Anything I could do to make charting easier, faster, more automatic, I did, that's how the application got automatic sheet rotation, turn, and difficulty. I also started talking to real coaches at my local club, and started refining the reports. One coach liked to look at shoot accuracy based on brush position, so that went in.
Another asked for the objective stats (force efficiency, etc.) so that went in. Once I was ready I got reached out over Linked In and connected with a Colin Sinclair of high performance coach based in Toronto who agreed to Beta test the application with his Seneca college varsity team at the Ontario provincials, and provided a whole bunch more feedback.
That is pretty much how Curl Coach evolved, a lot of hours of development and testing, and a lot of looking for ways to make charting as easy as possible while also providing the tools that can help coaches communicate with their teams and help drive real improvement over time. Indeed Curl Coach continues to evolve. In discussions with both Bill and another high performance coach, there was an interested in what the team does after an opposition miss. The shots selected (and executed) are often critical to who will eventually win, so the next version of Curl Coach includes a report that pulls out opposition misses and lets you look at what the team did about it.
Similarly, Bill believes that all Elite teams have to spend a lot of time thinking about shot tolerance, so the next version of Curl Coach will add, what I believe is the easiest way to track tolerance as part of charting a shot, and with that will come a new set of curling statistics and analysis to help teams improve both shot selection and shot execution.
I intend to continue to evolve Curl Coach to enhance the number of tools and abilities it provides to help coaches develop their teams and players. I would like to thank Bill for giving me this opportunity to talk about my journey (so far) and hope curlers everywhere take advantage of the off-season to recharge and, come the fall, get back to the ice ready for some great curling.
If you'd like to contact Stephen directly, his e-mail address is firstname.lastname@example.org and his web site is found at http://www.chatorr.ca/support/About_Curl_Coach.html! A purchase of the current version of "Curl Coach" puts you in line for all future additions and upgrades at no charge (that's like "free")!