This document discusses integrating agile concepts throughout a university curriculum. It begins by explaining how the university initially focused on producing engineers with both computer and software engineering skills. It has since revised its goal to producing "adaptable engineers." Agile concepts are integrated into several core courses at the freshman, junior, and senior levels. Examples provided include using test-driven development, user stories, minimum viable products, and retrospectives. The document concludes by discussing plans to fill current gaps in sophomore courses and transfer agile concepts to other disciplines.
3. Where we started
• In 2005, we start to think how our students can differentiate
themselves from others
• Two-in-in approach
• Computer Engineers with Software Engineering skills
• In 2012, we revise our expected identity to be “an integrated
engineer”
• In 2016, we revise our expected identity to be “an adaptable
engineer”
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 3
4. Stakeholders
• Labor market
• Government
• Academic institutes
• Parents
• Instructors
• Students
• Alumni
• Professional Community
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 4
5. Where we integrate Agile Concept
• Freshman
• 305111 Fundamental Skills
• House building game
• Cup Water game (Ball point game)
• Planning Cards
• Real Users / Persona / Minimum Viable Product
• 305171 Computer Programming (Programming 101)
• TDD (2005 – 2014)
• Feature / User Story / BDD (2015) at function level
• Equivalent Partitioning / Boundary Value Condition
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 5
9. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 9
10. BDD at Function Level
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 10
11. # Feature: Find the maximum values
# Story:
# As a user, I want to determine which number is the
# greatest number, so that I can select the product with max profit
# Scenario 1: The first number is larger
# Given the first number is 50 and the second number is 40
# When the user applies the function
# Then the result should be 50
def test_first_number_is_larger():
assert max2(50, 40) == 50
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 11
12. Real Users / Persona / Minimum
Viable Product
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 12
13. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 13
14. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 14
15. Where we integrate Agile Concept
• Junior
• 305351 Computer System Engineering
• Maker project using Agile
• http://bit.ly/305351_2558
• Weekly Sprint
• Review
• Retrospective
• User Story
• BDD at story level
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 15
23. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 23
24. Where we integrate Agile Concept
• Senior
• 305471 Software Engineering
• Whole team approach to testing
• Impact Mapping
• Designing Test Coverage using Mindmap
• User Story Mapping
• Smallest Releasable Product / Minimum Viable Product
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 24
32. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 32
33. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 33
34. What’s Next
• Content-based Outcome-based
• Transferring Agile concept to different disciplines
• Fill the Sophomore gap
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 34
35. What’s Next (Preliminary Idea)
Year Semester 1 Semester 2
1 Individual Skills
- BDD
- Fundamental Test Design
Techniques
Team Skills
- Team Building
- Team Coordinating
- Teamwork
2 ??? ???
3 Professional Skills
- Preparation for Professionalism
Entrepreneurial Skills
- Technopreneurship
4 Real-world Project
Research Project
Additional Knowledge and Skills
Academic Progressive Track
Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 35
36. Oct 28, 2016 Integrating Agile Concept Throughout Curriculum 36