teaching tdd, the coding dojo style

28
Teaching TDD, The Coding Dojo Style The 13 th IEEE International Conference on Advanced Learning Technologies (ICALT) 2013 Ramiro Batista Luz 1 [email protected] Adolfo Gustavo Serra Seca Neto 2 [email protected] Robinson Vida Noronha 3 [email protected] 1 Systems development department City Chamber of Curitiba Bar˜ ao do Rio Branco St., S/N, Downtown, Curitiba, Paran´ a, Brazil. 2 Academic Department of Informatics Federal University of Technology - Paran´ a Curitiba, Paran´ a, Brazil 3 Academic Department of Electronics Federal University of Technology - Paran´ a Curitiba, Paran´ a, Brazil July 15-18, 2013 Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Upload: ramiro-batista-da-luz

Post on 18-Nov-2014

1.057 views

Category:

Technology


3 download

DESCRIPTION

Presented on the 13 International Conference on Advanced Learning Tecnologies - ICALT 2013.

TRANSCRIPT

Page 1: Teaching TDD, the Coding Dojo Style

Teaching TDD, The Coding Dojo StyleThe 13th IEEE International Conference on Advanced Learning

Technologies (ICALT) 2013

Ramiro Batista Luz1 [email protected]

Adolfo Gustavo Serra Seca Neto2 [email protected]

Robinson Vida Noronha3 [email protected]

1Systems development departmentCity Chamber of Curitiba

Barao do Rio Branco St., S/N, Downtown, Curitiba, Parana, Brazil.

2Academic Department of InformaticsFederal University of Technology - Parana

Curitiba, Parana, Brazil

3Academic Department of ElectronicsFederal University of Technology - Parana

Curitiba, Parana, Brazil

July 15-18, 2013

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 2: Teaching TDD, the Coding Dojo Style

Abstract

Coding Dojo is a dynamic and collaborative activity inspired in martialarts that follows a discipline in a cheerful and pleasant environment.Several agile development techniques are used during the Coding Dojo,such as test driven development, pair programming and baby steps. Thisarticle presents some Coding Dojo characteristics that help teaching agiledevelopment techniques. Some experienced practitioners wereinterviewed to get qualitative information about their perception of theCoding Dojo practice. An electronic survey was answered by Coding Dojoparticipants from several Coding Dojo groups in Brazil. One ontology isbeing elaborated to represent the interviews knowledge.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 3: Teaching TDD, the Coding Dojo Style

Introduction

The word DOJO, place of the way, the place to study life, placewhere martial arts are practiced.

Coding Dojo Origin (Dave Thomas, Laurent Bossavit, EmannuelGaillot).

What is a Coding Dojo?

Educational aspects.

Test driven development (TDD)

Pair Programming.

Baby steps.

Requirements.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 4: Teaching TDD, the Coding Dojo Style

Educational aspects

Uneven classes.

Interaction and participation in classes.

Theory, example and practice.

Collaborative learning and learn to collaborate.

Team work.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 5: Teaching TDD, the Coding Dojo Style

The research

We are researching how the Coding Dojo can help the knowledge sharingduring programming classes, the advantages and disadvantages. Toacquire this surveys were submitted to Coding Dojo practitioners,interviews were recorded and Ontologies were made to represent theinterviews knowledge.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 6: Teaching TDD, the Coding Dojo Style

Coding Dojo Picture

Figura: Coding Dojo of a local group.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 7: Teaching TDD, the Coding Dojo Style

State of the art

Some studies evaluate the quality of the software using agilemethods [Vodde e Koskela 2007], [Siniaalto e Abrahamsson 2007],[Janzen e Saiedian 2008] and [Pancur et al. 2003].

Others evaluated agile methods adherence [Bravo e Goldman 2010]and [Dubinsky e Hazzan 2003].

Mariana Bravo, [Bravo 2011] used Coding Dojo to evaluate thepractitioner’s perception of their agile method’s learning.

Report sharing the experience of running a Coding Dojo Group atUniversity of Sao Paulo, [Sato, Corbucci e Bravo 2008].

An adapted Coding Dojo method was used in classes.[Delgado, Toledo e Braganholo 2012].

