Our Vision for CodeYam: Why Build A Software Simulator?
Why my team is building CodeYam, what we mean by "software simulator," and why this matters for software development.
Hi, I’m the cofounder of CodeYam, a software simulator. In this article, I share a bit of background on our vision for the future of software development and why we are building this tool.
CodeYam came from a combination of reflection on past experiences building and maintaining complex software products and exploring how AI unlocks a uniquely better workflow. As founders, we are obsessed with building high-quality software products, faster. I’ve spent nearly a decade focused on the product and go-to-market for new technology products including at Lyft and at other startups. My cofounder Jared has spent over 20 years building user-friendly products with new technologies, including as a Director at Pivotal Labs. We met at South Park Commons, and have been building together for over three years.
We realized that AI advancements make a more magical, J.A.R.V.I.S.-like tool that helps software teams craft quality products, faster, possible. And we see a bigger opportunity to help all software teams, including our own, with software simulation as a means of speeding up iteration, reducing costly errors and bugs, and making critical processes including testing and demos significantly smoother.
Historically, software teams have had to make tradeoffs between speed, quality, and scope. We believe with software simulation, you can significantly increase both speed and quality of software development. This reduces overhead for software organizations, and helps technical leaders, developers, and their teammates solve day-to–day problems more efficiently.
Why build and use a simulator?
Simulators are a powerful tool that speed up technology innovation and development. For example, the Wright brothers used a wind tunnel simulator to solve critical problems for their plane faster than the competition, becoming the first to fly. Today, companies like Tesla and Waymo use simulation to test how their self-driving cars might perform before they ever get on real roads. Even super hero Tony Stark had an AI assistant called J.A.R.V.I.S. to simulate and improve his Iron Man suit.
However, software simulators are not used by most companies building software, with or without AI, today. By “software simulator” we mean something that automatically reads your software’s code, and generates data to simulate different scenarios. This is because software simulations were nearly impossible to build without recent advancements in AI. It was not technically feasible to analyze code effectively enough to properly isolate, mock, and generate data to support simulation.
Even the biggest, most advanced software companies renowned for their quality sometimes have bugs hit production and impact their users. For modern software products with complex flows, it’s difficult to think through every single scenario and edge-case possible. When a bug is identified in production, often because users reported it after a bad experience, you then have to figure out the root cause and identify and push a fix or rollback. This can be stressful and time consuming; even when you drop everything to try to find and fix a bug, you’re likely digging into a change that was not intentional or anticipated, which can make figuring out what to do tricky.
CodeYam so far: our learnings from using software simulation to build CodeYam
While in R&D, our team has been dogfooding CodeYam and comparing our efforts to other tools we use to demo and test while in development. While it's still early days, we are already starting to notice improvements in everything from development, to team communication, to testing for quality assurance thanks to the software simulations. With CodeYam, we can easily understand the status of each development task.
By viewing a preview of a code change, with a visual simulation, it helps the developer working on that branch anticipate the impact and catch unexpected issues. We can click into the interactive view of certain changes, exploring interactive simulations that make testing and demoing faster.
The simulation lets us see how changes might appear to our software product’s users (which, in the case of CodeYam, is currently our team). We can switch user states to see how a new feature will look and act for different users based on their attributes.
Our next milestone for CodeYam: a demo for software developers
Soon we'll be sharing a demonstration of how CodeYam could help in the pull request review workflow experienced by software developers.
If you are excited about CodeYam and the future of software simulation, please get in touch. You can sign up for our waitlist, follow our CodeYam-specific blog on Substack, or reach out directly to me.