Introduction to Agile Software Development

  • Orit Hazzan
  • Yael Dubinsky
Part of the Undergraduate Topics in Computer Science book series (UTICS)


What is agile software development agile software development? Why is an agile perspective on software engineering needed? What are the main characteristics of agile software development? What can be achieved by agile software development processesagile ? Does agile software development form a pleasant and professional software development environment? These are the main questions addressed in this introductory chapter of the book. After reading this chapter, not only will you gain some insights about agile software development in general, you will also understand the nature of agile software development and be able to clarify how it establishes a professional software development environment in which software engineers are able to express their skills and, at the same time, to produce quality software products. In the section that deals with the learning of agile software development, we launch the development of a software project, describe the studio studio as the development workplace, and explain the development schedule. The ideas presented in this chapter are further elaborated in the following chapters of the book.


Software Development Software Project Software Development Process Agile Method Development Task 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Davis RB,Davis RB Maher CA,Maher CA Noddings N Noddings N (1990) Constructivist views on the teaching and learning of mathematics. J Res Math Educ Monograph Number 4, The National Council of Teachers of Mathematics, Inc.Google Scholar
  2. Dubinsky Y, Hazzan O (2005) A Framework for teaching software development methods. Comput Sci Educ 15(4):275–296CrossRefGoogle Scholar
  3. Hazzan O (2002) The reflective practitioner perspective in software engineering education. J Syst Software 63(3):161–171CrossRefGoogle Scholar
  4. Hazzan O, Dubinsky Y (2003) Teaching a software development methodology: the case of extreme programming. In: Proceedings of the 16th international conference on software engineering education and training, Madrid, Spain, pp 176–184Google Scholar
  5. Hazzan O, Dubinsky Y (2006) Teaching framework for software development methods. Poster presented at the ICSE Educator’s Track, Proceedings of ICSE (International Conference of Software Engineering), Shanghai, China, pp 703–706Google Scholar
  6. Hazzan O, Dubinsky Y (2007) Teaching agile software development quality assurance. In: Stamelos I, Sfetsos P (eds) The agile software development quality assurance book. Idea Group Inc., pp 171–184Google Scholar
  7. Kuhn SKuhn S (1998) The software design studio: an exploration. IEEE Software 15(2):65–71CrossRefGoogle Scholar
  8. Smith JP, Smith JP diSessa AA, diSessa AA Roschelle J Roschelle J (1993) Misconceptions reconceived: a constructivist analysis of knowledge in transition. J Learn Sci 3:115–163CrossRefGoogle Scholar
  9. Tomayko JE Tomayko JE (1996) Carnegie-Mellon’s software development studio: a five-year retrospective. SEI conference on software engineering education
  10. Williams L, Williams L Kessler R,Kessler R Cunningham W, Cunningham W Jeffries R Jeffries R (2000) Strengthening the case for pair-programming. IEEE Software (July/August) 17:19–25Google Scholar

Copyright information

© Springer-Verlag London 2008

Authors and Affiliations

  • Orit Hazzan
    • 1
  • Yael Dubinsky
    • 2
  1. 1.Department of Education in Technology and Science TechnionIsrael Institute of TechnologyHaifaIsrael
  2. 2.Department of Computer Science TechnionIsrael Institute of TechnologyHaifaIsrael

Personalised recommendations