This chapter provides some basic background on software development concepts and terminology. A wide range of concepts, from software life cycle to programming paradigms to software architectures, are defined. Everyone on your software development team, from junior system administrators to senior project managers, should be familiar with the concepts presented in this chapter. This will provide a "common vocabulary" for everyone on your team to communicate with. If you are starting a new project, or have a large number of new team members , you might want to hold a "Software Development 101" training day, covering some of the basic concepts discussed in this chapter. Besides using such a training day to build a common vocabulary, it also provides a great chance for team building. If you do have a training day, be sure to give everyone the opportunity for hands-on activities. You might want to start with projects using the sample programs contained in this chapter or perform other simple activities such as having everyone build their own web page.
If you are a manager or other non-developer who has never written code before, this chapter may seem very long and difficult to get through. We have kept it as simple as possible but did want to include sufficient background in one chapter to allow you to complete the rest of the book. For experienced developers, this chapter may contain a lot of basic information that can be safely skipped over. As this chapter is intended to be only an overview, all the concepts introduced, plus many more, are covered further in either the Process or Technology sections of this book.