Post Mortem Discussion
Check out photos of this project
Check out architectural diagrams of this project
What was the problem to be solved?
The Pittsburgh Pirates wanted to give their strength and conditioning staff a way to track, measure and correlate qualitative and quantitative data to their athlete's on-field performance.
For example, they wanted to see if their training regimen and guidance translated to on-field performance.
What was the proposed solution?
Gunner Technology proposed a Progressive Web App that could be used by trainers, managers and players.
General Managers, for example, would have an admin level, read-only look into the data with the ability to create graphs and charts.
The trainers could create qualitative questionnaires such as recovery survey which would rank players based on their answers to the questions.
For example, a player who answers "A" on the question: How many of hours of sleep did you get last night?
A) 7 or more
B) 5-7
C) 3-5
D) Less than 3
Would get four points (3 for B, 1 for C and 0 for D).
The trainers could customize the scoring and create as many surveys as they wanted.
The players could take these on their own, or the trainers could enter responses for them.
Similarly, the app would allow the trainers to enter players training data such as 40 yard dash time and bench press numbers.
Gunner would then build a back-end parser that would consume data from Stats, Inc and tie it to each player.
What challenges arose during the project?
The main challenge was coming up with a clean UI that would allow players and trainers to fill in the information extremely quickly.
The players are not happy about any extra work so any sort of impediment would irritate them.
Also, it was a somewhat political balance because the app could potentially hurt the trainers who we were working with to build the application.
What if there was no correlation between their advice and performance? Or worse - an inverse correlation.
Finally, this was in the early days of PWAs so getting the app to function in areas without data reception was tricky.
What was the technical approach to the project?
Gunner proposed a PWA because the app needed to function on a slew of different devices: Desktops, laptops, projectors, TV screens, phones, tablets, etc.
For design, the team used the Bootstrap UI Design Framework, which it used to provide a user experience similar to Twitter.
Gunner also built-out a leaderboard to entice the players into wanting to do the surveys to compete with one another.
On the backend, Gunner went Serverless with node AWS Lambda, DynamoDB and Kinesis.
We relied on the Open Source D3 JavaScript library to generate the charts and graphs.
What was the project management approach to the project?
Gunner used an Agile Scrum approach to this project with two, one-week Research Sprints to start the project followed by development sprints until completion.
Each development iteration lasted a week and was followed by a demo to stakeholders who offered consistent feedback and guidance.
What did you learn from working on this project?
The stakeholders were some of the best Gunner has worked with.
They bought into the Agile process even though they were new to it and were involved every step of the way.
They understood cost-implications of feature requests and how to balance good-enough vs perfection.
From this, the team learned the importance of getting buy-in from the client with a project management approach.
How did this project benefit the client?
Gunner is under an agreement to not share the results of the application, but, the Pirates record before and after the launch of the app support its effectiveness.
Why was Gunner selected for this project?
The Pirates were intrigued by the Gunner team's experience at ESPN.
Also, as former athletes, the Gunner team was able to communicate with the client and understand the requirements right away.
Who worked on this project?
What tools, techniques and methodologies were used on this project?
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams
DynamoDB is a nonrelational database for applications that need performance at any scale
CSS3 is the latest evolution of the Cascading Style Sheets language and aims at extending CSS2.1
Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications
Scrum is a framework for project management that emphasizes teamwork, accountability and iterative progress toward a well-defined goal.
Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more