Abstract
Reflection is an important part of agile software processes as witnessed, e.g., by the Sprint Retrospectives in Scrum or by the various learning feedback loops in XP. Engineering education also emphasizes the importance of reflective practice, e.g., in Kolb’s learning cycle and Schön’s reflection-in/on-action. Our contribution in this chapter is a toolkit for reflective practice that shows how reflection can be used by software engineering students for two purposes: to reflect on the application of a software process and to reflect on their learning process. In order to help students understand the purpose of reflection and how to approach reflection, we follow a cognitive apprenticeship approach in which the teachers reflect about the events in the course, their own goals, and how they are aligned with the teaching. Students are asked to reflect during supervisions and as part of their written assignments from the very beginning of the course. We thus combine a meta-cognitive approach where reflection is taught as a learning strategy with a common software engineering practice of continuous improvement through reflection. We evaluate the reflective model and a course design based on it through the student, teacher, and theoretical lenses based on empirical data.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Anderson, L., Krathwohl, D., & Bloom, B. (2001). A taxonomy for learning, teaching, and assessing: A revision of Bloom’s taxonomy of educational objectives. Longman.
Babb, J., Hoda, R., & Nørbjerg, J. (2014, July). Embedding reflection and learning into agile software development. IEEE Software, 31(4), 51–57. https://doi.org/10.1109/MS.2014.54.
Basili, V. R. (1993). The experience factory and its relationship to other improvement paradigms. In European Software Engineering Conference (pp. 68–83). Springer.
Basili, V. R., & Caldiera, G. (1995). Improve software quality by reusing knowledge and experience. MIT Sloan Management Review, 37(1), 55.
Biggs, J. (1996). Enhancing teaching through constructive alignment. Higher Education, 32(3), 347–364.
Bourque, P., Fairley, R. E., et al. (2014). Guide to the software engineering body of knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society Press.
Brookfield, S. (1995). Becoming a critically reflective teacher. San Francisco: Jossey-Bass.
Brown, J. S., Collins, A., & Duguid, P. (1989). Situated cognition and the culture of learning. Educational Researcher, 18(1), 32–42.
Bull, C., & Whittle, J. (2014, July). Supporting reflective practice in software engineering education through a studio-based approach. IEEE Software, 31(4), 44–50.
Burden, H. (2017). DAT255 Software Engineering Project, HT2014. Retrieved March 29, 2018, from https://github.com/hburden/DAT255/tree/ht2014.
CMMI Product Team. (2010). CMMI for development, version 1.3 (tech. rep. No. CMU/SEI-2010-TR-033). Software Engineering Institute, Carnegie Mellon University.
Dingsøyr, T. (2005). Postmortem reviews: Purpose and approaches in software engineering. Information and Software Technology, 47(5), 293–303.
Dingsøyr, T., Moe, N., Schalken, J., & Stålhane, T. (2007). Organizational learning through project postmortem reviews—An explorative case study. Software Process Improvement, 136–147.
Dresch, A., Lacerda, D. P., & Antunes, J. A. V. (2014). Design science research: A method for science and technology advancement. Springer Publishing Company, Incorporated.
Edström, K. (2008). Doing course evaluation as if learning matters most. Higher Education Research & Development, 27(2), 95–106. https://doi.org/10.1080/07294360701805234. eprint: http://dx.doi.org/10.1080/07294360701805234.
Edwards, S. H. (2004). Using software testing to move students from trial-and error to reflection-in-action. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, SIGCSE ’04 (pp. 26–30). Norfolk, Virginia, USA: ACM. https://doi.org/10.1145/971300.971312.
Elmgren, M., & Henriksson, A. (2010). Universitetspedagogik. Norstedts.
Freire, P. (2000). Pedagogy of the oppressed: 30th anniversary edition. Bloomsbury Academic.
Gunn, C. L. (2010). Exploring MATESOL student ‘resistance’ to reflection. Language Teaching Research, 14(2), 208–223.
Hazzan, O. (2002). The reflective practitioner perspective in software engineering education. Journal of Systems and Software, 63(3), 161–171.
Hazzan, O., & Tomayko, J. E. (2004, March). Reflection processes in the teaching and learning of human aspects of software engineering. In 17th Conference on Software Engineering Education And Training, 2004. Proceedings (pp. 32–38). https://doi.org/10.1109/CSEE.2004.1276507.
Huber, G. P. (1996). Organizational learning: A guide for executives in technology-critical organizations. International Journal of Technology Management, 11(7–8), 821–832.
Jørgensen, M., & Gruschke, T. M. (2009). May). The impact of lessons-learned sessions on effort estimation and uncertainty assessments. IEEE Transactions on Software Engineering, 35(3), 368–383. https://doi.org/10.1109/TSE.2009.2.
Kniberg, H., & Cockburn, A. (2013). Elephant Carpaccio exercise. Retrieved October 30, 2017, from https://docs.google.com/document/d/1TCuuu8Mm14oxsOnlk8DqfZAA1cvtYu9WGv67YjsSk/pub.
Kolb, D. A. (2014). Experiential learning: Experience as the source of learning and development (2nd ed.). FT Press.
Loughran, J. J. (2002). Effective reflective practice in search of meaning in learning about teaching. Journal of Teacher Education, 53(1), 33–43.
Lyons, N. (Ed.). (2010). Handbook of reflection and reflective inquiry—Mapping a way of knowing for professional reflective inquiry. New York, NY: Springer.
Maham, M. (2008, August). Planning and facilitating release retrospectives. In Agile 2008 Conference (pp. 176–180). https://doi.org/10.1109/Agile.2008.60.
Mann, S. (2005, July). The language teacher’s development. Language Teaching, 38, 103–118.
Mathiassen, L., & Purao, S. (2002). Educating reflective systems developers. Information Systems Journal, 12(2), 81–102.
Mayer, I. S., Carton, L., de Jong, M., Leijten, M., & Dammers, E. (2004). Gaming the future of an urban network. Futures, 36(3), 311–333.
Pettersson, F., Ivarsson, M., Gorschek, T., & öhman, P. (2008, June). A practitioner’s guide to light weight software process assessment and improvement planning. Journal of Systems and Software, 81(6), 972–995. https://doi.org/10.1016/j.jss.2007.08.032.
Rother, M. (2017). Kata to grow–A simple, free exercise to help teach scientific thinking [online]. Retrieved October 30, 2017, from https://www.katatogrow.com/.
Schön, D. A. (1983). The reflective practitioner: How professionals think in action. Harper torchbooks. Basic Books.
Sein, M. K., Henfridsson, O., Purao, S., Rossi, M., & Lindgren, R. (2011). Action design research. MIS Quarterly, 35(1), 37–56. Retrieved from http://www.jstor.org/stable/23043488.
Shkedi, A. (2000). Educating reflective teachers for teaching culturally valued subjects: Evaluation of a teacher-training project. Evaluation & Research in Education, 14(2), 94–110.
Smith, R. A. (2001). Formative evaluation and the scholarship of teaching and learning. New Directions for Teaching and Learning, 2001(88), 51–62.
Steghöfer, J.-P., Burden, H., Alahyari, H., & Haneberg, D. (2017). No silver brick: Opportunities and limitations of teaching Scrum with Lego workshops. Journal of Systems and Software, 131, 230–247.
Steghöfer, J.-P., Knauss, E., Alégroth, E., Hammouda, I., Burden, H., & Ericsson, M. (2016, May). Teaching agile—Addressing the Conflict between project delivery and application of agile. In Software Engineering Education and Training Track, the 38th International Conference on Software Engineering, Austin, TX.
Tomal, D. R. (2010). Action research for educators. Rowman & Littlefield Publishers.
Turns, J., Sattler, B., Yasuhara, K., Borgford-Parnell, J., & Atman, C. J. (2014). Integrating reflection into engineering education. In Proceedings of the ASEE Annual Conference and Exposition. ACM.
Villalón, J. A. C.-M., Agustín, G. C., Gilabert, T. S. F., Seco, A. D. A., Sánchez, L. G., & Cota, M. P. (2002). Experiences in the application of software process improvement in SMES. Software Quality Journal, 10(3), 261–273.
Wang, A. I., & Stalhane, T. (2005, April). Using post mortem analysis to evaluate software architecture student projects. In 18th Conference on Software Engineering Education Training (CSEET’05) (pp. 43–50). https://doi.org/10.1109/CSEET.2005.42.
Wenger, E. (1998). Communities of practice: Learning, meaning, and identity. Cambridge University Press.
Williams, L., & Cockburn, A. (2003, June). Agile software development: It’s about feedback and change. Computer, 36(6), 39–43. https://doi.org/10.1109/MC.2003.1204373.
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Singapore Pte Ltd.
About this chapter
Cite this chapter
Burden, H., Steghöfer, JP. (2019). Teaching and Fostering Reflection in Software Engineering Project Courses. In: Parsons, D., MacCallum, K. (eds) Agile and Lean Concepts for Teaching and Learning. Springer, Singapore. https://doi.org/10.1007/978-981-13-2751-3_12
Download citation
DOI: https://doi.org/10.1007/978-981-13-2751-3_12
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-13-2750-6
Online ISBN: 978-981-13-2751-3
eBook Packages: EducationEducation (R0)