Cornell CS 5150, Agile, and Startups
For my final Fall semester at Cornell, I will work with Bill Arms again on CS 5150. This course is essentially about running projects first and software development second, and I’ve been guest lecturing for 3 years because I believe in helping our students grip that what you are building and why are the two key questions that should always be answerable when you work on software.
My passion for answering these questions comes from the experiences of both successful and failed projects. When projects go well, it is easy to feel as if they are time well spent. We fondly remember or forget the late nights and bad pizza. When projects fail (and especially when they take a long time to disentangle from), it saps the energy and life from everyone involved. Honing the ability to ask and answer the questions necessary to scope successful projects is the true craft skill that separates the good from the great in the software industry.
So, before we begin the Fall semester, I plan to think about how we teach our Masters students to function in a professional world that is evolving around them. Some of our students go to Microsoft, Google, Facebook, Lockheed Martin, and other large companies. These companies have both a short term and a very long term view on software development schedules. And some of our students graduate and work on startups that almost always take only the short term view. This year, CS 5150 will cover the broad spectrum of development methodologies (as always) but there will also be a new focus on Agile development methodologies in recognition that quick iteration product development has its place at Lockheed as well as in the startup community.
At the same time that we’re making the curriculum switch, the startup world is experiencing a shift in startup funding. A proliferation of smaller, Angel style seed investments with broader risk distribution (possibly driven by a lack of interest in overpriced equities, but that is another blog post) has begun to drive discussion in the venture capital community about whether the fundamentals of building a company have changed. Dave McClure argues that the cost of starting a company has declined and this should affect the investment approach. Glenn Kelman argues that the declining costs of software development are a minor incremental consideration. Fred Wilson at Union Square takes a different investment approach.
For our best professional students, I can help them learn the inflection points to modify their development schedule to fit any of these cases. Understanding how the professional engineer molds the definition of success (what you’re building and why) to the project risks and the schedule is a skill that most students don’t get to practice. CS 5150 lets them practice it in a controlled environment so that their next professional project has a greater chance of success.