New approach to developing open source software
There's a lot more to developing superb open source (or proprietary) software applications than great coding.
That's what a group of undergrads at the prestigious US university, Massachusetts Institute of Technology (MIT) discovered when they enrolled for new Open Source Entrepreneurship course offered by MIT professor of electrical engineering and computer science Saman Amarasinghe.
Open source development projects often involve hundreds or even thousands of volunteer coders scattered around the globe. Some, like the Linux operating system, the Firefox Web browser, and the WordPress blogging platform become virtual household names - but there are thousands more than never amount to anything. The question is - could this be more the result of poor marketing than poor coding?
The new project-based course let the MIT undergrads not only lead the development of OSS and learn the technical skills required to complete their projects. They also learned the managerial skills required to initiate and guide their projects, including consulting with mentors, interviewing potential users to understand their precise needs and expectations, as well as writing a promotional plan for their application.
According to Amarasinghe, one of the factors behind the development of the course was the fact that many research projects in computer science spawn software that, even though it represents hundreds of hours of work by brilliant coders, never makes it out of the lab.
"Open-source projects that clean that software up, fill in gaps in its functionality, and create interfaces that make it easy to use could mean that researchers working on related projects, instead of building their own systems from scratch, could modify the code of existing systems, saving a huge amount of time and energy," he explained.
Before the class launched, Amarasinghe and his teaching assistant identified several MIT research projects that they thought could be the basis of useful OSS. But students were free to propose their own projects.
After selecting their projects, the students' first task was to meet with - or, in the case of the students who proposed their own projects, identify and then meet with - mentors, to sketch out the scope and direction of the projects. Then, for each project, the students had to identify and interview four to six potential users of the resulting software, to determine product specifications.
The students found that many of their preconceptions about the problem and their priorities regarding what would have to be done did not match those of the potential users. At the same time, some of the potential users they spoke to were working in fields that they were unfamiliar with, so they started to learn more about their problems, and sometimes found themselves thinking in completely new directions.
The third stage of the project was the establishment of a software development timeline, and at the end of the semester, as the projects drew to completion, the students' final assignment was the development of a promotional plan.
"The students got to think of the big-picture issues - how to build a community, how to attract other programmers, what sort of licensing should be used," Amarasinghe concluded.