Paradigm Shift: How a Princeton Co-Founded Startup is Changing Software Engineering
One of the main storylines of the past year has been the revolution that ChatGPT and other Artificial Intelligence platforms have brought to the software engineering process. Much of the attention has focused on how ChatGPT will help software engineers to become better, faster coders. However, there is another simultaneous revolution which poses to alter not just how effectively software engineers work, but the very nature of their work.
This past week I had the chance to speak to Abraham, an engineer at a software company. When I asked him how new machine learning innovations were affecting his work, his initial answer sounded familiar. He told me how initially he would simply “[put errors] into ChatGPT and it [would] tell [him] how to fix it; [and] it almost always works.” However, upon further elaboration, Abraham pointed out how “a lot of software engineering can [now] be automated” beyond simply fixing errors. Now in areas like “updating code [and] adding new features…automation is possible.” According to Abraham, generative AI is not only gas in software engineering’s tank – it’s positioned to take the driver’s seat.
After we spoke, I continued researching, looking deeper into what was really possible. I came across a company, Factory, which advertised a new, cutting-edge technology aimed at automating software development, design, documentation…in short, the entire software engineering process. The company was co-founded by two Princeton alums so I decided to reach out.
When, early this week, I spoke to Eno Reyes, co-founder of Factory, he described today’s state of affairs in software development in his own words. Today’s starting point, he claims, is a software development process that has “for a long time been very bespoke and artisanal, with every VP of Engineering having their own idea of what it means to build software.” Eno doesn’t have a problem with individuality or creativity for their own sake, but he does take issue with the disorganized way things currently work. Observing this problem led Eno to create his solution, Factory.
Factory offers to simplify the software development process to six main phases: ideation, planning, coding, testing, review, and documentation. Each of these phases is automated using a “droid” that specializes in the particular process. Factory’s Knowledge droid automates ideation by taking questions about code bases and projects, sending daily project updates with insights about the engineering team’s progress. Eno’s goal is to have this droid “act as a point of contact for the team.”
Factory’s Project Droid automates the planning phase, turning tickets in project management systems into well-specified requirements, and supporting the next phase: coding. The coding droid then turns the project management tickets into pull requests from the code base, relying on the work of the Project Droid to ensure proper conversion.
The reason for the next droid, the Test Droid, is simple, in Eno’s words: “good code needs to be tested.” For that reason, the Test Droid writes tests for every single pull request, keeping test coverage at 100%. In parallel, the Review Droid identifies bugs and security issues with every pull request, ensuring that your automated code is not just tested, but secure. Lastly, Factory’s Documentation droid documents the final product, the automatically merged code.
For the non-technical reader, the functions of each of these droids may seem complex, but, in reality, Eno’s mission is simple: “to create a technology that allows organizations to ship high quality code at the speed of their own thought”. A few years ago that would have sounded like magic, but, today, it is becoming a reality.