The Coding Dojo was evaluated as a method in programming classesby, [Carmo e Braganholo 2012].

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 8: Teaching TDD, the Coding Dojo Style

Methodology

On-line survey using Likert Scale.

Interview with specialists.

In place survey during Coding Dojo meetings.

Interviews Ontology, using Methontology[Lopez, Perez e Juristo 1997].

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 9: Teaching TDD, the Coding Dojo Style

Results

The next slides will show some graphics representing the survey responsesfor the Coding Dojo techniques.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 10: Teaching TDD, the Coding Dojo Style

The on-line survey got 64 answers. Figure 2 shows the distribution of theparticipants regarding the experience in Coding Dojo sessions.

Figura: Coding Dojo number of sessions

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 11: Teaching TDD, the Coding Dojo Style

The programming experience in years of the surveys respondents areshown in Figure 3.

Figura: Programming experience in years

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 12: Teaching TDD, the Coding Dojo Style

The majority of the volunteers agreed that baby steps help to solvechallenges gradually. Only 17% disagreed or are neutral to theaffirmation which can be seen in Figure 4.

Figura: Baby steps Coding Dojo practitioner’s perception.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 13: Teaching TDD, the Coding Dojo Style

The participants believe that writing tests before coding helps theprogress of the activity. In Figure 5, we see that 77% agree or stronglyagree with this affirmation.

Figura: Test driven development Coding Dojo practitioner’s perception.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 14: Teaching TDD, the Coding Dojo Style

The participants agree that pair programming helps the leveling of theattendees (Figure 6).

Figura: Pair programming Coding Dojo practitioner’s perception.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 15: Teaching TDD, the Coding Dojo Style

Interviews Ontology.

Figura: High level ontology

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 16: Teaching TDD, the Coding Dojo Style

Interviews Ontology, attendant hierarchy.

Figura: Attendant hierarchy

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 17: Teaching TDD, the Coding Dojo Style

Interviews Ontology, evaluation hierarchy.

Figura: Evaluation hierarchy

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 18: Teaching TDD, the Coding Dojo Style

Interviews Ontology, method hierarchy.

Figura: Method hierarchy

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 19: Teaching TDD, the Coding Dojo Style

Interviews Ontology, structure hierarchy.

Figura: Structure hierarchy

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 20: Teaching TDD, the Coding Dojo Style

Results analyses

It has been reported that Baby Steps, Pair Programming and TDD helpsgradual solutions, simplifies the process of finding a solution to a problemand learn TDD in a Coding Dojo Session by the survey volunteers. Theinterviewed specialists alleged that Coding Dojo is focused on practice, soit is not appropriated to conceptual classes.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 21: Teaching TDD, the Coding Dojo Style

Conclusion

At this moment it is possible to notice that the Coding Dojo is a dynamicactivity which favors the participation and collaboration in an inclusivelearning environment where students are able to participate in theteaching process showed by papers like [Bossavit e Gaillot 2005] and[Sato, Corbucci e Bravo 2008]. Coding Dojo is very focused on practice,so it is indicated to repetitive and disciplined tasks as TDD, pairprogramming and continuous integration.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 22: Teaching TDD, the Coding Dojo Style

Acknowledgement

Adolfo Gustavo Serra Seca Neto - Mentor

Robson Vida - Co-Mentor.

Tatiane Guimaraes, Matheus Araujo, PETECO e PETCOCE, CodingDojo organization at UTFPR.

Joao Alberto Fabro and Gustavo Alberto Gimenez Lugo -institutional support to attend events.

Rodrigo Senra, Gustavo Alberto Gimenez Lugo and Cesar AugustoTacla, ontology help

Danilo Sato, Hugo Corbucci, Daniel Wildt, Alexandre Freire,Roberto Leite de Moraes Rodrigues, Mauricio Aniche and ElizabethLeddy - interviews.

The surveys volunteers.

All the ICALT team, specially Lanqin Zheng for all the help.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 23: Teaching TDD, the Coding Dojo Style

References I

