KotlinConf 18 - Learn together. Not the same.

KotlinConf 18 - Learn together. Not the same.

Joint talk with Maria Neumayer

Adopting Kotlin is a great opportunity to learn something new as a team. When learning we tried different approaches - from an hour of learning Kotlin, to improving our code reviews to focus on learning.

Last year our team made the leap to using Kotlin in production - what worked? What didn’t? How did we keep the collaboration momentum going?

Hear about how learning a new language as a team made us more open to asking questions, admitting things we didn’t know, prevented imposter syndrome and improved our engineering culture, process and code.

225a5f32a222d1b8ff2506af8c5a51a1?s=128

Amal Kakaiya

October 05, 2018
Tweet

Transcript

  1. LEARN TOGETHER. NOT THE SAME. Maria Neumayer @marianeum Amal Kakaiya

    @K4KYA
  2. Consumer Rider Restaurant

  3. Consumer Rider Restaurant

  4. Android

  5. Consumer Rider Restaurant

  6. Collaboration through code reviews

  7. None
  8. None
  9. label: for review number_of_picks: 2 possible_reviewers: - anikiki - K4KYA

    - marianeum - MayaGardeva - romainpiel - sgregoryuk
  10. One goal: Sharing knowledge

  11. Learning as a team

  12. Stuart Me…

  13. “Assume that anyone you're teaching has no knowledge, but infinite

    intelligence.”
  14. Code reviews are for more than just correctness

  15. Create forums for discussion

  16. It’s ok to: - Say I don’t know - Not

    understand everything
  17. interface Screen {A fun showMessage(message: String) }A abstract class BaseFragment

    :xFragment(), Screen {r override fun showMessage(message: String) {s Toast.makeText(…).show() }t }u abstract class BaseActivity :xActivity(), Screen {c override fun showMessage(message: String) {d Toast.makeText(…).show() }3 }4
  18. abstract class BaseFragment :xFragment(), Screen {r override fun showMessage(message: String)

    {s Toast.makeText(…).show() }t }u abstract class BaseActivity :xActivity(), Screen {c override fun showMessage(message: String) {d Toast.makeText(…).show() }3 }4 interface DefaultScreenx:xScreen {A override fun showMessage(message: String) {1 Toast.makeText(…).show() }2 }A
  19. interface DefaultScreenx:xScreen {A override fun showMessage(message: String) {1 Toast.makeText(…).show() }2

    }A abstract class BaseFragment : Fragment(), DefaultScreen abstract class BaseActivity : Activity(), DefaultScreen
  20. Leveraging a common context

  21. Fight for your right to learn

  22. None
  23. Add value to yourself And your company

  24. 100% Kotlin We’re done

  25. 100% Kotlin We’re never done

  26. Share knowledge

  27. None
  28. None
  29. No gateway to shipping But to learn

  30. Be mindful about commits

  31. Ship faster

  32. What could we have improved?

  33. 100% Kotlin?

  34. Converting a project means rewriting it

  35. Communication is crucial

  36. None
  37. Use all the things

  38. Use all the things Where it makes sense

  39. Split up pull requests

  40. Split up pull requests As early as possible

  41. Get feedback early

  42. Get feedback in advance

  43. What does this mean for you?

  44. Making a success of Kotlin hour

  45. Invite and advertise

  46. Have a clear value proposition

  47. Use the hive mind

  48. Share what you learn

  49. Code reviews are for more than just correctness

  50. Create forums for learning and up-skilling your team

  51. Share content that worked for you

  52. If it doesn’t exist Make it

  53. Learning has no definition of “done”

  54. THANK YOU Maria Neumayer @marianeum Amal Kakaiya @K4KYA