You are on page 1of 16

SOFTWARE

ENGINEERING
Agile Software Development in Learning
Environments
• University Course Structure This book presents a fourteen-week
course on software engineering from the agile perspective. The
course consists of two weekly lecture-hours and four weekly
studio-hours. The lectures aim at addressing the relevant topics
from a more theoretical yet active-based perspective. All the
students registered for the course attend the same lecture.
• In the studio, students are split into teams of ten to twelve
students, and each team develops a software project by an agile
process, supervised by an academic coach
• This course structure provides a pedagogical opportunity to develop
a software product through an agile process as well as to enhance
communication among the students and between the students and
the lecturer.
• Inspired by the agile approach that supports learning processes (see
Chapter 7, Learning), both the lecture series and the studio series are
composed of three iterations. With respect to the lectures, this
course structure implies that after the students gain a fundamental
understanding of some idea, new topics are presented and some
topics are re-reviewed based on this understanding. In the studio, the
course structure establishes an iteration-based software
development process.
Teaching and Learning Principles
• These principles are presented as pedagogical guidelines for the
teaching of any software development approach and can be
applied in both academic and industrial settings. For each teaching
and learning principle, we elaborate its general pedagogical merit
and how it is implemented when the agile approach is taught.
Teaching and Learning Principle1: Inspire
the Software Development Approach
• This is a meta-principle that integrates several of the principles
described later on and, at the same time, is supported by them. It
suggests inspiring the software development approach that is
taught instead of lecturing about it.
• The application of this principle is expressed mainly by active
learning, on which the next principle elaborates. In addition, it is
reflected in the teaching environment.
• More specifically, active learning-based lessons should take place
at a site that enables the actual performance of the software
development approach.
Let the Learners Experience the
Software Development Approach
• This principle is derived directly from the previous one. In fact, both
principles stem from the importance attributed to the learners’
experimental basis, which is essential in the learning of complex concepts.
• This assertion is in line with the constructivist perspective on learning,
whose origins are rooted in Jean Piaget’s studies
• Accordingly, since a software development approach is a complex
concept, its gradual learning process should be based on the learner’s
experience. One way to support and to enhance such a gradual mental
learning process is to adopt an active learning teaching approach,
according to which learners are active to theextent that enables a
reflective process
The Studio Environment
• The studio is a learning environment in which an intensive student-
student and student-academic coach interaction leads the software
development process (Kuhn 1998, Tomayko 1996, Hazzan 2002).
• The studio is the basic learning method used in architecture schools
and has been central to architectural training for most of the
twentieth century. In the architectural studio, a group of students
meet their academic coach three times each week.
• Such an intensive schedule puts pressure on the students and, as a
result, they devote themselves to the art of design: students learn
the skills, the professional language, and the discipline’s ways of
thinking.
The Studio Environment
• Based on the suitability of the studio approach to architecture education,
it is suggested applying this teaching approach to other disciplines,
mainly to professions in which design considerations are inherent, there
is more than one approach to a given problem, and a solution to a given
problem is usually not unique. It seems clear that software engineering
fits perfectly with the adoption of the studio as a learning environment.
• First, since the studio should reflect an agile software development
environment (see Teaching and Learning Principle 1, presented above), it
should serve as a project development center. Accordingly, each studio
should include computers for the development itself and a table in the
middle of the studio for planning sessions and other activities.
The studio environment
• Thus, students naturally begin programming in pairs. On the walls there
are whiteboards that reflect the project status, presenting project
stories, measures, and additional material
• Such a learning environment supports a teamwork-based development
process and delivers a clear and coherent message to the students
about what is expected from them.
• Second, as far as the desire to teach agile software engineering in an
environment that resembles, as much as possible, real software
development environments is concerned, a university course framework
sometimes requires adjustment. This is mainly because students take
other courses in parallel and cannot dedicate the entire week to their
work on the development of the course software project.em.
The Studio Environment
• Third, since reflection is encouraged by agile software
development, reflection questions are presented to the students
after each studio meeting and can be submitted through an online
course management tool.
• In these reflections, students should be encouraged to express not
only positive ideas, but also negative feelings and suggestions for
improvement. Throughout the studio meeting descriptions in this
book, additional details about the nature of the studio are added.
The Academic Coach Role
• Each team of students is guided by an academic coach who is in charge
of the project management (but not of the project development), as
well as of the student evaluation. The academic coach supervises the
development project and acts as the academic customer of the product
as well as the academic coach of the team
• The academic coach also ensures the students’ smooth development of
their tasks and the performance of their personal roles. The academic
coach interaction with the student team consists of keeping the course
schedule while reflecting on the project’s progress briefly in the weekly
studio meetings, evaluating the students’ performance as a team and
as individuals, and taking care of the administrative infrastructure.
The Academic Coach Role
• General decisions about the studio component should be made
jointly by all the coaching team members as much as possible,
leaving each academic coach the freedom to adjust the particular
studio he or she guides to his or her pedagogical and professional
beliefs.
• When a team of academic coaches experiences the studio
environment for the first time, a transformation in their conception
of the teaching and learning process is required.
Overview of the Studio Meetings
• The studio enables a kind of real-world work environment with
some adaptations to academia. During the fourteen studio
meetings, a software project is developed in an agile process,
which is composed of three iterations. Each project is worked on by
a team of ten to twelve students, guided by an academic coach. If
possible, it is preferable to provide each team its own studio,
equipped with furniture, computers, and whiteboards.
• The different agile practices are introduced gradually so that, on
the one hand, they do not overwhelm the students; but on the
other hand, they do indeed address all aspects of agile software
development.
Launching the Project Development in
the Studio
• The main objective of the first studio meeting is to let the students
become familiar with the studio as the development environment.
• For this purpose, the course structure and the studio work
environment are introduced, teams are formed, the project
subjects to be developed by the students are presented and
distributed among the teams, the development schedule is
explained, and the students meet the customer(s)
Project Description

• Each of the project subjects is described to the students in one


paragraph and the lecturer then elaborates on them, giving
additional details and answering students’ questions. The
customer(s) is introduced and the required collaboration with the
customer is emphasized.
Team Forming
• After the project descriptions are presented, teams are formed
based on the students’ preferences, diversity considerations, and
course resources. One form is filled out by two or three students,
thus enabling each student to select one or two other students
with whom they wish to be on a team.
• At the same time, however, in order to let the students become
familiar with other course participants, and in this way to expose
themselves to new perspectives and people and to educate them
to be open to diverse teams, the number of students that each
student can choose to be on the same team with is limited to one
or two

You might also like