Startup engineering is critical to innovation. The skills required to effectively prototype, launch, and scale products are vital to engineers everywhere, from fledgling companies founded in dorm rooms to local mid-size companies to internal startups from multi-national tech giants. However, developing software in a startup environment poses unique engineering challenges. These challenges include making and justifying foundational architectural and technical decisions despite extreme uncertainty; rapidly prototyping and evaluating new ideas and features, while building minimum viable products; prioritizing engineering effort in severely constrained environments; and communicating effectively both within a small engineering team and with internal and external non-technical stakeholders. This course teaches the skills necessary to engineer successfully in a startup environment, through lectures, group projects, case study discussions, and guest speakers drawn from experienced, practicing startup engineers.
In this course, we will teach you the engineering skills necessary to succeed in the highly-uncertain environment associated with a technology startup. Our focus in this class is technical; that is, we will not be spending very much time on the business side of the startup equation (though given how much business drives engineering goals, of course we will not completely ignore it!). If you are instead interested in the entrepreneurship side of the equation, we encourage you to consider 15-390, Entrepreneurship for Computer Scientists.
This class will consist of:
- Lectures. Lectures will cover technical content, and be delivered by the professors or other instructors.
- Guest lectures and panels. We will hear from from practicing software engineers, technical and non-technical startup cofounders, and other individuals with practical expertise.
- Recitation. TAs will lead recitation, which consists of activities designed to help you apply your knowledge practically and prepare for the homework.
- Homework assignments. For the first half of the course, you will practice the skills we learn in class by working on in assigned teams on a made-up startup, "Dronuts." Most of this work will be structured as a series of agile-style sprints, to simulate as much as possible the real startup experience.
- A project. For the second half of the course, you will use your new skills to design and implement an original startup idea. Don’t worry if you don't have one; we'll help you to develop a new idea, or connect founders who have startup ideas to co-founders who are excited to help with them.
There will be one midterm exam. There will be no final exam; instead, you will present your final project.