Continuous Delivery Pipelines for Teaching Agile and Developing Software Engineering Skills

Full Text (PDF, 1346KB), PP.17-26

Views: 0 Downloads: 0

Author(s)

Hector F. Cadavid 1,*

1. Decanatura de Ingeniería de Sistemas, Escuela Colombiana de Ingeniería, Bogotá, Colombia

* Corresponding author.

DOI: https://doi.org/10.5815/ijmecs.2018.05.03

Received: 8 Dec. 2017 / Revised: 29 Dec. 2017 / Accepted: 15 Jan. 2018 / Published: 8 May 2018

Index Terms

Software Engineering, Agile Teaching, Software Engineering Education, SDLC Teaching

Abstract

The amount of research reports on how to properly teach, in conjunction with technical topics, agile skills in undergraduate courses is a good indicator of how important are such skills in academy and industry nowadays. Such investigations have addressed challenges like how to engage students with agile principles and values without getting distracted by technology, or how to balance theory and practice to get students to meet learning objectives through practical experience. This paper intends to contribute to this research topic by describing new strategies for our particular needs for teaching agile in an introductory software engineering course, including better evaluation criteria for agile values and practices, and higher quality projects. The described strategies include a new approach for theoretical, laboratory, and project sessions arrangement, as well as a ‘Continuous Delivery Pipeline’ adapted to our educational context, with very promising results.

Cite This Paper

Héctor F. Cadavid, "Continuous Delivery Pipelines for Teaching Agile and Developing Software Engineering Skills", International Journal of Modern Education and Computer Science(IJMECS), Vol.10, No.5, pp. 17-26, 2018. DOI:10.5815/ijmecs.2018.05.03

Reference

[1]Orit Hazzan and Yael Dubinsky. Teaching a software development methodology: the case of extreme programming. In Software Engineering Education and Training, 2003.(CSEE&T 2003). Proceedings. 16th Conference on, pages 176–184. IEEE, 2003.
[2]Joe Bergin, James Caristi, Yael Dubinsky, Orit Hazzan, and Laurie Williams. Teaching software development methods: the case of extreme programming. In ACM SIGCSE Bulletin, volume 36, pages 448–449. ACM, 2004.
[3]Görel Hedin, Lars Bendix, and Boris Magnusson. Teaching extreme programming to large groups of students. Journal of Systems and Software, 74(2):133–146, 2005.
[4]Jan-Philipp Steghöfer, Eric Knauss, Emil Alégroth, Imed Hammouda, Håkan Burden, and Morgan Ericsson. Teaching agile: addressing the conflict between project delivery and application of agile methods. In Proceedings of the 38th International Conference on Software Engineering Companion, pages 303–312. ACM, 2016.
[5]Viljan Mahnic. A capstone course on agile software development using scrum. IEEE Transactions on Education, 55(1):99–106, 2012.
[6]Martin Kropp and Andreas Meier. Teaching agile software development at university level: Values. Management, and Craftsmanship, CSEE&T, 2013.
[7]Václav Rajlich. Teaching developer skills in the first software engineering course. In 2013 35th International Conference on Software Engineering (ICSE), pages 1109–1116. IEEE, 2013.
[8]Christiane Gresse Von Wangenheim, Rafael Savi, and Adriano Ferreti Borgatto. Scrumia an educational game for teaching scrum in computing courses. Journal of Systems and Software, 86(10):2675–2687, 2013.
[9]Adler Diniz De Souza, Rodrigo Duarte Seabra, Juliano Marinho Ribeiro, and Lucas E da S Rodrigues. Scrumi: a board serious virtual game for teaching the scrum framework. In Proceedings of the 39th International Conference on Software Engineering Companion, pages 319–321. IEEE Press, 2017.
[10]Maria Paasivaara, Ville Heikkilä, Casper Lassenius, and Towo Toivola. Teaching students scrum using lego blocks. In Companion Proceedings of the 36th International Conference on Software Engineering, pages 382–391. ACM, 2014.
[11]Martin Kropp, Andreas Meier, and Robert Biddle. Teaching agile collaboration skills in the classroom. In Software Engineering Education and Training (CSEET), 2016 IEEE 29th International Conference on, pages 118–127. IEEE, 2016.
[12]Christoph Matthies, Thomas Kowark, Matthias Uflacker, and Hasso Plattner. Agile metrics for a university software engineering course. In Frontiers in Education Conference (FIE), 2016 IEEE, pages 1–5. IEEE, 2016.
[13]Miroslaw Ochodek. A scrum-centric framework for organizing software engineering academic courses. In Towards a Synergistic Combination of Research and Practice in Software Engineering, pages 207–220. Springer, 2018.
[14]Ivar Jacobson, Grady Booch, James Rumbaugh, James Rumbaugh, and Grady Booch. The unified software development process, volume 1. Addison-wesley Reading, 1999.
[15]Andrea A Janes and Giancarlo Succi. The dark side of agile software development. In Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software, pages 215–228. ACM, 2012.
[16]Jan-Philipp Steghöfer, Håkan Burden, Hiva Alahyari, and Dominik Haneberg. No silver brick: Opportunities and limitations of teaching scrum with lego workshops. Journal of Systems and Software, 131:230–247, 2017.
[17]Christoph Matthies, Thomas Kowark, Keven Richly, Matthias Uflacker, and Hasso Plattner. Scrumlint: identifying violations of agile practices using development artifacts. In Cooperative and Human Aspects of Software Engineering (CHASE), 2016 IEEE/ACM, pages 40–43. IEEE, 2016.
[18]Guillaume Derval, Anthony Gego, Pierre Reinbold, Benjamin Frantzen, and Peter Van Roy. Automatic grading of programming exercises in a mooc using the inginious platform. European Stakeholder Summit on experiences and best practices in and around MOOCs (EMOOCS’15), pages 86–91, 2015.