You are on page 1of 18

SOFTWARE

ENGINEERING
Gradual Learning Process of Agile
Software Engineering
• First, learning in iterations allows the learners to focus on a smaller
part of the course content. This ability is important in the learning
process of complex ideas, such as software engineering. Such a
teaching process also encourages the instructor not to worry if not all
course topics and aspects are addressed at each stage. This is because
it will be possible to revisit these topics and add details in the next
iterations of the learning process.
• Second, short iterations allow learners to gradually improve their
understanding of the learning material, based on the previous lessons
and the actual software development in the studio, if it is carried out.
• Third, the practice of short iterations improves communication
between the instructor and the students. After each short iteration,
the instructor stops the teaching of new ideas (as we do now), has an
opportunity to hear the students’ voices (as we will do later in this
chapter), communicates with the students, and becomes familiar with
what is interesting for the students, how they understand the
material taught so far, and what bothers them. Based on new
understandings the instructor gains, he or she can consider how to
improve the continuation of the course. From the students’
perspective, this break enables them to share with the instructor
what topics they find interesting and relevant, what ideas are difficult
for them to grasp, and so on. Clearly, such a dialogue influences the
course’s atmosphere and inspires a culture that is motivated by a
shared goal.
• Fourth, if the course is accompanied by the development of a software
product in the agile approach, the end of each short iteration serves as an
opportunity to present to the academic coach and to the project customer
what has been accomplished during the last iteration. It is also an
opportunity to share with the instructor and the academic coach problems
in the development process (if any exist), and guided by the academic
coach, to sketch together the future road map of the development process.
• Fifth, short iterations define very clearly the timing for feedback and
reflective sessions. Lessons learned based on the iteration elicited in the
reflective process, as we will do later in this chapter, can start being applied
in the next iteration.
• Finally, in a very similar way to software developers in the industry, after a
short break dedicated to reflective sessions, feedback, and learning
processes, the learners return with new energy to the course in general,
and in particular to the development of the next iteration of the software
product, if one accompanies the course learning
Teaching and Learning Principle 4: Elicit
Reflection on Experience
• According to this principle, learners should be encouraged to reflect
on their process of learning the taught software development
approach. Reflection processes should not be limited to technical
issues, but rather should also address feelings, work habits, and social
interactions related to the software development process.
• Based on this principle, after each studio meeting the students are
asked to reflect on some aspect of the development process, such as
their role in the process, their experience with specific activities, and
their teamwork conception.
The Studio Meeting—End of the First
Iteration
• Till mid-semester, The students have developed one iteration in the studio and
have two more iterations to go in order to complete the first product release.
The first iteration lasted seven weeks and included the learning of the project
subject and development method and the definition and construction of the
project development environment.
• The second iteration, which starts at this meeting, lasts four weeks one week
for high-level design and three weeks for development work. The product will
be presented to the customer in the eleventh week of the semester.
• The third and final iteration of the product development, will include three
weeks one for high-level design and two weeks of development and will be
presented in the fourteenth and last meeting of the semester.
• This project timetable clearly reflects agility as it is applied in real-life
situations, from both the team members’ and the customer’s perspectives.
• According to this semester timetable, this meeting ends the first
iteration. The developed product is presented to the customer and
feedback is given on the accomplishment of the requirements.
• The presentation to the customer includes the acceptance tests of
those customer stories developed during the first iteration, measures
taken during the iteration, and presentations of the product from the
perspective of the role holders.
• Based on this presentation, the team receives feedback from the
customer and facilitates a reflective session which focuses on the
development process and product.
• This meeting is also the beginning of the second iteration: students
listen to the customer’s priorities for the second iteration
Intermediate Course Review and
Reflection
• In addition to the focused reflective session that takes place as part of the
studio learning, the end of the iteration is a good opportunity to facilitate
additional reflective processes that address also what has been studied
so far in the course. This section presents several reflective activities that
can be facilitated with the course participants. The activities can be
conducted with the academic coaches, with the students, and with the
instructor, based on the specific situation in which the course is taught.
• If the instructor participates in these reflective activities, it enables him or
her to hear the students’ voices, communicate with the students, and
become familiar with what they find interesting, how they understand
the material taught so far, and what bothers them. Based of such
interaction, the instructor can decide about the exact continuation of the
course teaching.
• The academic coaches who guide the students in their agile software
development methods have the opportunity to deepen their
understanding of the development process, including what goes on in
between the weekly meetings.
• The academic coaches would also be able to understand what
additional guidance the students need and what agile practices
should be further emphasized.
• The students, who should gain the most out of this reflective week,
will have an opportunity to summarize what they have learnt so far,
and to start the second course iteration based on this comprehensive
picture and their improved understanding.
• We divide the reflective tasks into four types. First, we present tasks
that can be performed with any groups of students (not necessarily
the teams which develop the software product in the studio). After
these tasks are carried out in groups, a discussion, in which all the
students who take the course participate, should be facilitated.
• The second set of activities should be conducted with the teams that
develop the software in the studio.
• The third set of activities can be performed with the teaching staff of
the course (instructors and academic coaches).
• The fourth set of activities can be performed individually by each of
the course participants. Each set of activities contains several
suggestions.
• The facilitators of the reflective sessions can choose the activities
that fit the specific teaching and learning environment, and of course
change them and add new activities.
Group Activities
• Summarize the main concepts learned so far in the course. Explain why
these are the main concepts in your opinion.
• Discuss connections between the topics you mentioned in Question 1.
• Illustrate the importance of the concepts you just chose. Illustrations can
be case studies, problems, success stories, failure stories, pictures,
applications to other domains, patterns in software development
processes, and more.
• Document the process the group goes through during the development
of these illustrations. How can this process be characterized?
• For each topic addressed so far in the course, describe situations that
have occurred in the studios. Compare the different stories. What is
common to all of them? In what ways do they differ?
• Analyze each topic discussed so far in the course within the HOT
Human, Organizational, and Technological analysis framework. What
lessons can you derive from such an analysis?
• If the group is composed of students from different development
teams, identify lessons that all the teams learned during the first
iteration of project development in the studio.
• What topics would you like to learn in the next course iteration?
• Review the topics to be learned in the continuation of this course
(look at the book’s Table of Contents). With respect to each topic,
suggest at least three questions for which you would like to get an
answer when the topic is learned.
• Summarize the main lessons you learned during this reflective
process.
Activities for the Development Teams
• Identify the three main activities performed by the team so far that
influenced positively the team performances. What characterizes these
activities? How is each of them connected to the HOT analysis scale?
• Identify the three main activities performed by the team that
influenced negatively the team performances. What characterizes
these activities? How is each of them connected to the HOT analysis
scale?
• As a team, select one lesson to be delivered to the other teams in the
course. This lesson should be derived directly from your analysis of
your agile development process in the studio. What is this lesson? Why
is it important? Did you consider additional lessons? Why did you
choose this lesson?
• Analyze the team interaction with the customer. Identify positive
aspects of this interaction and points that can be improved with
respect to this communication channel.
• Analyze the team interaction with the academic coach. Identify
positive aspects of this interaction and points that can be improved
with respect to this communication channel.
• Analyze connections between the activities you conduct in the studio
and the contents of the lectures. What connections should be
strengthened, in your opinion?
• Summarize the main lessons you learned during this reflective
process. How can they be applied in the continuation of the
development process?
Activities for the Teaching Staff—
Academic Coaches and Instructors
• The third set of activities is directed to the teaching staff of the course
instructors and academic coaches. The goal of these activities is to
increase the awareness of the teaching staff of the students’
perspectives on the course their understanding of the course in
general and their development process in the studio in particular and
to navigate the course continuation according to this understanding.
• It is important to dedicate a specific time for these activities. If time is
dedicated for these activities, their importance is highlighted and the
chances to enjoy their benefits increase.
• Identify the best activities the students performed in the studio
during the development process of the first iteration. Why, in your
opinion, were these activities performed well? Are these activities
connected to the material presented in the lectures?
• Identify the activities the students performed badly in the studio
during the development process of the first iteration. Why, in your
opinion, were these activities performed badly? Were these activities
connected to the material presented in the lectures? How can their
accomplishment be improved?
• How did the students interact as a development team during the first
iteration? Did they use the role scheme to improve communication? If
so, how can this communication be further supported? If not, why?
• Identify conflicts that arose between team members. What were their
sources? Were they solved? If so, how? If not, how can they be
solved? What activities can be performed with the students to solve
these conflicts?
• How did the students interact with the academic coaches during the
first iteration? Can this communication be improved?
• Identify the main characteristics of the students’ accomplishments as
a team. Analyze them within the HOT Human, Organizational, and
Technological analysis framework.
Reflective Tasks—Personal Work
• The following activities can be performed individually by each of the
course participants students, coaches, and instructors.
• What was the most influential event for you so far in the course? Why
do you characterize this event as the most influential? How is this
event connected to the HOT Human, Organizational, and
Technological analysis framework of software engineering?
• Summarize the main lessons you learned during the reflective
process you conducted in teams and individually.

You might also like