Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Teaching TDD, the Coding Dojo Style
1. 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
2. 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
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.
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
5. 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
6. Coding Dojo Picture
Figura: Coding Dojo of a local group.
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
7. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
16. Interviews Ontology, attendant hierarchy.
Figura: Attendant hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
17. Interviews Ontology, evaluation hierarchy.
Figura: Evaluation hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
18. Interviews Ontology, method hierarchy.
Figura: Method hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
19. Interviews Ontology, structure hierarchy.
Figura: Structure hierarchy
Ramiro Luz et al. Teaching TDD, The Coding Dojo Style
20. 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
21. 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
22. 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
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