UX / UI / Research / IxD / Illustration / IA
Rubbery Ducky
Case Study - 2020
An app that helps folks who are learning to code bridge the gap between absolute beginners and intermediate programmers.
Project summary
"Let the Rubber Duck debug."
The learning curve of developing constructs in coding or programming is steep. There are many platforms that help folks that are in the very beginning stages of learning - often referred to as the ‘hand holding period’. The platforms that are available after this period are stackoverflow and websites like it. They are helpful to get beginner developers ‘unstuck’. Unfortunately stackoverflow often involves a lot of searching for keywords and plugging in code that is not necessarily applicable to the problem. Collaborating with peers is important and helpful but explaining a specific issue can be time consuming.

Could a platform be created that would allow beginner programmers to problem solve? What if the platform had the ability to learn from the user - becoming smarter and more specific to the user the more it was used.
Project scope

I came up with a concept, did user research to make sure the product was viable, created affinity diagrams, did rapid prototyping, paper prototyping, wireframing, tested the product and created high fidelity mockups to test. As a further push for this project I researched how to program Rubber Ducky with voice activation and how to connect it to the Google AI API.
“Basic syntax is just the beginning. After the handholding period is over - that’s when the learning really starts.”
Problem

There are many ways to solve a programming or development problem. There are different standards across languages and always different paths to a similar outcome. The idea of this can leave a beginner programmer frozen, not knowing which way to get out of the most simple circumstances. This stage of programming is known as the ‘desert.’
Process
After coming up with the concept of Rubber Ducky I did research on how many other resources were available and what level of programmer those programs helped with.
Affinity Diagram

I used the affinity diagram process to come up with the concept for this application by writing out everything that was associated with the topic I was given. Once I came up with an idea I organized and reorganized my cards to get a solid overview of what the platform would involve.
Relational pillars

The notes were grouped into pillars. These pillars were categories. Within the categories the concepts are ordered in importance.
User flow

The most important user flow in this application is in the onboarding process. This is where the program is introduced to a users speech by asking them to repeat sentences. It is also where the user becomes familiar with how the platform works.
The core user flow that I did was for the circular pattern of the user going through the program after onboarding.
Wireframe iterations

My process for wireframing includes many iterations, this is my final mock up before before rapid prototyping. This is the design that the above user flows are based on.
Paper protoype / Rapid prototyping
User testing
The first round of user testing was done with 20 people, half of which knew how to code(at various levels) and the other half did not know how to code.

The second round of user testing was done with the 10 people that had experience with programming. This involved a moderator and an observer. The observers notes were then translated into information that drove the changes for the next round.

After the second round of testing the product received an overhaul - the colour scheme changed as well as the name and the logo to become more playful.
Version of entry points
v1
Final
The third round of testing was done with the 10 people, 5 of these people were also in the second round of testing.
v1
v2
v3
v4
Final design gallery
Main user journey
Onboard learning
Select screens
Full prototype
User Usage
Outcome
My goal for this case study was to flush out the platfrom as throughly as I could within the timeframe. My conclusion for this platform design is that the platforms UI by the last round of testing was yeilding a majority higher positive response results than the initial design. I was happy with this outcome. If this product were to go to programming the MVP version would need to connect to an API that existed or created of libraries of snippets of code from different accessible languages.
If you have made it this far thank you for reading!