Teaching TDD, The Coding Dojo Style
The 13th
IEEE International Conference on Advanced Learning
Technologies (ICALT) 2013
Ramiro Batista Luz1
ramiroluz@gmail.com
Adolfo Gustavo Serra Seca Neto2
adolfo@utfpr.edu.br
Robinson Vida Noronha3
vida@utfpr.edu.br
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
Abstract
Coding Dojo is a dynamic and collaborative activity inspired in martial
arts 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. This
article presents some Coding Dojo characteristics that help teaching agile
development techniques. Some experienced practitioners were
interviewed to get qualitative information about their perception of the
Coding Dojo practice. An electronic survey was answered by Coding Dojo
participants from several Coding Dojo groups in Brazil. One ontology is
being elaborated to represent the interviews knowledge.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Introduction
The word DOJO, place of the way, the place to study life, place
where martial arts are practiced.
Coding Dojo Origin (Dave Thomas, Laurent Bossavit, Emannuel
Gaillot).
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
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
The research
We are researching how the Coding Dojo can help the knowledge sharing
during programming classes, the advantages and disadvantages. To
acquire this surveys were submitted to Coding Dojo practitioners,
interviews were recorded and Ontologies were made to represent the
interviews knowledge.
Ramiro Luz et al. 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
State of the art
Some studies evaluate the quality of the software using agile
methods [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 the
practitioner’s perception of their agile method’s learning.
Report sharing the experience of running a Coding Dojo Group at
University of S˜ao 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 classes
by, [Carmo e Braganholo 2012].
Ramiro Luz et al. 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
Results
The next slides will show some graphics representing the survey responses
for the Coding Dojo techniques.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
The on-line survey got 64 answers. Figure 2 shows the distribution of the
participants regarding the experience in Coding Dojo sessions.
Figura: Coding Dojo number of sessions
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
The programming experience in years of the surveys respondents are
shown in Figure 3.
Figura: Programming experience in years
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
The majority of the volunteers agreed that baby steps help to solve
challenges gradually. Only 17% disagreed or are neutral to the
affirmation 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
The participants believe that writing tests before coding helps the
progress of the activity. In Figure 5, we see that 77% agree or strongly
agree with this affirmation.
Figura: Test driven development Coding Dojo practitioner’s perception.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
The participants agree that pair programming helps the leveling of the
attendees (Figure 6).
Figura: Pair programming Coding Dojo practitioner’s perception.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Interviews Ontology.
Figura: High level ontology
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Interviews Ontology, attendant hierarchy.
Figura: Attendant hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Interviews Ontology, evaluation hierarchy.
Figura: Evaluation hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Interviews Ontology, method hierarchy.
Figura: Method hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Interviews Ontology, structure hierarchy.
Figura: Structure hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Results analyses
It has been reported that Baby Steps, Pair Programming and TDD helps
gradual solutions, simplifies the process of finding a solution to a problem
and learn TDD in a Coding Dojo Session by the survey volunteers. The
interviewed specialists alleged that Coding Dojo is focused on practice, so
it is not appropriated to conceptual classes.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Conclusion
At this moment it is possible to notice that the Coding Dojo is a dynamic
activity which favors the participation and collaboration in an inclusive
learning environment where students are able to participate in the
teaching 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, pair
programming and continuous integration.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
Acknowledgement
Adolfo Gustavo Serra Seca Neto - Mentor
Robson Vida - Co-Mentor.
Tatiane Guimar˜aes, Matheus Ara´ujo, PETECO e PETCOCE, Coding
Dojo organization at UTFPR.
Jo˜ao Alberto Fabro and Gustavo Alberto Gim´enez Lugo -
institutional support to attend events.
Rodrigo Senra, Gustavo Alberto Gim´enez Lugo and Cesar Augusto
Tacla, ontology help
Danilo Sato, Hugo Corbucci, Daniel Wildt, Alexandre Freire,
Roberto Leite de Moraes Rodrigues, Mauricio Aniche and Elizabeth
Leddy - 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
References I
BOSSAVIT, L.; GAILLOT, E. The coder’s dojo – a different way to
teach and learn programming. In: HUTCHISON, D. et al. (Ed.).
Extreme programming and agile processes in software engineering.
Berlin, Heidelberg: Springer Berlin Heidelberg, 2005, (Lecture Notes
in 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 agile
practices using coding Dojos. In: SILLITTI, A. et al. (Ed.). Agile
processes in software engineering and extreme programming. Springer
Berlin Heidelberg, 2010, (Lecture Notes in Business Information
Processing, 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
References II
BRAVO, M. V. Abordagens para o ensino de pr´aticas de programa¸c˜ao
extrema. Disserta¸c˜ao (Mestrado) — Instituto de Matem´atica e
Estat´ıstica da Universidade de S˜ao 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 did´atico de
dojos de programa¸c˜ao. In: Workshop de educa¸c ao em computa¸c ao
(wei). sociedade brasileira de computa¸cao. [S.l.: s.n.], 2012.
DELGADO, C.; TOLEDO, R. de; BRAGANHOLO, V. Uso de dojos
no ensino superior de computa¸c˜ao. 2012.
DUBINSKY, Y.; HAZZAN, O. eXtreme programming as a framework
for student-project coaching in computer science capstone courses. In:
. IEEE Comput. Soc, 2003. p. 53–59. ISBN 0-7695-2047-2. Dispon´ıvel
em:
<http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1245424>
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
References III
JANZEN, D.; SAIEDIAN, H. Does test-driven development really
improve software design quality? IEEE Software, IEEE Computer
Society, Los Alamitos, CA, USA, v. 25, p. 77–84, 2008. ISSN
0740-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-driven
development in a university environment. In: The IEEE region 8
EUROCON 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
References IV
SATO, D. T.; CORBUCCI, H.; BRAVO, M. V. Coding dojo: an
environment for learning and sharing agile practices. AGILE
Conference, IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p.
459–464, 2008.
SATO, D. T.; CORBUCCI, H.; BRAVO, M. V. Coding dojo: an
environment for learning and sharing agile practices. AGILE
Conference, IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p.
459–464, 2008.
SINIAALTO, M.; ABRAHAMSSON, P. A comparative case study on
the impact of test-driven development on program design and test
coverage. In: Proceedings of the first international symposium on
empirical software engineering and measurement. Washington, DC,
USA: IEEE Computer Society, 2007. (ESEM ’07), p. 275–284. ISBN
0-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
References V
VODDE, B.; KOSKELA, L. Learning test-driven development by
counting 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
Contact
ramiroluz@gmail.com
http://www.slideshare.net/ramiroluz
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style

Teaching TDD, the Coding Dojo Style

  • 1.
    Teaching TDD, TheCoding Dojo Style The 13th IEEE International Conference on Advanced Learning Technologies (ICALT) 2013 Ramiro Batista Luz1 ramiroluz@gmail.com Adolfo Gustavo Serra Seca Neto2 adolfo@utfpr.edu.br Robinson Vida Noronha3 vida@utfpr.edu.br 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
  • 2.
    Abstract Coding Dojo isa dynamic and collaborative activity inspired in martial arts 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. This article presents some Coding Dojo characteristics that help teaching agile development techniques. Some experienced practitioners were interviewed to get qualitative information about their perception of the Coding Dojo practice. An electronic survey was answered by Coding Dojo participants from several Coding Dojo groups in Brazil. One ontology is being elaborated to represent the interviews knowledge. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 3.
    Introduction The word DOJO,place of the way, the place to study life, place where martial arts are practiced. Coding Dojo Origin (Dave Thomas, Laurent Bossavit, Emannuel Gaillot). 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
  • 4.
    Educational aspects Uneven classes. Interactionand 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
  • 5.
    The research We areresearching how the Coding Dojo can help the knowledge sharing during programming classes, the advantages and disadvantages. To acquire this surveys were submitted to Coding Dojo practitioners, interviews were recorded and Ontologies were made to represent the interviews knowledge. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 6.
    Coding Dojo Picture Figura:Coding Dojo of a local group. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 7.
    State of theart Some studies evaluate the quality of the software using agile methods [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 the practitioner’s perception of their agile method’s learning. Report sharing the experience of running a Coding Dojo Group at University of S˜ao 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 classes by, [Carmo e Braganholo 2012]. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 8.
    Methodology On-line survey usingLikert 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
  • 9.
    Results The next slideswill show some graphics representing the survey responses for the Coding Dojo techniques. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 10.
    The on-line surveygot 64 answers. Figure 2 shows the distribution of the participants regarding the experience in Coding Dojo sessions. Figura: Coding Dojo number of sessions Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 11.
    The programming experiencein years of the surveys respondents are shown in Figure 3. Figura: Programming experience in years Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 12.
    The majority ofthe volunteers agreed that baby steps help to solve challenges gradually. Only 17% disagreed or are neutral to the affirmation 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
  • 13.
    The participants believethat writing tests before coding helps the progress of the activity. In Figure 5, we see that 77% agree or strongly agree with this affirmation. Figura: Test driven development Coding Dojo practitioner’s perception. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 14.
    The participants agreethat pair programming helps the leveling of the attendees (Figure 6). Figura: Pair programming Coding Dojo practitioner’s perception. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 15.
    Interviews Ontology. Figura: Highlevel ontology Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 16.
    Interviews Ontology, attendanthierarchy. Figura: Attendant hierarchy Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 17.
    Interviews Ontology, evaluationhierarchy. Figura: Evaluation hierarchy Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 18.
    Interviews Ontology, methodhierarchy. Figura: Method hierarchy Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 19.
    Interviews Ontology, structurehierarchy. Figura: Structure hierarchy Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 20.
    Results analyses It hasbeen reported that Baby Steps, Pair Programming and TDD helps gradual solutions, simplifies the process of finding a solution to a problem and learn TDD in a Coding Dojo Session by the survey volunteers. The interviewed specialists alleged that Coding Dojo is focused on practice, so it is not appropriated to conceptual classes. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 21.
    Conclusion At this momentit is possible to notice that the Coding Dojo is a dynamic activity which favors the participation and collaboration in an inclusive learning environment where students are able to participate in the teaching 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, pair programming and continuous integration. Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 22.
    Acknowledgement Adolfo Gustavo SerraSeca Neto - Mentor Robson Vida - Co-Mentor. Tatiane Guimar˜aes, Matheus Ara´ujo, PETECO e PETCOCE, Coding Dojo organization at UTFPR. Jo˜ao Alberto Fabro and Gustavo Alberto Gim´enez Lugo - institutional support to attend events. Rodrigo Senra, Gustavo Alberto Gim´enez Lugo and Cesar Augusto Tacla, ontology help Danilo Sato, Hugo Corbucci, Daniel Wildt, Alexandre Freire, Roberto Leite de Moraes Rodrigues, Mauricio Aniche and Elizabeth Leddy - 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
  • 23.
    References I BOSSAVIT, L.;GAILLOT, E. The coder’s dojo – a different way to teach and learn programming. In: HUTCHISON, D. et al. (Ed.). Extreme programming and agile processes in software engineering. Berlin, Heidelberg: Springer Berlin Heidelberg, 2005, (Lecture Notes in 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 agile practices using coding Dojos. In: SILLITTI, A. et al. (Ed.). Agile processes in software engineering and extreme programming. Springer Berlin Heidelberg, 2010, (Lecture Notes in Business Information Processing, 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
  • 24.
    References II BRAVO, M.V. Abordagens para o ensino de pr´aticas de programa¸c˜ao extrema. Disserta¸c˜ao (Mestrado) — Instituto de Matem´atica e Estat´ıstica da Universidade de S˜ao 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 did´atico de dojos de programa¸c˜ao. In: Workshop de educa¸c ao em computa¸c ao (wei). sociedade brasileira de computa¸cao. [S.l.: s.n.], 2012. DELGADO, C.; TOLEDO, R. de; BRAGANHOLO, V. Uso de dojos no ensino superior de computa¸c˜ao. 2012. DUBINSKY, Y.; HAZZAN, O. eXtreme programming as a framework for student-project coaching in computer science capstone courses. In: . IEEE Comput. Soc, 2003. p. 53–59. ISBN 0-7695-2047-2. Dispon´ıvel em: <http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=1245424> Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
  • 25.
    References III JANZEN, D.;SAIEDIAN, H. Does test-driven development really improve software design quality? IEEE Software, IEEE Computer Society, Los Alamitos, CA, USA, v. 25, p. 77–84, 2008. ISSN 0740-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-driven development in a university environment. In: The IEEE region 8 EUROCON 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
  • 26.
    References IV SATO, D.T.; CORBUCCI, H.; BRAVO, M. V. Coding dojo: an environment for learning and sharing agile practices. AGILE Conference, IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p. 459–464, 2008. SATO, D. T.; CORBUCCI, H.; BRAVO, M. V. Coding dojo: an environment for learning and sharing agile practices. AGILE Conference, IEEE Computer Society, Los Alamitos, CA, USA, v. 0, p. 459–464, 2008. SINIAALTO, M.; ABRAHAMSSON, P. A comparative case study on the impact of test-driven development on program design and test coverage. In: Proceedings of the first international symposium on empirical software engineering and measurement. Washington, DC, USA: IEEE Computer Society, 2007. (ESEM ’07), p. 275–284. ISBN 0-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
  • 27.
    References V VODDE, B.;KOSKELA, L. Learning test-driven development by counting 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
  • 28.