SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011                                                                                       273




Teaching Agile Software Development: A Case Study
                                                             z´                         ´
                                                 Vladan Devedˇ ic and Sa˘ a R. Milenkovic
                                                                        s


   Abstract—This paper describes the authors’ experience of                    software engineering (SE), computer science (CS), information
teaching agile software development to students of computer                    technologies (IT), and information systems (IS)] teach ASD in
science, software engineering, and other related disciplines, and              courses that enforce team-based development practices. Also,
comments on the implications of this and the lessons learned. It is
based on the authors’ eight years of experience in teaching agile              the first ASD centers and laboratories at universities have started
software methodologies to various groups of students at different              to appear [4], [5] teaching the new skills to new generations of
universities, in different cultural settings, and in a number of               students.
courses and seminars. It specifically discusses three different                    This paper conveys and discusses the authors’ experiences in
courses on agile software development, given in different teaching             teaching ASD to students of computing at several universities
settings and at different levels, and briefly surveys variations to
these courses given elsewhere. Based on the experience acquired,               from 2002 to 2009, and is relevant to both undergraduate and
analyses and evaluations conducted, and current pedagogical                    graduate courses related to SE, CS, and IS. To this end, it dis-
trends at relevant university departments, the authors provide                 cusses common prerequisites to be met, good practices to en-
recommendations on how to overcome potential problems in                       force, and common pitfalls to avoid in order to make teaching
teaching agile software development and make their adoption                    ASD effective and beneficial for students.
more effective.
  Index Terms—Agile software development (ASD), computer sci-                                        II. RELATED WORK
ence education, Extreme Programming (XP), Scrum.
                                                                                  Although ASD has been around in industry for more than a
                                                                               decade, a typical situation at universities is that it is only cov-
                           I. INTRODUCTION                                     ered as a part of undergraduate or graduate courses (such as soft-
                                                                               ware development, software project management, and the like).
                                                                               Teaching traditional methodologies such as Waterfall are often
T      HE term agile software development (ASD)—as opposed
       to traditional, plan-centric software development—refers
to a range of lightweight development approaches tailored to:
                                                                               included in these same courses, and in some cases the coverage
                                                                               of ASD merely consists of mentioning its existence and general
1) facilitate faster time-to-market and continual integration of               characteristics. Few courses are dedicated to ASD exclusively,
new requirements; 2) increase development productivity while                   and these are typically optional or elective (e.g., [6]). Of the
maintaining software quality and flexibility; and 3) increase the               various ASD approaches, it is Scrum [7] and Extreme Program-
organization’s responsiveness while decreasing development                     ming (XP) [3] that are most commonly taught in these courses. It
overhead [1]. ASD fits small development teams well. Some of                    is also important to note that there is evidence that both students
the key issues and practices in ASD are: very short development                and teachers at universities are very motivated and interested in
cycles (called iterations, or “sprints”) resulting in many small,              using ASD in courses [8]–[11]. The authors’ own experience
incremental software releases; continuous involvement of cus-                  confirms that.
tomers; simplicity of design; cleanliness of code, achieved by                    On the other hand, teaching ASD to professionals is now
disciplined and continuous small modifications, called refac-                   well developed and widespread. Almost every ASD approach
toring; programming all code in pairs and moving developers                    is supported by some kind of a consortium that offers seminars,
between pairs so that everyone participates in all development                 courses, and certificates [7], [12], [13].
tasks; maintaining a more or less constant development rhythm                     Since ASD approaches are relatively new, however, there are
(called project/team velocity) throughout the project; and rig-                few or no generally accepted standards that relate to ASD. A
orous and continuous code testing and integration. The Agile                   new IEEE standard, P1648, that will provide a firm basis as well
Manifesto [2] clearly stipulates ASD objectives, approaches,                   as directions for future CC is still under development [14].
practices, and issues. See, for example, [3] for a more detailed
introduction to ASD concepts.                                                                   III. TEACHING CASE STUDIES
   Recently, ASD seems to be beginning to find its place in                        The authors have many years of experience in teaching ASD