BOSSAVIT, L.; GAILLOT, E. The coder’s dojo – a different way toteach and learn programming. In: HUTCHISON, D. et al. (Ed.).Extreme programming and agile processes in software engineering.Berlin, Heidelberg: Springer Berlin Heidelberg, 2005, (Lecture Notesin Computer Science, v. 3556). p. 290–291. ISBN 978-3-540-26277-0,978-3-540-31487-5. Disponıvel em:<http://www.springerlink.com/index/10.1007/11499053 54>.

BRAVO, M.; GOLDMAN, A. Reinforcing the learning of agilepractices using coding Dojos. In: SILLITTI, A. et al. (Ed.). Agileprocesses in software engineering and extreme programming. SpringerBerlin Heidelberg, 2010, (Lecture Notes in Business InformationProcessing, v. 48). p. 379–380. ISBN 978-3-642-13054-0.10.1007/978-3-642-13054-0 41. Disponıvel em:<http://dx.doi.org/10.1007/978-3-642-13054-0 41>.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 24: Teaching TDD, the Coding Dojo Style

References II

BRAVO, M. V. Abordagens para o ensino de praticas de programacaoextrema. Dissertacao (Mestrado) — Instituto de Matematica eEstatıstica da Universidade de Sao Paulo, maio 2011. Disponıvel em:<http://grenoble.ime.usp.br/ gold/orientados/dissertacao-MarianaBravo.pdf>.

CARMO, D.; BRAGANHOLO, V. Um estudo sobre o uso didatico dedojos de programacao. In: Workshop de educac ao em computac ao(wei). sociedade brasileira de computacao. [S.l.: s.n.], 2012.

DELGADO, C.; TOLEDO, R. de; BRAGANHOLO, V. Uso de dojosno ensino superior de computacao. 2012.

DUBINSKY, Y.; HAZZAN, O. eXtreme programming as a frameworkfor student-project coaching in computer science capstone courses. In:. IEEE Comput. Soc, 2003. p. 53–59. ISBN 0-7695-2047-2. Disponıvelem:<http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1245424>.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 25: Teaching TDD, the Coding Dojo Style

References III

JANZEN, D.; SAIEDIAN, H. Does test-driven development reallyimprove software design quality? IEEE Software, IEEE ComputerSociety, Los Alamitos, CA, USA, v. 25, p. 77–84, 2008. ISSN0740-7459.

LOPEZ, M. F.; PEREZ, A. G.; JURISTO, N. METHONTOLOGY:from Ontological Art towards Ontological Engineering. In:Proceedings of the aaai97 spring symposium. Stanford, USA: [s.n.],1997. p. 33–40.

PANCUR, M. et al. Towards empirical evaluation of test-drivendevelopment in a university environment. In: The IEEE region 8EUROCON 2003. computer as a tool. Ljubljana, Slo-venia: IEEE, 2003. v. 2, p. 83–86. ISBN 0-7803-7763-X. Disponıvel em:<http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1248153>.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 26: Teaching TDD, the Coding Dojo Style

References IV

SATO, D. T.; CORBUCCI, H.; BRAVO, M. V. Coding dojo: anenvironment for learning and sharing agile practices. AGILEConference, IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p.459–464, 2008.

SATO, D. T.; CORBUCCI, H.; BRAVO, M. V. Coding dojo: anenvironment for learning and sharing agile practices. AGILEConference, IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p.459–464, 2008.

SINIAALTO, M.; ABRAHAMSSON, P. A comparative case study onthe impact of test-driven development on program design and testcoverage. In: Proceedings of the first international symposium onempirical software engineering and measurement. Washington, DC,USA: IEEE Computer Society, 2007. (ESEM ’07), p. 275–284. ISBN0-7695-2886-4. Disponıvel em:<http://dx.doi.org/10.1109/ESEM.2007.2>.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 27: Teaching TDD, the Coding Dojo Style

References V

VODDE, B.; KOSKELA, L. Learning test-driven development bycounting lines. IEEE Software, IEEE Computer Society, Los Alamitos,CA, USA, v. 24, p. 74–79, 2007. ISSN 0740-7459.

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Page 28: Teaching TDD, the Coding Dojo Style

Contact

[email protected]

http://www.slideshare.net/ramiroluz

Ramiro Luz et al. Teaching TDD, The Coding Dojo Style