During the semester, I did work on three projects: Butter, Popcorn Maker FCP, and TestSwarm for iOS. The following links lead to each blog post I wrote this semester.
- Butter: Bugs 256 and 390
- Butter: Bug 434 Status
- Butter: Bug 459
- TestSwarm for Popcorn on iOS
- DPS911 Release 4
- Butter: Bugs 434, 458, and 493
- Butter: Bug 463, the Undo Manager
- DPS911 Release 5
Lesson 1: It’s Not Just About Code
The first lesson I learned was that although code is important, it’s also equally important to be online. Using social media to talk about the work being done and increasing awareness in the community is key to the growth of the project.
It’s also important for the project to have a good structure that is easy to follow. People will be more likely to contribute to code that they can understand.
Second Lesson: Consistency
Working on an open source project requires consistency. Code often changes so quickly that what was working today will likely be broken tomorrow. It’s also important to always blog and use Twitter, IRC, and the other forms of communication used in different projects.
Third Lesson: Plan and Execute
Ideas are good, but planning and execution is more important. When there is an idea that people are unsure of, or one that may cause many changes, breaking it down into smaller chunks and iterating on it can quickly reveal how viable it is.
Fourth Lesson: Organization
Being able to track what needs to be done, the state of each task, and who is doing what is extremely important. This is where Lighthouse and GitHub come in. Lighthouse not only keeps everything organized, but we can look at how long, on average, tickets take to complete, how long reviews take, and how often bugs delay estimated completion times. All of these details can help the planning of the project in the future: better estimates, and a better a idea of what has worked and what hasn’t.
I am very glad that I was able to take this course and work on Butter, Popcorn Maker FCP, and TestSwarm for iOS. I learned how valuable blogging and communicating with the community is. I blogged and tweeted much more in these past four months than I ever have, and I plan to do more. Making more use of Lighthouse and GitHub this semester also gave me good insight into tools that I can use in future projects that I create. Although this course has come to an end, I still plan to do the work needed in order to land the UndoManager in Butter.
This experience has been great; every programming student should take Dave Humphrey‘s open source classes.