How to Build Prototypes as an Engineer
Building a prototype can determine the success or failure of a complex project
Ever wondered how the best software products evolve from good to great?
How top teams test out wild ideas without throwing tons of cash into a bottomless pit?
The magic word? Prototyping.
I am going to talk about
Why prototyping
How to craft an ideal prototype -UI vs backend projects
Step by step prototyping journey using a practical example
Best practices for prototyping
How YOU can make it your superpower!
Why Prototyping?
Efficiency: Imagine saving loads of time while still sparking innovation. Think of using a simple setup that does the job of a complex system just to show off the cool stuff your service can do. It’s all about the big picture, not the nitty-gritty.
Exploration: Prototyping lets you try, fail, and try again until you hit gold. Who knows? You might stumble upon something revolutionary.
Clarity: Ever played the game of "What do you really want?" with clients or bosses? Sketch out your ideas, and watch confusion turn into "Aha!" moments. It's like clearing fog with a breeze.
Feedback: Get a sneak peek into users’ brains early on. This goldmine of insights means you can tweak and polish before things get too real (and expensive).
Risk Management: It’s not about packing in a zillion features; it’s about nailing the right ones. Ever heard of building a bridge to the wrong island? That’s a no-go. Prototyping is your compass.
Crafting the Ideal Prototype:
Think of a prototype as your project’s highlight reel. It’s not the full movie but gets everyone buzzing with excitement. It is a cheat-code for getting a buy-in from your leadership.
When you try to search how to create prototypes everybody talks about UI mockups only. But in reality, the project could be anything. In fact, many projects for a backend engineer like me don’t even have a UI component.
Backend heavy projects can be a bit of a challenge when it comes to prototyping, especially when the outcomes are not clearly defined. The key is to focus on the concept you're trying to communicate rather than the intricacies of the system.
A. Prototype in a UI based project
No need for a fully working site or app. A slick mockup with clickable parts does the trick. Tools like Figma or Adobe XD let you whip up something that looks real enough to touch.
Remember, the goal is to communicate the concept, not to build a fully functional system.
B. Prototype for a backend project
Let us walk through a tricky project about improving up an e-commerce recommendation engine where the "how" part is fuzzy.
Step 1: Define the Scope
First, I'd outline the broad areas where the recommendation system could be enhanced - performance, personalization, or expanding the recommendation criteria. Without a clear direction, I'd choose personalization for the prototype, as it's often a key value driver.
Step 2: Data Gathering
I'd pull a small dataset of user interaction with the current recommendation system, focusing on user preferences, click-through rates, and purchase history.
Step 3: Rapid Prototyping Tool Selection
For this backend project, I'd use a lightweight framework like Flask for Python to quickly set up a mock version of the enhanced recommendation engine. The goal is not to build a fully functional system but to showcase the potential improvements.
Step 4: Building the Prototype
The prototype would implement a simple yet novel algorithm for personalization - perhaps incorporating machine learning techniques like clustering to group users based on their behavior and preferences. This prototype would run alongside the existing system, using the small dataset to compare recommendations generated by both systems.
Step 5: Visualization and Presentation
To make the results tangible for non-technical leadership, I'd create simple dashboards showing the differences in recommendations between the current system and the prototype. Key metrics would include potential increases in user engagement and estimated revenue uplift.
Step 6: Scheduling a Demonstration
I'd arrange a meeting with leadership to demonstrate the prototype and the dashboards. The presentation would focus on:
The potential for increased personalization with the new approach.
Comparative analysis highlighting the prototype's advantages.
A roadmap for scaling the prototype into a full-fledged solution, including anticipated challenges and resource requirements.
Step 7: Collecting Feedback
During the presentation, I'd encourage questions and feedback, focusing on understanding leadership's priorities and any additional concerns or objectives they might have for the project.
Best Practices:
Mission Statement: Pin down what you’re trying to figure out. A clear goal keeps you on track.
Tool Time: Pick the tools that fit your project like a glove. It’s about making life easier.
No need to be elegant: Early on, rough sketches or basic mockups are your best friends. They’re quick, changeable, and spark conversation.
Iterate Like Crazy: Each round of feedback makes your prototype stronger. Don’t fear change; embrace it.
Talk About It: Share your early works with the team, users, anyone really. Fresh eyes find new opportunities and pitfalls.
Making Prototyping Your Superpower:
Prototyping isn’t just one more thing to do; it’s a smarter way to work. It saves time, money, and a whole lot of headaches down the line.
Find the Time: Carve out moments in your schedule for prototyping. It’s an investment in doing it right.
The Right Attitude: See prototyping as your secret weapon in solving problems, not just a step in the process.
Feedback Is Your Friend: Each piece of feedback is a stepping stone to something better.
So, there you have it, folks! Prototyping is your path to creating software that doesn’t just function but dazzles. It’s about making smarter choices, sparking innovation, and, ultimately, building something that truly resonates.
Got a prototyping story or a trick up your sleeve? Drop it in the comments. Let’s inspire each other and keep pushing the boundaries of what’s possible.
This week’s must read blogs by fellow engineers:
How to level up as a Software Engineer despite having setbacks? - Part II (Sr. to Staff Eng) by
He shares his wisdom of many years of experience mentoring people getting promoted to senior roles.
5 Simple Steps to Write an Effective Self-Review by
Performance review season is going on in many orgs. Basma gets into the nitty gritty’s of write a killer self-review.
Importance of writing in the engineering industry by
andDon’t make the same mistake which I did - never focused on writing as an engineer. Don’t believe me, read from the two successful professionals I know.
Great article, Avneesh!
I like your emphasize on the importance of prototyping in the backend. It's not so common in backend, even though it's very useful to collect data and get early feedback.
From experience, prototyping helps greatly to discover feature gaps and refine requirements. It makes shipping to prod much easier and smoother.
Thank you so much for mentioning my article! I appreciate you. :)
Prototyping helps in discovering some unknowns early in the project along with some early feedbacks. It's a crucial step for a successful project execution.
Overall a great article offering valuable guidance for both beginners and experienced professionals.