computing curricula (CC) around the world. Many university                     to various groups of students at different universities in dif-
departments teaching relevant computing disciplines [such as                   ferent cultural settings in one-semester (15-week) courses. Each
                                                                               course typically has two 45-min classes and two 45-min labs/tu-
   Manuscript received December 29, 2009; revised May 02, 2010; accepted       torials per week. Some of the courses are ASD-only electives; in
May 26, 2010. Date of publication June 17, 2010; date of current version May   others, ASD is being taught along with other SE methodologies.
04, 2011.
            z´
   V. Devedˇ ic is with FON—School of Business Administration, University of
Belgrade, 11000 Belgrade, Serbia (e-mail: devedzic@fon.rs).                    A. Case 1—Undergraduate Required Course
                    ´
   S. R. Milenkovic, is with FKN—Faculty of Computer Sciences, Megatrend
University, 11000 Belgrade, Serbia (e-mail: sasa.milenkovic@megatrend.edu.
                                                                                 This is an ongoing course, aimed at students of SE and IS,
rs).                                                                           that has been given at two different universities for several years
   Digital Object Identifier 10.1109/TE.2010.2052104                            (University of Belgrade, Serbia, and Mediterranean University,
                                                             0018-9359/$26.00 © 2010 IEEE
274                                                                             IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011



Montenegro) and given for one semester at a third university         of high-quality software, alignment of development with cus-
as well (University of Canterbury, New Zealand). About half          tomer needs and company goals, as well as timely response to
of the course hours are dedicated to ASD. Prerequisites include      changing requirements, the teacher also plays the role of the
Introduction to Java, Computer Networks, and Introduction to         customer.
Databases. Students develop a project using Eclipse IDE and             In undergraduate courses, Scrum and XP are mainly used,
are supposed to work in small teams practicing XP.                   without either being favored. Rather, specifics from both ap-
                                                                     proaches are used together to suit the class needs.
B. Case 2—Undergraduate Elective Course                                 From the well-established XP values [3], team communica-
   This is a course on software development given at the Mega-       tion, design and coding simplicity, and continuous feedback
trend University, Faculty of Computer Science, Belgrade, to stu-     from the customer are especially emphasized. Other XP prac-
dents in their last (sixth) semester. The students had already       tices (such as refactoring and pair programming) are explained,
taken other courses that equipped them with skills in using APIs,    but not necessarily in strict relation to each other or to XP as a
designing software architecture, testing, integration, software      process.
metrics, and the various software management methodologies              In practicing the Scrum process, assigning roles (with their
and tools that support these. In this course, after three weeks      self-explanatory names, such as Scrum Master, Scrum Coach,
of lectures and tutorials, students undertake practical work on      and Product Owner [19]) greatly helps the development process.
a lab project for 4 h a week. A real-world project development       Hence, these roles are typically assigned to the students in the
environment is simulated, and both Scrum and XP practices are        lab. A 15-min daily stand-up meeting, sprints (iterations),
used.                                                                demos, and retrospectives are Scrum practices appropriate to
                                                                     enforce in the labs.
C. Case 3—Graduate Course
   Both M.S. and Ph.D. students of SE, CS, and IS take this elec-    B. Course Structure
tive course on advanced software development at the University          The course described in Case 1 teaches ASD for about half
of Belgrade; M.S. students at the Mediterranean University in        of its core hours, hence the coverage of ASD is not as detailed
Montenegro take a course on software project management, half        as in the course of Case 2. In both courses, all the major general
of which largely corresponds to the course given at the Univer-      ASD concepts are covered in class, and a brief overview and
sity of Belgrade. Most students in this case study already have      comparison of XP, Scrum, Lean [20], and Crystal Clear [13]
some experience working as software developers in industry.          processes is provided. Then, XP and Scrum are covered in more
The course enforces ASD principles rather than requiring the         detail, followed by an extended comparative evaluation of their
students to complete their projects or to stick to a specific ASD     use.
approach.                                                               During the labs/tutorials, students are taught how to use
                                                                     tools recommended in Scrum and XP, such as user stories, task
D. Variations                                                        boards, and the like. Several specific software development
   Undergraduate courses typically focus more on requirements        tools and environments are also used. Students propose projects
gathering (user stories) and the notion of testing and integration   that they want to work on, and these projects are developed in
using selected open-source Java frameworks (such as Spring           the lab over several weeks. The teachers/tutors ensure that each
[15], TestNG [16], and Hibernate [17]). The idea is to walk the      student takes a different role in their team each time they are in
students through the entire process of developing a simple Web       the lab.
application. Graduate courses are taken by professionals with
some relevant experience. Here, the focus is more on practices       C. Pedagogical Issues
that lead to improvements in software quality (such as refac-           An important pedagogical objective in teaching ASD is to let
toring and test suits [3]) and the ease of maintenance. Other        the students adopt the working style typical for software devel-
topics such as software metrics, CMM [18], and standardiza-          opment in small teams. Given the typical age of undergraduate
tion issues are sometimes taught in the context of ASD as well.      students (early 20s), this is relatively easy to achieve since the
Fewer labs are organized, and the students are supposed to work      social aspect of ASD sits well with that age group.
on their assignments in small teams.                                    Students’ motivation is further increased by insisting on pro-
                                                                     fessional and real-world development styles. Rotating the roles
           IV. UNDERGRADUATE-LEVEL TEACHING                          between students in a team makes the development process
  The common objective of undergraduate courses is to have           more dynamic and lets everybody have a taste of each role.
the students adopt agile practices through practical project de-        Another important issue is that of keeping up the pace.
velopment. Teamwork is enforced, and the team velocity [19] is       Given the individuality of the teams and the variations between
maintained by the teacher’s intervention when necessary.             projects, the teacher/tutor should carefully monitor the team ve-
                                                                     locity in each specific project in order to provide approximately
A. Teaching Principles and Practices                                 equal conditions and working environment so that each project
   The “big picture” of teaching (about which the students are       can develop successfully. Introducing some kind of competition
constantly reminded) includes the Agile Manifesto values and         between the projects can be helpful in keeping the pace up (if
principles [2]. To an extent, these are adapted to development       this is not overemphasized). Giving the students an idea of the
in a university lab. Since ASD always assumes rapid delivery         user story they will develop the next week is usually a more
ˇ ´              ´
DEVEDZIC AND MILENKOVIC: TEACHING AGILE SOFTWARE DEVELOPMENT: A CASE STUDY                                                             275



effective way of achieving this. However, experience shows                         VI. EXPERIENCES AND EVALUATIONS
that this is less effective if given as an assignment. The teachers
                                                                         Weaving together two or more ASD approaches (such as
should rather take on the role of customers and specify the user
                                                                      Scrum and XP) in a single course is not difficult if the teachers
story for the next lab in order to stimulate post-reflection and
                                                                      do not make strict distinctions between practices drawn from
creative thinking during the intervening period (usually one
                                                                      different approaches. Moreover, allowing a lot of tolerance in
week).
                                                                      the terminology used in class, in terms of mixing terminolo-
   The way the classes and labs are organized lets the teacher/
                                                                      gies from different approaches, also helps in achieving the
tutor play the role of an available guide; for much of the time,
                                                                      teaching/learning objectives more efficiently.
the teams work intensively on their own, consulting the teacher
                                                                         Along the same lines, since ASD is more about skill than
only when they are uncertain about an issue. The teacher/tutor
                                                                      about theory, the best results are achieved if the teaching is given
monitors the teams’ activities both in the class/lab and off-hours.
                                                                      “in the agile way,” i.e., as practical tutorials/labs. Luckily, the
The latter is enabled because project-related interaction between
                                                                      universities where the specific courses mentioned are given are
the team members through social networking tools is required
                                                                      supportive to this approach. It was also found that students easily
and, technically, the teacher is always the administrator/owner
                                                                      adopt this approach and quickly adapt to ASD in general. Their
of such a social network. This way, the students essentially un-
                                                                      motivation rises from the very first classes, and their tendency
dergo a continuous (albeit informal) assessment.
                                                                      to skip some responsibilities (often occurring in traditionally
                                                                      conducted courses) drops rapidly.
               V. GRADUATE-LEVEL TEACHING
                                                                         In addition, it was noticed that “in the agile way” should be
   The fact that many of the graduate students taking grad-           as consistent as possible. For example, if a specific classroom
uate-level courses come from industry and already have some           layout can be arranged to mimic the layout of developers’ offices
real-world software development experience makes it necessary         recommended in ASD—this should be done. Likewise, stand-up
to include certain important variations in the course structure,      meetings in the beginning of classes and labs are welcome.
topics, and organization.                                                In undergraduate courses, students often lack experience;
                                                                      emphasizing the quality of the software developed in their
A. Topic Variations
                                                                      projects helps them understand some of the ASD practices
   Specifics of various corporate cultures can be accommodated         (such as testing, refactoring, coding standards, and contin-
by varying the topics being taught and their emphases. At the         uous integration) more easily. In practice, this means that the
start of the course, the teachers interview the students to find out   teachers/tutors should focus on coding and testing details when
what specific software development technologies and practices          guiding the students in class. Moreover, the teachers should
they are used to, as well as what specific software processes are      occasionally themselves pair with students (or possibly just
practiced in their companies. Then, they run the course adap-         join a pair of students) for a short time, to participate in the
tively and interactively, trying to emphasize agile practices “in     team’s pair programming directly and to act as Scrum Coach.
context,” i.e., relative to the projects and practices relevant to       Students’ inexperience is an important factor to take into ac-
each specific student. For example, students are requested to ex-      count when calculating the team (project) velocity. Individual
press their views of how specific Scrum roles are (or would be)        differences and capabilities are naturally greater in student
seen in their companies. They are also requested to discuss and       teams than in professional ones. A good heuristic in calculating
possibly demonstrate in class how refactoring and testing is (or      project velocity is to assume that the number of students in
has been) taken care of in the context of a specific project with      each team is about 20% less than the actual number, which
which they are/were involved.                                         provides a fairly accurate estimate of velocity. Also, the focus
   Many of the discussions and assignments are focused                factor [19] (a weighting used for calculating team velocity more
on team/customer relationship management in ASD and on                realistically) can be initially set as being between 0.15 and 0.35.
ever-changing requirements that necessarily feature in any               In graduate courses, there are, typically, more experienced
real-world software development.                                      programmers, and the focus can be shifted to planning of sprints/
                                                                      iterations, introduction of ASD in more traditional organiza-
B. Pedagogical Issues                                                 tions, and agile team building.
   In cases when ASD is not practiced in the organizations               Introducing some pedagogical agility in class can be helpful.
in which the students work, they are encouraged to articulate         For example, it was noticed that in courses covering not only
their views of changes that ASD practices would bring to              ASD but other SE topics as well, students willingly accept in-
development processes in their organizations. These students          vestigating in advance a specific technology or tool to be used
are also asked to reflect on what specific ASD practices would          at a later stage. Later on, they can teach this to others when in
get adopted in their organizations easily and seamlessly. When-       pairs working on development tasks. Such activities can be or-
ever possible, code snippets from their real-world projects are       ganized as individual projects that contribute to the final grades.
analyzed in class for possible refactoring. In such cases, pairing       Note, however, that pairing can be a critical problem in an
a student who has a code snippet with another student who             ASD course. On the one hand, it can boost knowledge harmo-
does not (preferably from another organization, to avoid bias)        nization inside the team, as long as the rotation of students be-
and having them prepare the analysis and conduct refactoring          tween pairs is frequent enough. Care must be taken, though, that
together simulates pair programming practices.                        rotations do not happen in the middle of a task, but only when
276                                                                              IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011



                              TABLE I                                                      VII. LESSONS LEARNED
      STUDENTS’ PRODUCTIVITY. THE NUMBERS SHOWN ARE AVERAGE
                                          2
        VALUES PER MONTH OF LAB WORK (2 45 min A WEEK).                  After eight years of experience teaching ASD, and from the
               THE RANGES REFLECT DIFFERENT PROJECTS                  evaluations regularly collected from the students, the lessons
                                                                      learned can be summarized as a set of recommended practices to
                                                                      course organizers who want to increase the learning efficiency
                                                                      in their courses. These practices should be taken as educational
                                                                      ones; they only augment, not replace, the set of development
                                                                      practices featuring ASD approaches. They do require some dis-
                                                                      cipline to implement, but the resulting effects can be rewarding.
                                                                         Eliminate major difficulties early. It is helpful if considerable
                                                                      time is dedicated in the beginning of the course to the problems
                                                                      of refactoring, testing, and emerging design since these appear
                                                                      to be the major obstacles to adopting ASD (see Tables I and III).
                                                                         Iterations should be rather short. Long iterations mean less
                                                                      iteration. Given the typical course context (two to six classes
                                                                      a week, 15 weeks per semester, simple projects), even short it-
                                                                      erations (one to two weeks each) are often sufficient (Table I,
                                                                      Issue i).
                                                                         Agile works with agile students. Not all students are well mo-
                                                                      tivated initially, and they have different capabilities. Pairing up
                                                                      more agile students with less agile ones helps keep up the stu-
                                                                      dent project pace. This heuristic has been applied in the case
                                                                      study since the academic year of 2004–2005 and explains the
the task is completed. On the other hand, personal incompati-         values in the Quit rate column (Table II).
bilities within pairs can sometimes slow the team dramatically           Agile can be seductive. There is a danger that students start
and consequently require special care and intervention by the         thinking that anything anywhere in industry can be done “in
teacher.                                                              the agile way.” Balancing ASD topics with occasional instances
   Metrics (measurable quantitative indicators) of the students’      of more traditional ones during the classes and labs brings the
productivity in the lab are collected and updated throughout the      necessary “reality check.” A good way to do this is to remind
courses. Table I shows some of these values. An interesting ob-       students of the CMM ladder [18] again and again.
servation from this table and from insights into typical metrics         Reference to other important topics is invaluable. Starting
and productivity data published about real-world software in-         from qualitative course evaluations and trying to minimize the
dustry projects (e.g., [21]) is that the students’ productivity is    confusion of some students and their cautious and/or negative
only about 15%–20% less than that of developers in industry.          comments (see Table III), several other topics variations have
This is not much of a productivity gap, given the differences in      been tried in this case study. The most effective ones proved to
experience and focus factors (see Table I header as well).            be the ever-evolving Apache Foundation frameworks [22], com-
   In addition, as a part of this case study, specific course evalu-   parison to other incremental and iterative development method-
ations were conducted with the students enrolled. At the end of       ologies (especially to the widely used Rational Unified Process
each course given, the students were asked to evaluate ASD as         [23]), and software usability [24].
the course topic and as a development practice and pedagogical           Students must succeed. It is up to the teacher to guide each
issues related to teaching ASD. Tables II and III show typical ex-    project carried out by the students to a successful conclusion
cerpts from these evaluations. Much of the contents of Tables II      at the end of the course. It does require a lot of involvement
and III are self-explanatory. It can be noted from Table II that      on the part of the teacher, but if omitted, the pedagogical and
cautious and negative comments result mainly from difficulties         engineering values of the entire course will drop dramatically.
the students experience in adopting ASD practices related to          Ensuring that the pace is kept up in the students’ projects is
testing and refactoring, as well as the fact that design is not       essential to this issue in terms of the Drop-out rate and Quit
emphasized in ASD as a distinct development phase. Note also          rate (Table II).
the better Quit rate values in Table III in the case of M.S.- and        Practice increases commitment and helps overcome skepti-
Ph.D.-level courses, compared to those in B.S.-level courses;         cism. There are always skeptical students who challenge the
these are attributed to the higher experience of the former at-       opinions of the others in the team. Too much theoretical discus-
tendees. The N-A values in the Drop-out rate column represent         sion introduces doubt, and direct involvement of these students
the cases where no further information on how the students have       in practical activities must be enforced in order to increase the
continued their education was available. Also, the Further suc-       Average ASD acceptance (Table II).
cess column does not include the many various instances of pos-          No imposing. Each decision to be made should be preceded
itive feedback from employers who now work with the students          by discussion and the team consensus. Everything must be trans-
covered by this case study because no precise (quantitative) ev-      parent and negotiated between the teachers and the students.
idence was maintained to this end. See Section VII for some           Otherwise, the motivation drops, the learning is much less ef-
further interpretations of Table II values.                           fective, and the Drop-out rate increases.
ˇ ´              ´
DEVEDZIC AND MILENKOVIC: TEACHING AGILE SOFTWARE DEVELOPMENT: A CASE STUDY                                                            277



                                                               TABLE II
   DATA COLLECTED FROM DIFFERENT COURSES OVER EIGHT YEARS. COURSE TYPE AND FIELD—THE TYPE CAN BE BS, BSH (B.S. WITH HONORS), MS,
    PMS (PROFESSIONAL M.S.), MDA, PhD; THE FIELD CAN BE CS, SE, IT, OR IS. GROUP SIZE—NUMBER OF ATTENDEES AT COURSES. AVERAGE ASD
      ACCEPTANCE—GRADES FROM 1 TO 5, 1 BEING THE LOWEST AND 5 THE HIGHEST GRADE. DROP-OUT RATE—[%] OF STUDENTS WHO DID NOT
         ENROLL IN SIMILAR ADVANCED COURSES AFTER THIS ONE. QUIT RATE—[%] OF STUDENTS WHO GAVE UP WORKING ON THE PROJECT
        AND QUIT THE COURSE. FURTHER SUCCESS—THE NUMBER OF PROJECTS AWARDED AND/OR EXTENDED TO REAL-WORLD APPLICATIONS.
         SINCE THE COURSES ARE TYPICALLY GIVEN MORE THAN ONCE DURING A SINGLE ACADEMIC YEAR, THE (ROUND) NUMBERS SHOWN
                              IN THE TABLE CELLS FOLLOW THE PATTERN hn               i=hn           i= . . .




                            TABLE III                                    Unmanageable impediments. Personal relations among some
      STUDENTS’ EXPERIENCES OF AND COMMENTS ON ASD ISSUES             students, lack of knowledge/experience, and the university (non-
         (PERCENTAGE RANGES REFLECT DIFFERENT PROJECTS)               industry) setting can sometimes introduce extra inefficiency.
                                                                      These factors are difficult to eliminate, but teachers should still
                                                                      enforce skill and knowledge building through ASD practices.

                                                                                             VIII. DISCUSSION
                                                                         The authors are not aware of another similar case study. Other
                                                                      authors have mostly discussed how to incorporate ASD in their
                                                                      current curricula (e.g., [11]), but did not provide any extensive
                                                                      experiences with teaching ASD.
                                                                         ASD is not widespread in university curricula yet. One of
                                                                      the reasons is that ASD is not yet supported by the official
                                                                      IEEE-CS/ACM guidelines for computing curricula [25], and
                                                                      using it in educational surroundings is still an object of personal
   Assign the Scrum Master role. In addition to the teacher being     research, trial, and errors. On the other hand, serious efforts and
the Scrum Coach, there should also be a Scrum Master in each          analyses to improve this situation have been conducted or are in
team (see Section IV-A and [19] for more details). This role can      progress [26]–[28].
be taken by one of the students with the best knowledge of the           Other reasons include traditionalism, the teachers’ mindsets,
tools and technology used in a particular Sprint cycle (iteration).   and usually slow (re)accreditation processes. Using practical
   Mentoring is not always effective. It is very ineffective and      exercise in class (“learning by doing”) rather than traditional
not agile at all if the students always expect to be told what        teaching/learning methods has not yet been fully adopted. ASD
to do in carrying out an ASD project. In this case study, lower       is a set of grassroots methodologies, without significant support
scores in Table II and more complaints in Table III have always       from theory; hence, teachers teaching in the old way think it is
been correlated with too much mentoring. Mentoring has proven         risky to teach in “the agile way.” Also, some teachers with long
effective only if limited to stimuli and indications for individual   experience have witnessed the rise and fall of many other tech-
and/or team exploration of relevant problems.                         nologies and approaches that, in their own time, had promised
   Teams should be small. Teams of four to five students, as well      more efficient ways of software development.
as some kind of fair competition between them, are well suited           Not only software development can be done in “the agile
for labs/tutorials. Large teams are more difficult to manage,          way”; many teaching practices and the lessons the authors have
especially if the students are inexperienced. As indicated in         learned and discussed here can be applied to teaching other com-
Table II, larger teams have featured in earlier course implemen-      puting disciplines as well.
tations. However, lower values for Average ASD acceptance                Moreover, ASD practices have much in common with similar
and higher values for Drop-out rate and Quit rate have been           well-proven practices in other disciplines. For example, modern
recorded in such cases (see Table II).                                architecture design studio courses are structured by projects,
   Teams must be self-organized. Self-organizing teams are at         problems, and inquiry [29]. They rely on the use of professional
the core of “the agile way.” This breaks with traditional class       practice project “problems” to stimulate students to discover and
management and requires the students’ self-control and self-          explore key disciplinary concepts and skills. Students work in
management. At first, teachers may find it difficult to conduct          small teams and focus on intensive team communication and
classes/labs this way, but the students’ greater involvement and      performance of professional skills and transmission of estab-
greater level of interaction come as a reward.                        lished knowledge, just like in ASD.
278                                                                                                 IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011



                               IX. CONCLUSION                                            [17] C. Bauer and G. King, Java Persistence With Hibernate. Greenwich,
                                                                                              CT: Manning, 2006.
   Teaching agile software development is most effective if it is                        [18] M. C. Paulk, C. V. Weber, and B. Curtis, The Capability Maturity
done in the agile way: valuing agile students and their involve-                              Model: Guidelines for Improving the Software Process. Reading,
ment/interactions over of-the-book processes, and valuing their                               MA: Addison-Wesley, 1994.
                                                                                         [19] H. Kniberg, Scrum and XP from the Tranches: How We Do Scrum.
skills built through practices over comprehensive understanding                               Toronto, ON, Canada: C4 Media Inc., 2007.
of peculiarities of a specific ASD methodology. The teacher’s                             [20] M. Poppendieck and T. Poppendieck, Lean Software Development: An
role should be a complete manifestation of the “guide on the                                  Agile Toolkit. Reading, MA: Addison-Wesley, 2003.
                                                                                         [21] D. J. Reifer, “Industry software cost, quality and productivity
side, not a sage on the stage” principle. The lessons learned also                            benchmarks,” 2004 [Online]. Available: http://www.compaid.
support the fact that teachers should better prevent their students                           com/caiinternet/ezine/Reifer-Benchmarks.pdf
from developing the interpretation that ASD is a “silver bullet.”                        [22] “The Apache Software Foundation,” 2009 [Online]. Available: http://
                                                                                              www.apache.org
Questioning dogmatic claims and adapting ASD to the class’s                              [23] P. Kroll, P. Kruchten, and G. Booch, The Rational Unified Process
needs is much more effective than preaching ASD. Otherwise, it                                Made Easy: A Practitioner’s Guide to the RUP. Reading, MA: Ad-
can be that the students will interpret it as a new Waterfall [30].                           dison-Wesley, 2003.
                                                                                         [24] J. Rubin, D. Chisnell, and J. Spool, Handbook of Usability Testing:
                                                                                              How to Plan, Design, and Conduct Effective Tests. Hoboken, NJ:
                                  REFERENCES                                                  Wiley, 2008.
       [1] F. Maurer and S. Martel, “Extreme programming: Rapid development              [25] “Curricula recommendations,” ACM, AIS, IEEE-CS, Sep. 30,
           for web-based applications,” IEEE Internet Comput., vol. 6, no. 1, pp.             2005 [Online]. Available: http://www.acm.org/education/education/
                                                                                              curric_vols/CC2005-March06Final.pdf
           86–90, Jan./Feb. 2002.
       [2] K. Beck et al., “Manifesto for agile software development,” Feb. 2001         [26] L. Williams and R. Upchurch, “Extreme programming for software en-
                                                                                              gineering education?,” in Proc. Frontiers Educ. Conf., 2002, vol. 1, pp.
           [Online]. Available: http://agilemanifesto.org/
       [3] K. Beck, Extreme Programming Explained: Embrace Change.                            T2D-12–T2D-17.
                                                                                         [27] T. Flohr and T. Schneider, “An XP experiment with students—Setup
           Reading, MA: Addison-Wesley, 2004.
       [4] ” The University of Texas, Austin, TX, 2006 [Online]. Available: http://           and problems,” in Proc. PROFES, Oulu, Finland, 2005, LNCS 3547.
                                                                                         [28] B. Wolf-Gideon, C. Lilienthal, and A. Schmolitzky, “Weaving experi-
           www.cat.utexas.edu/
       [5] “Bowling Green State University—The Agile Software Factory” 2009                   ences from software engineering training in industry into mass univer-
           [Online]. Available: http://agile.bgsu.edu/                                        sity education,” in Proc. Inf. Syst. Educ. Conf., Newport, 2004, vol. 21,
                                                                                              p. §3452.
       [6] A. Olagbemiro, “605.407—Agile software development methods
           course homepage,” Johns Hopkins University, May 30, 2009 [On-                 [29] A. Quinlan and P.-A. Johnson, “A curriculum approach to embed-
                                                                                              ding inquiry practices in architecture design studio courses,” in The
           line]. Available: http://ep.jhu.edu/course-homepages/viewpage.php?
           homepage_id=3128                                                                   Learning Community: First Explorations of the Research-Teaching
                                                                                              Nexus at UNSW, R. Freestone, A. Bagnara, M. Scoufis, and C. Pratt,
       [7] “ScrumAlliance—Transforming the world of work,” Scrum Alliance,
           Inc., 2009 [Online]. Available: http://www.scrumalliance.org/                      Eds. Sydney, Australia: UNSW, 2003, pp. 49–55.
                                                                                         [30] J. Naresh, “Managed chaos: Naresh Jain’s random thoughts on
       [8] G. Asproni, “Motivation, teamwork, and agile development,” Agile
           Times, vol. 4, no. 1, pp. 8–15, Feb. 2004.                                         software development and adventure sports,” Agile FAQs blog,
       [9] M. A. Ardis and C. A. Dugas, “Test-first teaching: Extreme program-                 Apr. 29, 2009 [Online]. Available: http://blogs.agilefaqs.com/
                                                                                              2009/04/29/agile-as-practiced-today-is-the-new-waterfall/
           ming meets instructional design in software engineering courses,” in
           Proc. 34th ASEE/IEEE Frontiers Educ. Conf., Savannah, Georgia, Oct.
           20–23, 2004, vol. 2, pp. F1C-25–F1C-30.                                                    z´
                                                                                      Vladan Devedˇ ic received the B.S., M.S., and Ph.D. degrees in electrical en-
      [10] G. Hedin, L. Bendix, and B. Magnusson, “Teaching extreme program-          gineering and computer science from the University of Belgrade, Belgrade,
           ming to large groups of students,” J. Syst. Softw. Archive, vol. 74, no.   Serbia, in 1982, 1988, and 1993, respectively.
           2, pp. 133–146, Jan. 2005, Special issue: The new context for software        He is a Professor of computer science with the Department of Software En-
           engineering education and training.                                        gineering, FON—School of Business Administration, University of Belgrade,
      [11] P. Maher, “Weaving agile software development techniques into a            Belgrade, Serbia. He is the founder and Chair of the GOOD OLD AI research
           traditional computer science curriculum,” in Proc. 6th Int. Conf. Inf.     network. So far, he published six books and more than 300 research papers. His
           Technol., New Generations, Las Vegas, NV, Apr. 27–29, 2009, pp.            current professional and research interests include software engineering and in-
           1687–1688.                                                                 telligent systems.
      [12] J. Stapleton and P. Constable, DSDM Dynamic Systems Development
           Method: The Method in Practice. Reading, MA: Addison-Wesley,
           1997.
      [13] A. Cockburn, Crystal Clear: A Human-Powered Methodology for                                     ´
                                                                                      Sa˘a R. Milenkovic received the B.S. and M.S. degrees in information sys-
                                                                                         s
           Small Teams. Reading, MA: Addison-Wesley, 2005.                            tems and technologies in 2006 and 2009, respectively, from the FON—School
      [14] “New Standards Committee (NesCom) recommendations,” IEEE-SA                of Business Administration, University of Belgrade, Belgrade, Serbia, where he
           Standards Board, 2009 [Online]. Available: http://standards.ieee.org/      is currently a Ph.D. student of software engineering.
           board/nes/projects/0712nesrec.pdf                                             He is a Teaching Assistant with the Faculty of Computer Sciences, Mega-
      [15] C. Walls and R. Breidenbach, Spring in Action. Greenwich, CT: Man-         trend University, Belgrade, Serbia. Prior to this position, he worked in various
           ning, 2007.                                                                positions in education and computer programming since 1997.
      [16] C. Beust and H. Suleiman, Next Generation Java Testing. Reading,                             ´
                                                                                         Mr. Milenkovic is a member of Agile and Scrum Alliances and has been a
           MA: Addison-Wesley Professional, 2007.                                     Certified Scrum Master since 2009.

Weitere ähnliche Inhalte

Was ist angesagt?

Edld 5352 week01_assignmentjbuckels_ea1189[1]
Edld 5352 week01_assignmentjbuckels_ea1189[1]Edld 5352 week01_assignmentjbuckels_ea1189[1]
Edld 5352 week01_assignmentjbuckels_ea1189[1]
jbuckels
 
Unifying an Introduction to Artificial Intelligence Course ...
Unifying an Introduction to Artificial Intelligence Course ...Unifying an Introduction to Artificial Intelligence Course ...
Unifying an Introduction to Artificial Intelligence Course ...
butest
 
EISTA 2014 - Multidisciplinary Creativity - Final
EISTA 2014 - Multidisciplinary Creativity - FinalEISTA 2014 - Multidisciplinary Creativity - Final
EISTA 2014 - Multidisciplinary Creativity - Final
Chelsey Bradford
 
Edpy 497 presentation
Edpy 497 presentationEdpy 497 presentation
Edpy 497 presentation
mountain2009
 
Eeri 314 pec 2013
Eeri 314 pec 2013Eeri 314 pec 2013
Eeri 314 pec 2013
Drifter92
 
Programme Specification
Programme SpecificationProgramme Specification
Programme Specification
butest
 
Edld 5352 week 4 assignment instructional leadership
Edld 5352 week 4 assignment instructional leadershipEdld 5352 week 4 assignment instructional leadership
Edld 5352 week 4 assignment instructional leadership
pennyholmes56
 
Handouts New and Emerging Models for Work-based Learnin
Handouts  New and Emerging Models for  Work-based LearninHandouts  New and Emerging Models for  Work-based Learnin
Handouts New and Emerging Models for Work-based Learnin
NAFCareerAcads
 
Integrated Technology Action Plan
Integrated Technology Action PlanIntegrated Technology Action Plan
Integrated Technology Action Plan
echenton
 

Was ist angesagt? (20)

Edld 5352 week01_assignmentjbuckels_ea1189[1]
Edld 5352 week01_assignmentjbuckels_ea1189[1]Edld 5352 week01_assignmentjbuckels_ea1189[1]
Edld 5352 week01_assignmentjbuckels_ea1189[1]
 
Technology Enhanced Learning E Assessment 12 14 July 2011
Technology Enhanced Learning E Assessment 12 14 July 2011Technology Enhanced Learning E Assessment 12 14 July 2011
Technology Enhanced Learning E Assessment 12 14 July 2011
 
Minding the gap: Bridging Computing Science and Business Studies with an Inte...
Minding the gap: Bridging Computing Science and Business Studies with an Inte...Minding the gap: Bridging Computing Science and Business Studies with an Inte...
Minding the gap: Bridging Computing Science and Business Studies with an Inte...
 
Unifying an Introduction to Artificial Intelligence Course ...
Unifying an Introduction to Artificial Intelligence Course ...Unifying an Introduction to Artificial Intelligence Course ...
Unifying an Introduction to Artificial Intelligence Course ...
 
EISTA 2014 - Multidisciplinary Creativity - Final
EISTA 2014 - Multidisciplinary Creativity - FinalEISTA 2014 - Multidisciplinary Creativity - Final
EISTA 2014 - Multidisciplinary Creativity - Final
 
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching o...
 
Edpy 497 presentation
Edpy 497 presentationEdpy 497 presentation
Edpy 497 presentation
 
Asld2011 hernández leo-abenia_moreno_chacón_blat
Asld2011 hernández leo-abenia_moreno_chacón_blatAsld2011 hernández leo-abenia_moreno_chacón_blat
Asld2011 hernández leo-abenia_moreno_chacón_blat
 
Eeri 314 pec 2013
Eeri 314 pec 2013Eeri 314 pec 2013
Eeri 314 pec 2013
 
Using patterns to design technology enhanced learning scenarios
Using patterns to design technology enhanced learning scenariosUsing patterns to design technology enhanced learning scenarios
Using patterns to design technology enhanced learning scenarios
 
Programme Specification
Programme SpecificationProgramme Specification
Programme Specification
 
Departmental Brochure
Departmental BrochureDepartmental Brochure
Departmental Brochure
 
Edld 5352 week 4 assignment instructional leadership
Edld 5352 week 4 assignment instructional leadershipEdld 5352 week 4 assignment instructional leadership
Edld 5352 week 4 assignment instructional leadership
 
Action plan
Action planAction plan
Action plan
 
Handouts New and Emerging Models for Work-based Learnin
Handouts  New and Emerging Models for  Work-based LearninHandouts  New and Emerging Models for  Work-based Learnin
Handouts New and Emerging Models for Work-based Learnin
 
Texas S Ta R Chart
Texas S Ta R ChartTexas S Ta R Chart
Texas S Ta R Chart
 
Butler
ButlerButler
Butler
 
Hernandezleoetal@Icaltws08
Hernandezleoetal@Icaltws08Hernandezleoetal@Icaltws08
Hernandezleoetal@Icaltws08
 
Curriculum Vitae
Curriculum VitaeCurriculum Vitae
Curriculum Vitae
 
Integrated Technology Action Plan
Integrated Technology Action PlanIntegrated Technology Action Plan
Integrated Technology Action Plan
 

Ähnlich wie Teaching agile

What to go by step by step and what’s included in the paperAssuran.docx
What to go by step by step and what’s included in the paperAssuran.docxWhat to go by step by step and what’s included in the paperAssuran.docx
What to go by step by step and what’s included in the paperAssuran.docx
mecklenburgstrelitzh
 
A new-method-of-adaptation-in-integrated-learning-environment
A new-method-of-adaptation-in-integrated-learning-environmentA new-method-of-adaptation-in-integrated-learning-environment
A new-method-of-adaptation-in-integrated-learning-environment
Cemal Ardil
 
Development of Indonesian National Qualification Framework-Based teaching mod...
Development of Indonesian National Qualification Framework-Based teaching mod...Development of Indonesian National Qualification Framework-Based teaching mod...
Development of Indonesian National Qualification Framework-Based teaching mod...
IJAEMSJORNAL
 

Ähnlich wie Teaching agile (20)

Software Engineering education and teaching
Software Engineering education and teachingSoftware Engineering education and teaching
Software Engineering education and teaching
 
Software Engineering Education and Teaching
Software Engineering Education and TeachingSoftware Engineering Education and Teaching
Software Engineering Education and Teaching
 
Ouldi project presentation
Ouldi project presentationOuldi project presentation
Ouldi project presentation
 
Secured cloud support for global software
Secured cloud support for global softwareSecured cloud support for global software
Secured cloud support for global software
 
Plan curricular Sistemas de información.pdf
Plan curricular Sistemas de información.pdfPlan curricular Sistemas de información.pdf
Plan curricular Sistemas de información.pdf
 
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
 
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
 
An Online Writing Centre For Engineering Students
An Online Writing Centre For Engineering StudentsAn Online Writing Centre For Engineering Students
An Online Writing Centre For Engineering Students
 
Case Study Based Software Engineering Project Development: State of Art
Case Study Based Software Engineering Project Development: State of ArtCase Study Based Software Engineering Project Development: State of Art
Case Study Based Software Engineering Project Development: State of Art
 
CS0: A Project Based, Active Learning Course
CS0: A Project Based, Active Learning CourseCS0: A Project Based, Active Learning Course
CS0: A Project Based, Active Learning Course
 
Applying User Experience and Usercentered Design Software Processes in Underg...
Applying User Experience and Usercentered Design Software Processes in Underg...Applying User Experience and Usercentered Design Software Processes in Underg...
Applying User Experience and Usercentered Design Software Processes in Underg...
 
Cpe orientation
Cpe orientationCpe orientation
Cpe orientation
 
Applicability of Extreme Programming In Educational Environment
Applicability of Extreme Programming In Educational EnvironmentApplicability of Extreme Programming In Educational Environment
Applicability of Extreme Programming In Educational Environment
 
What to go by step by step and what’s included in the paperAssuran.docx
What to go by step by step and what’s included in the paperAssuran.docxWhat to go by step by step and what’s included in the paperAssuran.docx
What to go by step by step and what’s included in the paperAssuran.docx
 
A Systematic Literature Review Of Requirements Engineering Education
A Systematic Literature Review Of Requirements Engineering EducationA Systematic Literature Review Of Requirements Engineering Education
A Systematic Literature Review Of Requirements Engineering Education
 
A new-method-of-adaptation-in-integrated-learning-environment
A new-method-of-adaptation-in-integrated-learning-environmentA new-method-of-adaptation-in-integrated-learning-environment
A new-method-of-adaptation-in-integrated-learning-environment
 
Development of Indonesian National Qualification Framework-Based teaching mod...
Development of Indonesian National Qualification Framework-Based teaching mod...Development of Indonesian National Qualification Framework-Based teaching mod...
Development of Indonesian National Qualification Framework-Based teaching mod...
 
e-content
e-contente-content
e-content
 
Analysis of the learning object-oriented programming factors
Analysis of the learning object-oriented programming factors Analysis of the learning object-oriented programming factors
Analysis of the learning object-oriented programming factors
 
METIS D3.4: Final workshops packages: workshops for different educational lev...
METIS D3.4: Final workshops packages: workshops for different educational lev...METIS D3.4: Final workshops packages: workshops for different educational lev...
METIS D3.4: Final workshops packages: workshops for different educational lev...
 

Mehr von ยิ้ม แฉ่ง (6)

Agile process
Agile processAgile process
Agile process
 
Rm5470962021 assignment 3
Rm5470962021 assignment 3Rm5470962021 assignment 3
Rm5470962021 assignment 3
 
5470962021 assignment 3
5470962021 assignment 35470962021 assignment 3
5470962021 assignment 3
 
5470962021 assignment 3
5470962021 assignment 35470962021 assignment 3
5470962021 assignment 3
 
Rm5470962021 assignment 3
Rm5470962021 assignment 3Rm5470962021 assignment 3
Rm5470962021 assignment 3
 
Rm5470962021 assignment 3
Rm5470962021 assignment 3Rm5470962021 assignment 3
Rm5470962021 assignment 3
 

Teaching agile

  • 1. IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011 273 Teaching Agile Software Development: A Case Study z´ ´ Vladan Devedˇ ic and Sa˘ a R. Milenkovic s Abstract—This paper describes the authors’ experience of software engineering (SE), computer science (CS), information teaching agile software development to students of computer technologies (IT), and information systems (IS)] teach ASD in science, software engineering, and other related disciplines, and courses that enforce team-based development practices. Also, comments on the implications of this and the lessons learned. It is based on the authors’ eight years of experience in teaching agile the first ASD centers and laboratories at universities have started software methodologies to various groups of students at different to appear [4], [5] teaching the new skills to new generations of universities, in different cultural settings, and in a number of students. courses and seminars. It specifically discusses three different This paper conveys and discusses the authors’ experiences in courses on agile software development, given in different teaching teaching ASD to students of computing at several universities settings and at different levels, and briefly surveys variations to these courses given elsewhere. Based on the experience acquired, from 2002 to 2009, and is relevant to both undergraduate and analyses and evaluations conducted, and current pedagogical graduate courses related to SE, CS, and IS. To this end, it dis- trends at relevant university departments, the authors provide cusses common prerequisites to be met, good practices to en- recommendations on how to overcome potential problems in force, and common pitfalls to avoid in order to make teaching teaching agile software development and make their adoption ASD effective and beneficial for students. more effective. Index Terms—Agile software development (ASD), computer sci- II. RELATED WORK ence education, Extreme Programming (XP), Scrum. Although ASD has been around in industry for more than a decade, a typical situation at universities is that it is only cov- I. INTRODUCTION ered as a part of undergraduate or graduate courses (such as soft- ware development, software project management, and the like). Teaching traditional methodologies such as Waterfall are often T HE term agile software development (ASD)—as opposed to traditional, plan-centric software development—refers to a range of lightweight development approaches tailored to: included in these same courses, and in some cases the coverage of ASD merely consists of mentioning its existence and general 1) facilitate faster time-to-market and continual integration of characteristics. Few courses are dedicated to ASD exclusively, new requirements; 2) increase development productivity while and these are typically optional or elective (e.g., [6]). Of the maintaining software quality and flexibility; and 3) increase the various ASD approaches, it is Scrum [7] and Extreme Program- organization’s responsiveness while decreasing development ming (XP) [3] that are most commonly taught in these courses. It overhead [1]. ASD fits small development teams well. Some of is also important to note that there is evidence that both students the key issues and practices in ASD are: very short development and teachers at universities are very motivated and interested in cycles (called iterations, or “sprints”) resulting in many small, using ASD in courses [8]–[11]. The authors’ own experience incremental software releases; continuous involvement of cus- confirms that. tomers; simplicity of design; cleanliness of code, achieved by On the other hand, teaching ASD to professionals is now disciplined and continuous small modifications, called refac- well developed and widespread. Almost every ASD approach toring; programming all code in pairs and moving developers is supported by some kind of a consortium that offers seminars, between pairs so that everyone participates in all development courses, and certificates [7], [12], [13]. tasks; maintaining a more or less constant development rhythm Since ASD approaches are relatively new, however, there are (called project/team velocity) throughout the project; and rig- few or no generally accepted standards that relate to ASD. A orous and continuous code testing and integration. The Agile new IEEE standard, P1648, that will provide a firm basis as well Manifesto [2] clearly stipulates ASD objectives, approaches, as directions for future CC is still under development [14]. practices, and issues. See, for example, [3] for a more detailed introduction to ASD concepts. III. TEACHING CASE STUDIES Recently, ASD seems to be beginning to find its place in The authors have many years of experience in teaching ASD computing curricula (CC) around the world. Many university to various groups of students at different universities in dif- departments teaching relevant computing disciplines [such as ferent cultural settings in one-semester (15-week) courses. Each course typically has two 45-min classes and two 45-min labs/tu- Manuscript received December 29, 2009; revised May 02, 2010; accepted torials per week. Some of the courses are ASD-only electives; in May 26, 2010. Date of publication June 17, 2010; date of current version May others, ASD is being taught along with other SE methodologies. 04, 2011. z´ V. Devedˇ ic is with FON—School of Business Administration, University of Belgrade, 11000 Belgrade, Serbia (e-mail: devedzic@fon.rs). A. Case 1—Undergraduate Required Course ´ S. R. Milenkovic, is with FKN—Faculty of Computer Sciences, Megatrend University, 11000 Belgrade, Serbia (e-mail: sasa.milenkovic@megatrend.edu. This is an ongoing course, aimed at students of SE and IS, rs). that has been given at two different universities for several years Digital Object Identifier 10.1109/TE.2010.2052104 (University of Belgrade, Serbia, and Mediterranean University, 0018-9359/$26.00 © 2010 IEEE
  • 2. 274 IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011 Montenegro) and given for one semester at a third university of high-quality software, alignment of development with cus- as well (University of Canterbury, New Zealand). About half tomer needs and company goals, as well as timely response to of the course hours are dedicated to ASD. Prerequisites include changing requirements, the teacher also plays the role of the Introduction to Java, Computer Networks, and Introduction to customer. Databases. Students develop a project using Eclipse IDE and In undergraduate courses, Scrum and XP are mainly used, are supposed to work in small teams practicing XP. without either being favored. Rather, specifics from both ap- proaches are used together to suit the class needs. B. Case 2—Undergraduate Elective Course From the well-established XP values [3], team communica- This is a course on software development given at the Mega- tion, design and coding simplicity, and continuous feedback trend University, Faculty of Computer Science, Belgrade, to stu- from the customer are especially emphasized. Other XP prac- dents in their last (sixth) semester. The students had already tices (such as refactoring and pair programming) are explained, taken other courses that equipped them with skills in using APIs, but not necessarily in strict relation to each other or to XP as a designing software architecture, testing, integration, software process. metrics, and the various software management methodologies In practicing the Scrum process, assigning roles (with their and tools that support these. In this course, after three weeks self-explanatory names, such as Scrum Master, Scrum Coach, of lectures and tutorials, students undertake practical work on and Product Owner [19]) greatly helps the development process. a lab project for 4 h a week. A real-world project development Hence, these roles are typically assigned to the students in the environment is simulated, and both Scrum and XP practices are lab. A 15-min daily stand-up meeting, sprints (iterations), used. demos, and retrospectives are Scrum practices appropriate to enforce in the labs. C. Case 3—Graduate Course Both M.S. and Ph.D. students of SE, CS, and IS take this elec- B. Course Structure tive course on advanced software development at the University The course described in Case 1 teaches ASD for about half of Belgrade; M.S. students at the Mediterranean University in of its core hours, hence the coverage of ASD is not as detailed Montenegro take a course on software project management, half as in the course of Case 2. In both courses, all the major general of which largely corresponds to the course given at the Univer- ASD concepts are covered in class, and a brief overview and sity of Belgrade. Most students in this case study already have comparison of XP, Scrum, Lean [20], and Crystal Clear [13] some experience working as software developers in industry. processes is provided. Then, XP and Scrum are covered in more The course enforces ASD principles rather than requiring the detail, followed by an extended comparative evaluation of their students to complete their projects or to stick to a specific ASD use. approach. During the labs/tutorials, students are taught how to use tools recommended in Scrum and XP, such as user stories, task D. Variations boards, and the like. Several specific software development Undergraduate courses typically focus more on requirements tools and environments are also used. Students propose projects gathering (user stories) and the notion of testing and integration that they want to work on, and these projects are developed in using selected open-source Java frameworks (such as Spring the lab over several weeks. The teachers/tutors ensure that each [15], TestNG [16], and Hibernate [17]). The idea is to walk the student takes a different role in their team each time they are in students through the entire process of developing a simple Web the lab. application. Graduate courses are taken by professionals with some relevant experience. Here, the focus is more on practices C. Pedagogical Issues that lead to improvements in software quality (such as refac- An important pedagogical objective in teaching ASD is to let toring and test suits [3]) and the ease of maintenance. Other the students adopt the working style typical for software devel- topics such as software metrics, CMM [18], and standardiza- opment in small teams. Given the typical age of undergraduate tion issues are sometimes taught in the context of ASD as well. students (early 20s), this is relatively easy to achieve since the Fewer labs are organized, and the students are supposed to work social aspect of ASD sits well with that age group. on their assignments in small teams. Students’ motivation is further increased by insisting on pro- fessional and real-world development styles. Rotating the roles IV. UNDERGRADUATE-LEVEL TEACHING between students in a team makes the development process The common objective of undergraduate courses is to have more dynamic and lets everybody have a taste of each role. the students adopt agile practices through practical project de- Another important issue is that of keeping up the pace. velopment. Teamwork is enforced, and the team velocity [19] is Given the individuality of the teams and the variations between maintained by the teacher’s intervention when necessary. projects, the teacher/tutor should carefully monitor the team ve- locity in each specific project in order to provide approximately A. Teaching Principles and Practices equal conditions and working environment so that each project The “big picture” of teaching (about which the students are can develop successfully. Introducing some kind of competition constantly reminded) includes the Agile Manifesto values and between the projects can be helpful in keeping the pace up (if principles [2]. To an extent, these are adapted to development this is not overemphasized). Giving the students an idea of the in a university lab. Since ASD always assumes rapid delivery user story they will develop the next week is usually a more
  • 3. ˇ ´ ´ DEVEDZIC AND MILENKOVIC: TEACHING AGILE SOFTWARE DEVELOPMENT: A CASE STUDY 275 effective way of achieving this. However, experience shows VI. EXPERIENCES AND EVALUATIONS that this is less effective if given as an assignment. The teachers Weaving together two or more ASD approaches (such as should rather take on the role of customers and specify the user Scrum and XP) in a single course is not difficult if the teachers story for the next lab in order to stimulate post-reflection and do not make strict distinctions between practices drawn from creative thinking during the intervening period (usually one different approaches. Moreover, allowing a lot of tolerance in week). the terminology used in class, in terms of mixing terminolo- The way the classes and labs are organized lets the teacher/ gies from different approaches, also helps in achieving the tutor play the role of an available guide; for much of the time, teaching/learning objectives more efficiently. the teams work intensively on their own, consulting the teacher Along the same lines, since ASD is more about skill than only when they are uncertain about an issue. The teacher/tutor about theory, the best results are achieved if the teaching is given monitors the teams’ activities both in the class/lab and off-hours. “in the agile way,” i.e., as practical tutorials/labs. Luckily, the The latter is enabled because project-related interaction between universities where the specific courses mentioned are given are the team members through social networking tools is required supportive to this approach. It was also found that students easily and, technically, the teacher is always the administrator/owner adopt this approach and quickly adapt to ASD in general. Their of such a social network. This way, the students essentially un- motivation rises from the very first classes, and their tendency dergo a continuous (albeit informal) assessment. to skip some responsibilities (often occurring in traditionally conducted courses) drops rapidly. V. GRADUATE-LEVEL TEACHING In addition, it was noticed that “in the agile way” should be The fact that many of the graduate students taking grad- as consistent as possible. For example, if a specific classroom uate-level courses come from industry and already have some layout can be arranged to mimic the layout of developers’ offices real-world software development experience makes it necessary recommended in ASD—this should be done. Likewise, stand-up to include certain important variations in the course structure, meetings in the beginning of classes and labs are welcome. topics, and organization. In undergraduate courses, students often lack experience; emphasizing the quality of the software developed in their A. Topic Variations projects helps them understand some of the ASD practices Specifics of various corporate cultures can be accommodated (such as testing, refactoring, coding standards, and contin- by varying the topics being taught and their emphases. At the uous integration) more easily. In practice, this means that the start of the course, the teachers interview the students to find out teachers/tutors should focus on coding and testing details when what specific software development technologies and practices guiding the students in class. Moreover, the teachers should they are used to, as well as what specific software processes are occasionally themselves pair with students (or possibly just practiced in their companies. Then, they run the course adap- join a pair of students) for a short time, to participate in the tively and interactively, trying to emphasize agile practices “in team’s pair programming directly and to act as Scrum Coach. context,” i.e., relative to the projects and practices relevant to Students’ inexperience is an important factor to take into ac- each specific student. For example, students are requested to ex- count when calculating the team (project) velocity. Individual press their views of how specific Scrum roles are (or would be) differences and capabilities are naturally greater in student seen in their companies. They are also requested to discuss and teams than in professional ones. A good heuristic in calculating possibly demonstrate in class how refactoring and testing is (or project velocity is to assume that the number of students in has been) taken care of in the context of a specific project with each team is about 20% less than the actual number, which which they are/were involved. provides a fairly accurate estimate of velocity. Also, the focus Many of the discussions and assignments are focused factor [19] (a weighting used for calculating team velocity more on team/customer relationship management in ASD and on realistically) can be initially set as being between 0.15 and 0.35. ever-changing requirements that necessarily feature in any In graduate courses, there are, typically, more experienced real-world software development. programmers, and the focus can be shifted to planning of sprints/ iterations, introduction of ASD in more traditional organiza- B. Pedagogical Issues tions, and agile team building. In cases when ASD is not practiced in the organizations Introducing some pedagogical agility in class can be helpful. in which the students work, they are encouraged to articulate For example, it was noticed that in courses covering not only their views of changes that ASD practices would bring to ASD but other SE topics as well, students willingly accept in- development processes in their organizations. These students vestigating in advance a specific technology or tool to be used are also asked to reflect on what specific ASD practices would at a later stage. Later on, they can teach this to others when in get adopted in their organizations easily and seamlessly. When- pairs working on development tasks. Such activities can be or- ever possible, code snippets from their real-world projects are ganized as individual projects that contribute to the final grades. analyzed in class for possible refactoring. In such cases, pairing Note, however, that pairing can be a critical problem in an a student who has a code snippet with another student who ASD course. On the one hand, it can boost knowledge harmo- does not (preferably from another organization, to avoid bias) nization inside the team, as long as the rotation of students be- and having them prepare the analysis and conduct refactoring tween pairs is frequent enough. Care must be taken, though, that together simulates pair programming practices. rotations do not happen in the middle of a task, but only when
  • 4. 276 IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011 TABLE I VII. LESSONS LEARNED STUDENTS’ PRODUCTIVITY. THE NUMBERS SHOWN ARE AVERAGE 2 VALUES PER MONTH OF LAB WORK (2 45 min A WEEK). After eight years of experience teaching ASD, and from the THE RANGES REFLECT DIFFERENT PROJECTS evaluations regularly collected from the students, the lessons learned can be summarized as a set of recommended practices to course organizers who want to increase the learning efficiency in their courses. These practices should be taken as educational ones; they only augment, not replace, the set of development practices featuring ASD approaches. They do require some dis- cipline to implement, but the resulting effects can be rewarding. Eliminate major difficulties early. It is helpful if considerable time is dedicated in the beginning of the course to the problems of refactoring, testing, and emerging design since these appear to be the major obstacles to adopting ASD (see Tables I and III). Iterations should be rather short. Long iterations mean less iteration. Given the typical course context (two to six classes a week, 15 weeks per semester, simple projects), even short it- erations (one to two weeks each) are often sufficient (Table I, Issue i). Agile works with agile students. Not all students are well mo- tivated initially, and they have different capabilities. Pairing up more agile students with less agile ones helps keep up the stu- dent project pace. This heuristic has been applied in the case study since the academic year of 2004–2005 and explains the the task is completed. On the other hand, personal incompati- values in the Quit rate column (Table II). bilities within pairs can sometimes slow the team dramatically Agile can be seductive. There is a danger that students start and consequently require special care and intervention by the thinking that anything anywhere in industry can be done “in teacher. the agile way.” Balancing ASD topics with occasional instances Metrics (measurable quantitative indicators) of the students’ of more traditional ones during the classes and labs brings the productivity in the lab are collected and updated throughout the necessary “reality check.” A good way to do this is to remind courses. Table I shows some of these values. An interesting ob- students of the CMM ladder [18] again and again. servation from this table and from insights into typical metrics Reference to other important topics is invaluable. Starting and productivity data published about real-world software in- from qualitative course evaluations and trying to minimize the dustry projects (e.g., [21]) is that the students’ productivity is confusion of some students and their cautious and/or negative only about 15%–20% less than that of developers in industry. comments (see Table III), several other topics variations have This is not much of a productivity gap, given the differences in been tried in this case study. The most effective ones proved to experience and focus factors (see Table I header as well). be the ever-evolving Apache Foundation frameworks [22], com- In addition, as a part of this case study, specific course evalu- parison to other incremental and iterative development method- ations were conducted with the students enrolled. At the end of ologies (especially to the widely used Rational Unified Process each course given, the students were asked to evaluate ASD as [23]), and software usability [24]. the course topic and as a development practice and pedagogical Students must succeed. It is up to the teacher to guide each issues related to teaching ASD. Tables II and III show typical ex- project carried out by the students to a successful conclusion cerpts from these evaluations. Much of the contents of Tables II at the end of the course. It does require a lot of involvement and III are self-explanatory. It can be noted from Table II that on the part of the teacher, but if omitted, the pedagogical and cautious and negative comments result mainly from difficulties engineering values of the entire course will drop dramatically. the students experience in adopting ASD practices related to Ensuring that the pace is kept up in the students’ projects is testing and refactoring, as well as the fact that design is not essential to this issue in terms of the Drop-out rate and Quit emphasized in ASD as a distinct development phase. Note also rate (Table II). the better Quit rate values in Table III in the case of M.S.- and Practice increases commitment and helps overcome skepti- Ph.D.-level courses, compared to those in B.S.-level courses; cism. There are always skeptical students who challenge the these are attributed to the higher experience of the former at- opinions of the others in the team. Too much theoretical discus- tendees. The N-A values in the Drop-out rate column represent sion introduces doubt, and direct involvement of these students the cases where no further information on how the students have in practical activities must be enforced in order to increase the continued their education was available. Also, the Further suc- Average ASD acceptance (Table II). cess column does not include the many various instances of pos- No imposing. Each decision to be made should be preceded itive feedback from employers who now work with the students by discussion and the team consensus. Everything must be trans- covered by this case study because no precise (quantitative) ev- parent and negotiated between the teachers and the students. idence was maintained to this end. See Section VII for some Otherwise, the motivation drops, the learning is much less ef- further interpretations of Table II values. fective, and the Drop-out rate increases.
  • 5. ˇ ´ ´ DEVEDZIC AND MILENKOVIC: TEACHING AGILE SOFTWARE DEVELOPMENT: A CASE STUDY 277 TABLE II DATA COLLECTED FROM DIFFERENT COURSES OVER EIGHT YEARS. COURSE TYPE AND FIELD—THE TYPE CAN BE BS, BSH (B.S. WITH HONORS), MS, PMS (PROFESSIONAL M.S.), MDA, PhD; THE FIELD CAN BE CS, SE, IT, OR IS. GROUP SIZE—NUMBER OF ATTENDEES AT COURSES. AVERAGE ASD ACCEPTANCE—GRADES FROM 1 TO 5, 1 BEING THE LOWEST AND 5 THE HIGHEST GRADE. DROP-OUT RATE—[%] OF STUDENTS WHO DID NOT ENROLL IN SIMILAR ADVANCED COURSES AFTER THIS ONE. QUIT RATE—[%] OF STUDENTS WHO GAVE UP WORKING ON THE PROJECT AND QUIT THE COURSE. FURTHER SUCCESS—THE NUMBER OF PROJECTS AWARDED AND/OR EXTENDED TO REAL-WORLD APPLICATIONS. SINCE THE COURSES ARE TYPICALLY GIVEN MORE THAN ONCE DURING A SINGLE ACADEMIC YEAR, THE (ROUND) NUMBERS SHOWN IN THE TABLE CELLS FOLLOW THE PATTERN hn i=hn i= . . . TABLE III Unmanageable impediments. Personal relations among some STUDENTS’ EXPERIENCES OF AND COMMENTS ON ASD ISSUES students, lack of knowledge/experience, and the university (non- (PERCENTAGE RANGES REFLECT DIFFERENT PROJECTS) industry) setting can sometimes introduce extra inefficiency. These factors are difficult to eliminate, but teachers should still enforce skill and knowledge building through ASD practices. VIII. DISCUSSION The authors are not aware of another similar case study. Other authors have mostly discussed how to incorporate ASD in their current curricula (e.g., [11]), but did not provide any extensive experiences with teaching ASD. ASD is not widespread in university curricula yet. One of the reasons is that ASD is not yet supported by the official IEEE-CS/ACM guidelines for computing curricula [25], and using it in educational surroundings is still an object of personal Assign the Scrum Master role. In addition to the teacher being research, trial, and errors. On the other hand, serious efforts and the Scrum Coach, there should also be a Scrum Master in each analyses to improve this situation have been conducted or are in team (see Section IV-A and [19] for more details). This role can progress [26]–[28]. be taken by one of the students with the best knowledge of the Other reasons include traditionalism, the teachers’ mindsets, tools and technology used in a particular Sprint cycle (iteration). and usually slow (re)accreditation processes. Using practical Mentoring is not always effective. It is very ineffective and exercise in class (“learning by doing”) rather than traditional not agile at all if the students always expect to be told what teaching/learning methods has not yet been fully adopted. ASD to do in carrying out an ASD project. In this case study, lower is a set of grassroots methodologies, without significant support scores in Table II and more complaints in Table III have always from theory; hence, teachers teaching in the old way think it is been correlated with too much mentoring. Mentoring has proven risky to teach in “the agile way.” Also, some teachers with long effective only if limited to stimuli and indications for individual experience have witnessed the rise and fall of many other tech- and/or team exploration of relevant problems. nologies and approaches that, in their own time, had promised Teams should be small. Teams of four to five students, as well more efficient ways of software development. as some kind of fair competition between them, are well suited Not only software development can be done in “the agile for labs/tutorials. Large teams are more difficult to manage, way”; many teaching practices and the lessons the authors have especially if the students are inexperienced. As indicated in learned and discussed here can be applied to teaching other com- Table II, larger teams have featured in earlier course implemen- puting disciplines as well. tations. However, lower values for Average ASD acceptance Moreover, ASD practices have much in common with similar and higher values for Drop-out rate and Quit rate have been well-proven practices in other disciplines. For example, modern recorded in such cases (see Table II). architecture design studio courses are structured by projects, Teams must be self-organized. Self-organizing teams are at problems, and inquiry [29]. They rely on the use of professional the core of “the agile way.” This breaks with traditional class practice project “problems” to stimulate students to discover and management and requires the students’ self-control and self- explore key disciplinary concepts and skills. Students work in management. At first, teachers may find it difficult to conduct small teams and focus on intensive team communication and classes/labs this way, but the students’ greater involvement and performance of professional skills and transmission of estab- greater level of interaction come as a reward. lished knowledge, just like in ASD.
  • 6. 278 IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011 IX. CONCLUSION [17] C. Bauer and G. King, Java Persistence With Hibernate. Greenwich, CT: Manning, 2006. Teaching agile software development is most effective if it is [18] M. C. Paulk, C. V. Weber, and B. Curtis, The Capability Maturity done in the agile way: valuing agile students and their involve- Model: Guidelines for Improving the Software Process. Reading, ment/interactions over of-the-book processes, and valuing their MA: Addison-Wesley, 1994. [19] H. Kniberg, Scrum and XP from the Tranches: How We Do Scrum. skills built through practices over comprehensive understanding Toronto, ON, Canada: C4 Media Inc., 2007. of peculiarities of a specific ASD methodology. The teacher’s [20] M. Poppendieck and T. Poppendieck, Lean Software Development: An role should be a complete manifestation of the “guide on the Agile Toolkit. Reading, MA: Addison-Wesley, 2003. [21] D. J. Reifer, “Industry software cost, quality and productivity side, not a sage on the stage” principle. The lessons learned also benchmarks,” 2004 [Online]. Available: http://www.compaid. support the fact that teachers should better prevent their students com/caiinternet/ezine/Reifer-Benchmarks.pdf from developing the interpretation that ASD is a “silver bullet.” [22] “The Apache Software Foundation,” 2009 [Online]. Available: http:// www.apache.org Questioning dogmatic claims and adapting ASD to the class’s [23] P. Kroll, P. Kruchten, and G. Booch, The Rational Unified Process needs is much more effective than preaching ASD. Otherwise, it Made Easy: A Practitioner’s Guide to the RUP. Reading, MA: Ad- can be that the students will interpret it as a new Waterfall [30]. dison-Wesley, 2003. [24] J. Rubin, D. Chisnell, and J. Spool, Handbook of Usability Testing: How to Plan, Design, and Conduct Effective Tests. Hoboken, NJ: REFERENCES Wiley, 2008. [1] F. Maurer and S. Martel, “Extreme programming: Rapid development [25] “Curricula recommendations,” ACM, AIS, IEEE-CS, Sep. 30, for web-based applications,” IEEE Internet Comput., vol. 6, no. 1, pp. 2005 [Online]. Available: http://www.acm.org/education/education/ curric_vols/CC2005-March06Final.pdf 86–90, Jan./Feb. 2002. [2] K. Beck et al., “Manifesto for agile software development,” Feb. 2001 [26] L. Williams and R. Upchurch, “Extreme programming for software en- gineering education?,” in Proc. Frontiers Educ. Conf., 2002, vol. 1, pp. [Online]. Available: http://agilemanifesto.org/ [3] K. Beck, Extreme Programming Explained: Embrace Change. T2D-12–T2D-17. [27] T. Flohr and T. Schneider, “An XP experiment with students—Setup Reading, MA: Addison-Wesley, 2004. [4] ” The University of Texas, Austin, TX, 2006 [Online]. Available: http:// and problems,” in Proc. PROFES, Oulu, Finland, 2005, LNCS 3547. [28] B. Wolf-Gideon, C. Lilienthal, and A. Schmolitzky, “Weaving experi- www.cat.utexas.edu/ [5] “Bowling Green State University—The Agile Software Factory” 2009 ences from software engineering training in industry into mass univer- [Online]. Available: http://agile.bgsu.edu/ sity education,” in Proc. Inf. Syst. Educ. Conf., Newport, 2004, vol. 21, p. §3452. [6] A. Olagbemiro, “605.407—Agile software development methods course homepage,” Johns Hopkins University, May 30, 2009 [On- [29] A. Quinlan and P.-A. Johnson, “A curriculum approach to embed- ding inquiry practices in architecture design studio courses,” in The line]. Available: http://ep.jhu.edu/course-homepages/viewpage.php? homepage_id=3128 Learning Community: First Explorations of the Research-Teaching Nexus at UNSW, R. Freestone, A. Bagnara, M. Scoufis, and C. Pratt, [7] “ScrumAlliance—Transforming the world of work,” Scrum Alliance, Inc., 2009 [Online]. Available: http://www.scrumalliance.org/ Eds. Sydney, Australia: UNSW, 2003, pp. 49–55. [30] J. Naresh, “Managed chaos: Naresh Jain’s random thoughts on [8] G. Asproni, “Motivation, teamwork, and agile development,” Agile Times, vol. 4, no. 1, pp. 8–15, Feb. 2004. software development and adventure sports,” Agile FAQs blog, [9] M. A. Ardis and C. A. Dugas, “Test-first teaching: Extreme program- Apr. 29, 2009 [Online]. Available: http://blogs.agilefaqs.com/ 2009/04/29/agile-as-practiced-today-is-the-new-waterfall/ ming meets instructional design in software engineering courses,” in Proc. 34th ASEE/IEEE Frontiers Educ. Conf., Savannah, Georgia, Oct. 20–23, 2004, vol. 2, pp. F1C-25–F1C-30. z´ Vladan Devedˇ ic received the B.S., M.S., and Ph.D. degrees in electrical en- [10] G. Hedin, L. Bendix, and B. Magnusson, “Teaching extreme program- gineering and computer science from the University of Belgrade, Belgrade, ming to large groups of students,” J. Syst. Softw. Archive, vol. 74, no. Serbia, in 1982, 1988, and 1993, respectively. 2, pp. 133–146, Jan. 2005, Special issue: The new context for software He is a Professor of computer science with the Department of Software En- engineering education and training. gineering, FON—School of Business Administration, University of Belgrade, [11] P. Maher, “Weaving agile software development techniques into a Belgrade, Serbia. He is the founder and Chair of the GOOD OLD AI research traditional computer science curriculum,” in Proc. 6th Int. Conf. Inf. network. So far, he published six books and more than 300 research papers. His Technol., New Generations, Las Vegas, NV, Apr. 27–29, 2009, pp. current professional and research interests include software engineering and in- 1687–1688. telligent systems. [12] J. Stapleton and P. Constable, DSDM Dynamic Systems Development Method: The Method in Practice. Reading, MA: Addison-Wesley, 1997. [13] A. Cockburn, Crystal Clear: A Human-Powered Methodology for ´ Sa˘a R. Milenkovic received the B.S. and M.S. degrees in information sys- s Small Teams. Reading, MA: Addison-Wesley, 2005. tems and technologies in 2006 and 2009, respectively, from the FON—School [14] “New Standards Committee (NesCom) recommendations,” IEEE-SA of Business Administration, University of Belgrade, Belgrade, Serbia, where he Standards Board, 2009 [Online]. Available: http://standards.ieee.org/ is currently a Ph.D. student of software engineering. board/nes/projects/0712nesrec.pdf He is a Teaching Assistant with the Faculty of Computer Sciences, Mega- [15] C. Walls and R. Breidenbach, Spring in Action. Greenwich, CT: Man- trend University, Belgrade, Serbia. Prior to this position, he worked in various ning, 2007. positions in education and computer programming since 1997. [16] C. Beust and H. Suleiman, Next Generation Java Testing. Reading, ´ Mr. Milenkovic is a member of Agile and Scrum Alliances and has been a MA: Addison-Wesley Professional, 2007. Certified Scrum Master since 2009.