Projects

Component reuse and snippet remix

My current work looks at the contested space between the extremes of “free and open” and “proprietary and closed” models of software development. Most individuals and organizations don’t have the ideological luxury of choosing one of these positions, and instead must work with the constraints and resources available. This middle ground, which I call “hybrid source,” is where the bulk of professional software developers work. They often use the web and sometimes use open source components, but they usually don’t share their own software assemblages. Hybrid source offers a site of cultural production to test claims about sharing of knowledge and transnational circuits, to investigate the effects of novel computational tools on how software is constructed, and to study the entanglement of social and computational systems.

Agile Software Development

Early this century, the Agile software processes emerged and became popular among industrial software developers. Agile is best understood as a family of software process models and development techniques that include User stories, pair programming, test-driven development, retrospectives, Extreme Programming, and Scrum. Family members differ in emphasis and scope. For example, Extreme Programming is primarily concerned with implementation activities, while Scrum is primarily concerned with management. Agile processes are iterative and incremental, where requirements, architecture, testing, implementation, documentation and other activities happen in parallel. (In contrast, a software process that is phased completes requirements engineering before moving on to design, and so on.)

Leave a Reply