ABSTRACT

A free and open source software (FOSS) project is distinguished by a development methodology that combines agile techniques with high levels of interaction among developers and users. This chapter introduces the key ideas behind FOSS development, including

agile techniques, the use of frameworks, code reading, documentation, and teamwork. Two types of FOSS projects, which we call client-oriented and community-

oriented projects, are characterized in this chapter. Participating in a clientoriented project requires a personal level of communication with team members and users. Participating in a community-oriented project requires the use of a different set of communication channels and conventions. By completing this chapter, readers should be prepared to begin working on

a client-oriented FOSS project team or contributing to an ongoing communityoriented FOSS project. The remainder of this book provides guidance for continuing that effort and making a real contribution to an ongoing FOSS project.