Professional teaching with Passerelles Numériques Vietnam

Benoit Tellier
Linagora Engineering
3 min readMar 31, 2017
Students from Passerelles Numériques Vietnam in Da Nang

For the last two weeks, Linagora Vietnam and OpenPaaS staff organized a hackaton in Passerelles Numériques Vietnam.

Passerelles Numériques is a french NGO (Non Governemental Organisation) which focus on teaching underprivileged students about IT. They take care of them from program interviews until they got a job, and have good employment rates. Most of children they are working with could not have offered a college degree otherwise.

Action of Linagora in Da Nang

Linagora Vietnam organized a two weeks Java training centered on methodologies used in Linagora, by using and contributing to Linagora’s Free software. I manager eight students (Mai, Lai, Suu, Cuong, Phuc, Vi, am and Tuan) in four pair programming teams.

The work we did with students is centered around real code contributions. The code they write should end up being contributed to the project. And each pair programming team was working on a different ticket, to avoid duplicated work. Students:

A JIRA ticket on the Apache James server solved by Passerelles Numériques Vietnam students
  • Wrote test code for some untested mail processing logic
  • Proposed some new mail processing building blocks
  • Implemented interfacing allowing the use of Quotas on top of JPA
  • Challenged some Java8 code migration

To do this, we set up some common good practice we use on a daily base at Linagora.

Teaching Linagora methodology!

We used an adapted version of the SCRUM framework to organize the work of students. We got a planning each Monday, a review before leaving each Friday. We had a daily meeting, maintained a backlog, a board, and a burn-down chart.

Burn-down chart of second week. We finally met the objectives the last day.

Getting agreement in a company is something very important. We set up a review process using GitHub for them to get a maximum of feed-backs. So they learned about GitHub and used the Git command line, opened pull request. We ensured to give the comments allowing them to improve the code quality of their contributions. We also encouraged them to read each other work.

Then we enforced the use of tests. We started writing JUNIT tests for untested parts of the James project. We showed them how to use tests to enforce specifications of what you expect your code to do. We showed them tests allow you safe refactoring and writing maintainable code.

That being done the first week, we presented some of the James team coding best practice. Most of them are listed in the excellent Clean code book: write test, single responsibility, limit the size of classes/methods, limit the number of parameters, prefer composition over inheritance. We also added some of our specific rules, mostly about java8.

Finally, we showed them the big picture. Showing them how their work integrates into the James server and in OpenPaaS. We were able to demonstrate them:

Thunderbird displaying quotas of a JPA stored mailbox
  • A rejected email because of too low quotas, a piece of logic they contributed to refactor. This was one from the OpenPaaS interface.
  • A IMAP server based on the work they contributed to write.

As a conclusion, I really was impressed by Passerelles Numériques students in Da Nang. They work well in group, are very motivated and learn fast! Working with them was a real pleasure. And I hope this partnership might help them in their future professional life.

--

--