Teaching agile
Upcoming SlideShare
Loading in...5
×
 

Teaching agile

on

  • 363 views

 

Statistics

Views

Total Views
363
Views on SlideShare
363
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Teaching agile Teaching agile Document Transcript

  • IEEE TRANSACTIONS ON EDUCATION, VOL. 54, NO. 2, MAY 2011 273Teaching 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), informationteaching agile software development to students of computer technologies (IT), and information systems (IS)] teach ASD inscience, 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 isbased on the authors’ eight years of experience in teaching agile the first ASD centers and laboratories at universities have startedsoftware methodologies to various groups of students at different to appear [4], [5] teaching the new skills to new generations ofuniversities, 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 incourses on agile software development, given in different teaching teaching ASD to students of computing at several universitiessettings and at different levels, and briefly surveys variations tothese courses given elsewhere. Based on the experience acquired, from 2002 to 2009, and is relevant to both undergraduate andanalyses 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 teachingteaching 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 WORKence 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 oftenT HE term agile software development (ASD)—as opposed to traditional, plan-centric software development—refersto 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 general1) 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 themaintaining 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. Itoverhead [1]. ASD fits small development teams well. Some of is also important to note that there is evidence that both studentsthe key issues and practices in ASD are: very short development and teachers at universities are very motivated and interested incycles (called iterations, or “sprints”) resulting in many small, using ASD in courses [8]–[11]. The authors’ own experienceincremental 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 nowdisciplined and continuous small modifications, called refac- well developed and widespread. Almost every ASD approachtoring; 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. Aorous and continuous code testing and integration. The Agile new IEEE standard, P1648, that will provide a firm basis as wellManifesto [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 detailedintroduction 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 ASDcomputing 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; inMay 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 ofBelgrade, 11000 Belgrade, Serbia (e-mail: devedzic@fon.rs). A. Case 1—Undergraduate Required Course ´ S. R. Milenkovic, is with FKN—Faculty of Computer Sciences, MegatrendUniversity, 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 2011Montenegro) 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 toof the course hours are dedicated to ASD. Prerequisites include changing requirements, the teacher also plays the role of theIntroduction 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 feedbacktrend 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 adesigning software architecture, testing, integration, software process.metrics, and the various software management methodologies In practicing the Scrum process, assigning roles (with theirand 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 theenvironment 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 Structuretive course on advanced software development at the University The course described in Case 1 teaches ASD for about halfof Belgrade; M.S. students at the Mediterranean University in of its core hours, hence the coverage of ASD is not as detailedMontenegro take a course on software project management, half as in the course of Case 2. In both courses, all the major generalof which largely corresponds to the course given at the Univer- ASD concepts are covered in class, and a brief overview andsity 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 moreThe course enforces ASD principles rather than requiring the detail, followed by an extended comparative evaluation of theirstudents 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, taskD. Variations boards, and the like. Several specific software development Undergraduate courses typically focus more on requirements tools and environments are also used. Students propose projectsgathering (user stories) and the notion of testing and integration that they want to work on, and these projects are developed inusing 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 instudents through the entire process of developing a simple Web the lab.application. Graduate courses are taken by professionals withsome relevant experience. Here, the focus is more on practices C. Pedagogical Issuesthat lead to improvements in software quality (such as refac- An important pedagogical objective in teaching ASD is to lettoring 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 undergraduatetion issues are sometimes taught in the context of ASD as well. students (early 20s), this is relatively easy to achieve since theFewer 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 betweenmaintained 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 approximatelyA. 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 competitionconstantly reminded) includes the Agile Manifesto values and between the projects can be helpful in keeping the pace up (ifprinciples [2]. To an extent, these are adapted to development this is not overemphasized). Giving the students an idea of thein 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 275effective way of achieving this. However, experience shows VI. EXPERIENCES AND EVALUATIONSthat this is less effective if given as an assignment. The teachers Weaving together two or more ASD approaches (such asshould rather take on the role of customers and specify the user Scrum and XP) in a single course is not difficult if the teachersstory for the next lab in order to stimulate post-reflection and do not make strict distinctions between practices drawn fromcreative thinking during the intervening period (usually one different approaches. Moreover, allowing a lot of tolerance inweek). 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 thetutor 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 thanonly when they are uncertain about an issue. The teacher/tutor about theory, the best results are achieved if the teaching is givenmonitors the teams’ activities both in the class/lab and off-hours. “in the agile way,” i.e., as practical tutorials/labs. Luckily, theThe latter is enabled because project-related interaction between universities where the specific courses mentioned are given arethe team members through social networking tools is required supportive to this approach. It was also found that students easilyand, technically, the teacher is always the administrator/owner adopt this approach and quickly adapt to ASD in general. Theirof such a social network. This way, the students essentially un- motivation rises from the very first classes, and their tendencydergo 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 classroomuate-level courses come from industry and already have some layout can be arranged to mimic the layout of developers’ officesreal-world software development experience makes it necessary recommended in ASD—this should be done. Likewise, stand-upto 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 theirA. 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 thestart of the course, the teachers interview the students to find out teachers/tutors should focus on coding and testing details whenwhat specific software development technologies and practices guiding the students in class. Moreover, the teachers shouldthey are used to, as well as what specific software processes are occasionally themselves pair with students (or possibly justpracticed in their companies. Then, they run the course adap- join a pair of students) for a short time, to participate in thetively 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. Individualpress their views of how specific Scrum roles are (or would be) differences and capabilities are naturally greater in studentseen in their companies. They are also requested to discuss and teams than in professional ones. A good heuristic in calculatingpossibly demonstrate in class how refactoring and testing is (or project velocity is to assume that the number of students inhas been) taken care of in the context of a specific project with each team is about 20% less than the actual number, whichwhich 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 moreon 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 experiencedreal-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 onlytheir 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 usedare also asked to reflect on what specific ASD practices would at a later stage. Later on, they can teach this to others when inget 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 ana 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, thattogether 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 thethe 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 startand consequently require special care and intervention by the thinking that anything anywhere in industry can be done “inteacher. 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 theproductivity in the lab are collected and updated throughout the necessary “reality check.” A good way to do this is to remindcourses. 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. Startingand productivity data published about real-world software in- from qualitative course evaluations and trying to minimize thedustry projects (e.g., [21]) is that the students’ productivity is confusion of some students and their cautious and/or negativeonly about 15%–20% less than that of developers in industry. comments (see Table III), several other topics variations haveThis is not much of a productivity gap, given the differences in been tried in this case study. The most effective ones proved toexperience 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 Processeach 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 eachissues related to teaching ASD. Tables II and III show typical ex- project carried out by the students to a successful conclusioncerpts from these evaluations. Much of the contents of Tables II at the end of the course. It does require a lot of involvementand III are self-explanatory. It can be noted from Table II that on the part of the teacher, but if omitted, the pedagogical andcautious 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 istesting and refactoring, as well as the fact that design is not essential to this issue in terms of the Drop-out rate and Quitemphasized 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 thethese 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 studentsthe cases where no further information on how the students have in practical activities must be enforced in order to increase thecontinued 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 precededitive 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 andthe Scrum Coach, there should also be a Scrum Master in each analyses to improve this situation have been conducted or are inteam (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 traditionalnot agile at all if the students always expect to be told what teaching/learning methods has not yet been fully adopted. ASDto do in carrying out an ASD project. In this case study, lower is a set of grassroots methodologies, without significant supportscores in Table II and more complaints in Table III have always from theory; hence, teachers teaching in the old way think it isbeen correlated with too much mentoring. Mentoring has proven risky to teach in “the agile way.” Also, some teachers with longeffective 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 agilefor labs/tutorials. Large teams are more difficult to manage, way”; many teaching practices and the lessons the authors haveespecially 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 similarand higher values for Drop-out rate and Quit rate have been well-proven practices in other disciplines. For example, modernrecorded 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 professionalthe core of “the agile way.” This breaks with traditional class practice project “problems” to stimulate students to discover andmanagement and requires the students’ self-control and self- explore key disciplinary concepts and skills. Students work inmanagement. At first, teachers may find it difficult to conduct small teams and focus on intensive team communication andclasses/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 Maturitydone 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: Anrole 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 productivityside, 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.pdffrom developing the interpretation that ASD is a “silver bullet.” [22] “The Apache Software Foundation,” 2009 [Online]. Available: http:// www.apache.orgQuestioning dogmatic claims and adapting ASD to the class’s [23] P. Kroll, P. Kruchten, and G. Booch, The Rational Unified Processneeds 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.