If you have a passion for working in a team to build real software that connects to cutting-edge research and SW engineering tools, this class should be a fun ride. If you don’t want to spend a lot of time hacking, or you’ll be really busy with other classes, it may be a bad fit.
- “Class” and “Homework”: There will be no lectures, but we’ll hold one weekly planning meeting, and at least 2 more short status meetings (“scrums”, 20 minutes or so). The work for the lab will mostly be coding, and I will expect you to commit to doing your coding on a pretty regular schedule that ensures that people spend time together physically, at least doing pair programming, ideally sitting together in bigger groups on a regular basis. We can adjust that schedule as a group to work around people’s other commitments, but it will need to be a regular schedule once we settle on it.
- The Project: The intent of the lab is to (a) provide a very hands-on programming experience, and (b) work together to build some exciting open-source software we can be proud of. The specific goal will be to kickstart Public Health for the Internet (PHI), a peer-to-peer community watch tool for Internet security and performance. I wrote a “vision” paper on the topic you can look at if you want. But beware: that paper is targeted at an audience of researchers, to put forward the idea that this is challenging. By contrast, we’ll be trying to build very practical things to generate a community of users who will want easy-to-use, attractive software. I.e. we’ll hopefully be seeding the ground for this big vision with a set of attractive, working software.
- Platforms: The guts of the peer-to-peer communication and data analysis system will be built with our P2 research system, but we’ll also need to build things like AJAX-based web interfaces, Yahoo! Widgets, mashups, firewall log sniffers, spam filter sniffers, one-touch installers, auto-updaters, and undoubtedly more. We’ll use whatever open-source platforms make sense, to quickly prototype something real. Part of the experience will be to absorb these new platforms and tools.
- BOOK: The book I’m recommending is called “Practices of an Agile Developer” by Subramaniam and Hunt. You can order it from Cody’s or another local bookstore. It’s a light read, but sets the tone well for what we’ll be doing.
PS: Yes, I’ll be sitting with the team, coding too. I am a believer in the idea that architects should be coders.