About universities and open source projects, and why they go together.
We want to teach technology in university.
So far this has meant teaching programming basics. Which is good, everyone needs to know how to write a little code. It's like teaching chemistry to doctors.
But there's so much more to technology. There's a whole spectrum of activities needed to make software (the code) become useful and responsible to humanity.
There's nowhere to go to learn how to create a standard. Or how to write a great bug report. Or how to explain stuff to users, and feed back what we learn into the design of the product.
How about the full spectrum of possible products? What recipes haven't we tried?
We can even teach how to be creative. There are processes for this. Software design isn't different from any other kind of design.
University should not only be about student projects. We should give students experience with the real thing, production software, used by actual people. When you make changes you can break users. Let's teach the next generation of developers how not to do that. Again, there are techniques and methods for this. We've been around this block.
University has a role to play in software. These are our most long-lived institutions. People should come in and out of university all through their lives. The projects we work on when we're students can be the ones we continue to work on in our careers, when we take a sabbatical and when we retire. We should be constantly sharing and recycling the knowledge we gain.
Education has been struggling to find a role in technology, but to me, the role is very clear. Teaching, through practice, and research -- developing new knowledge.
Every university should host an open source project. It should be a process that lasts decades, spans generations. The goal is two-fold: Add to our technology, and to develop better developers.