Formulating engineering challenges and problem statements
One of the most valuable learning experiences I ever had in my life was during my Gracie ICP certification training. I learned that how you frame a question for a lesson made a huge impact on whether your students would ever absorb the material. It made so much sense that I could not help but to adopt it for software engineering and communicating problems and solutions. I would like to share a useful format that I've started to refine since going through the Gracie ICP in the hopes that other engineers can find it useful.
Context:
Challenge:
Current workflow (implication):
Possible solutions (pros/cons):
Solution created:
Business impact:
This is actually a format that I use when I'm thinking of or presenting a hackathon project or proposing a creative solution to a current problem. A key presentation detail that isn't very obvious is that the language and terminology used to outline everything should be understandable by the lowest common denominator of your audience, which can possibly include the lay person outside of tech. This is to minimize the barrier to entry for the audience to understanding what you are trying to communicate. Here is a fleshed out example.
Open Fitness Culture
Context: The fitness industry contains a lot of products that are fads or have paid promoters making exaggerated claims that over promise and under deliver in results. Old trends get recycled as new and beautiful models are used to misrepresent results to the population.
Challenge: As a consumer, it is exceedingly difficult to determine how effective an exercise program would be for you since you are unable to determine if the testimonials are real. This can be a problem because not only do you not know if the testimonials you see are real, but you may have the wrong impression about what your progress would look like compared to what they actually would be in reality. These issues often times cause people to quit out of frustration and not having the right expectations.
Current solutions(implications):
- Just tell people to suck it up and believe and achieve (if people quit it's their fault).
Possible solutions (pros/cons):
- Make real people video vlog their everyday journey with the program
- Pro:
- adds relatibility
- good story
- definitive proof
- Con:
- hard to get people to do
- hard to consume
- Pro:
- Gather up written testimonials with before and after pics
- Pro:
- easy to do
- easy to read if you can trust the testimonial
- Con:
- issue of paid testimonial
- no substantial material on expected progress
- Pro:
- Make a video live streaming service that is specifically intended to live stream workout programs and people's everyday participation in them. Use those live stream and recordings to be proof of the workouts, before and after transformation between dates to be the expected results, and the workout participant to be the example for other people like him/her.
- Pro:
- Allows optimal relatability as consumer can look at live or recorded live journey of someone with similar attributes as him/her.
- Definitive proof due to the live streaming nature of the workouts and gives a reproducible schedule.
- Allows the best set up of expectation of progress since someone with matching attributes is used as an example benchmark for your current rate of progress.
- Allows new comers to create workout programs that can be repeated and reproduced with results of various people to either validate or discredit a workout program.
- Con:
- Requires significant infrastructure and engineering work.
- Might be hard to get people to do
- Pro:
Solution created: Live streaming platform specifically intended for working out with features of monetizing workout programs through advertisement and paid sponsorships. Features quick filtering by results, timeframe, level of fitness, and body weight/height.
Business impact:
- Consumer win:
- Get a potentially infinite number of workout programs with results viewable by people just like them who have tried the programs before them.
- New trainers who want to make a niche or who have unique programs to offer have a platform to show the proof as to their effectiveness.
- Maximize the benefits of being held accountable for working out and being examples for future workout people
- Business win:
- Carve out niche market in the health tech industry by being a pioneer
- Great platform for sponsorship and advertisement
- Ability to branch out to other fields/discipline where consistent practice and reproducible programs would be valuable
- Everyone win:
- Expanding what's possible with new emerging ways to use technology
- Good platform for people to make friends and share ideas with each other
From this example you can see, that I used very little tech terminology, not only because it wasn't necessary to imagine what was possible, but because it is not relevant to the people I would be pitching this tech solution to. In fact, I would venture a guess that a lot of your interactions as an engineer could go even better if you refrain from relying on tech specific terminology.
When I started to train Gracie Jiu-Jitsu and Judo, and after I learned the fundamentals and started to execute them proficiently, I thought the biggest impact I could make to my martial arts career was to dive deeper and deeper into more advanced and situational techniques so that way I can display my prowess and my experience. What I realize now is that it's my communication skills that would make the biggest impact on my martial arts career. Software engineering is not that different. It can be super tempting to only want to dive deeper and deeper in tech, to show off, but sometimes it's good to keep in mind that no one cares about you. They care what you can do for them and your communication skills are your most valuable asset when you want to show what you can do for people.