A coding dojo is a place where software developers come to improve their coding skills by following exercises similar to the martial arts dojo. On the meet-up, a kata (programming challenge) is posed for each session; and required to solve in an aware and understanding manners. The crowd is divided into groups, each group is mentored by a Sensei (Japanese word for teacher). During the session, each group will spend a certain amount of time developing a solution to the kata, the code was published and version archived for other groups to reference and study.
The main purpose at coding dojo is not to find the solution first and fast but to understand the nature of programming and each line of codes, one can think of coding dojo a place where developers gather and do meditation over engineering practices.
On the day, we have Alex Cuva (traveled from Đà Nẳng) to speak about Agile Development Best practices, he concurred Engineering Practices are most important for companies to adopt Scrum or Agile, he pointed out the utmost importance of frequent code reviews, automated tests and continuous integration. He surprised the audience by convincing developers to "never comment your code"; with argument "the code should be self-explaining", if a code is complicated enough, it needs comments, then that code needs refactoring and/or add unit-test as a good way to explain how the code should be expected to work.
Following Alex Cuva, Hiep Le went through Agile Manifesto from an agile developer eyes with an agile developer mind. He directly stated Agile Manifesto is not apparently useful for developers but Manifesto for Software Craftsmanship which was later explained and explored.
Not only working software, but also well-crafted software.
Not only responding to change, but also steadily adding value.
Not only individuals and interactions, but also a community of professionals.
Not only customer collaboration, but also productive partnerships.
After explaining about Manifesto for Software Craftsmanship, he went on to how to TDD and leaded all groups to have hands-on experience of Red-Green-Yellow cycle where as:
Red: time to only write tests
Green: time to only write codes.
Yellow: time to only do refactoring on working codes.
Some taken pictures during the dojo: