Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DreamTeam Leader; Tips and Tricks for the journey

DreamTeam Leader; Tips and Tricks for the journey

Hello,
Do you want to dream few minutes, listen for a good story? A story that gives you hope?
I started to write this conference after one year of pure challenge on an Android project with my team for one of the most important world wild company. It will impact life of billions of users in the next years. We faced, with my team, amazing goals to reach and we succeeded. But we had a magic power: We were Heroes and our spells were based on knowledge, code driven development and solidarity.
We will talk about Team Spirit and Excellence, Organization and Evolution, Code and Architecture. We will have a look at all those details that drive projects to success or failure, sharing our experience and our vision of how human and code managements can be mixed to obtain excellence.
I wanted to tell you this story and those awesome moments in a way where you’ll be in the crew; To team leaders, I will give you new ways to consider in your work. To developers, I will show you hope.
“Always pass on what you've learnt” is our slogan, you’ll understand why.
So let’s say, “see you in the room for a 45 minutes fairy tale, it’s time for a relaxing and growing session”

Avatar for Mathias Seguy - Android2EE

Mathias Seguy - Android2EE

October 20, 2017
Tweet

More Decks by Mathias Seguy - Android2EE

Other Decks in Programming

Transcript

  1. Goal: Explore strange new worlds, Seek out new life and

    new civilizations, Boldly go where no man has gone before.
  2. Position: Team Tech Leader Discovers the code Is Trustable Runs

    at the good moment Is hunted by stakeholders… Tries to communicate with UX Makes compromises
  3. The question is How to lead a team to achieve

    something exceptional in a worldwide scalable context ?
  4. The question is How to lead a team to achieve

    something exceptional in a worldwide scalable context ? How to start with Kitties developers and ends with a ninja tigers team?
  5. The question is How to lead a team to achieve

    something exceptional in a worldwide scalable context ? How to start with Kitties developers and ends with a ninja tigers team?
  6. How to survive ? And, why not, succeed ? Cherry

    on the cake: Like a boss. How to lead a team to achieve something exceptional in a worldwide scalable context How to start with Kitties developers and ends with a ninja tigers team? The question is
  7. Survival tips Know where you want to go in term

    of architecture Believe in your team Never under estimated what is not pure coding (docs, tests, organization, weather…) Always expect a trap, find it, fix it before the team as to pass [repeat] Be optimistic Be kind Be happy, you are the team engine.
  8. Goals Choose the Architecture you know and like N-Tier M.V.P.

    M. V. VM. Clean What ever. Respect the clean principles: Your code should be readable like a good book. (doesn’t mean comments are useless).
  9. Establish the principle of separation of concerns Being unitary testable

    easely Allow adaptation to framework’s changes Goals Be able to make evolutions with no impact on the application. Being independent of the implementation, able to change it and test it. Allow evolutions (DataBase, communication, …) Allow Libraries changes Architecture Principles Asynchronicity Lazy loading
  10. Know your tools Insure your development context Specifications Feedbacks Delivery

    Code Documentations Build Analyzes and Reports Communication Code management C.I.
  11. C.I. Know your tools Insure your development context Specifications Feedbacks

    Delivery Code Documentations Build Analyzes and Reports Communication Code management AltassianSuite/UxConception Balto/Fabrics/GoogleAnalytics Nexus/JFrog/Balto/GooglePlay AndroidStudio AltassianSuite /Words/GSuite Gradle Lint, Jacoco, FindBugs, Test Reports… Slack/Mail/Skype/Zoom… Git (GitHub,BitBucket…) Jenkins
  12. Know your tools Documentation Use it to check your patterns

    Use it to analyze your application Use it to obtain the overall vision Helps you to make the step backward Helps to understand the project Is not a punishment Must become a habit
  13. Create your team What is your feeling between … we

    work on large-scale projects or technical assistance for large accounts… An Android Jedi, You want to be? Jedi in this mission, you’ll become. Yoda is the lead.
  14. Create your team What is your feeling between As a

    developer As a Team Leader Create managers Create expert developers
  15. Create your team With high expectations Good developers make good

    applications Excellent developers make excellent applications Let’s create excellence
  16. Create your team Accept the legacy Perhaps you already start

    with an existing team Bring them with you, bring them all. A new awesome journey starts for them.
  17. Create your team Take care of the new ones Accompany

    them, welcome them Good father and Good mother is a good pattern. They have to get in the train while it is running.
  18. Create your Jedi academy Change your mind Give knowledge Ask

    their best Believe in them, believe in each This is your padawans The project is the workshop Have a training program
  19. Create your Jedi academy You are the Babylon library Have

    a training program As a lucky guy, I am Android2ee I have tons of supports
  20. Create your Jedi academy You are Jarvis Have a training

    program Chet Haase (Medium) Developing for Android Colt McAnlis (DevBytes Perfmatters) Android Performance Patterns Season 5 An Android Retrospective, Chet & Romain (AndroidMakers) RecyclerView Animations and Behind the Scenes Chet & Yigit (Android Dev Summit 2015) Radical RecyclerView, Liza Wray (AndroidMakers) Dart and Henson, Stephane Nicolas, (DroidCon It) Launch Mode , Views, Inflator (Medium) Android2ee (Medium/Youtube/…) Android Architecture , Mike, Ygit, Chet, Sergey, Adam, (GI/o’17) DroidCon London 2017 on SDK (skillmatters)
  21. Create your Jedi academy You are Yoda Keep learning and

    keep sharing You need to stay an expert You need to know where you want to be in six months You need to guide the team
  22. Create your Jedi academy You are Dumbledore Each Pull Request

    is a student Assignment You have to correct, find the knowledge lack, create the lesson, teach it, share it, repeat
  23. Create your Jedi academy You are the quality expectations Review

    all the code Each line is under your responsability The devil is hiding in the details Details matter Each line…
  24. You are the guide But you know, at the end,

    You and your team will succeed
  25. You are the guide Your team needs to trust in

    you Because you will bring them back home victorious
  26. 14 We are a team, solidarity is a key point.

    20 In code, we trust. You are the rules Define them clearly
  27. 14 We are a team, solidarity is a key point.

    20 In code, we trust. 18 No Tests, no trusts. 20 In code, we trust. 21 Design Patterns are our mantra. You are the rules Define them clearly
  28. 14 We are a team, solidarity is a key point.

    18 No Tests, no trusts. 20 In code, we trust. 21 Design Patterns are our mantra. 17 Lazy Loading is our philosophy. 18 No Tests, no trusts. 19 More we automatize less we do. 20 In code, we trust. 21 Design Patterns are our mantra. 25 Rules are set to evolve. 3 You have super power. With great power comes great responsibility. 4 Your first responsibility is to refine your development skill; your super power. 14 We are a team, solidarity is a key point. You are the rules Define them clearly
  29. 17 Lazy Loading is our philosophy. 18 No Tests, no

    trusts. 19 More we automatize less we do. 20 In code, we trust. 21 Design Patterns are our mantra. 25 Rules are set to evolve. 3 You have super power. With great power comes great responsibility. 4 Your first responsibility is to refine your development skill; your super power. 14 We are a team, solidarity is a key point. 2 You are not a simple Android developer, you are one of the best future Android developer of the area. 3 You have super power. With great power comes great responsibility. 4 And your first responsibility is to refine your development skill; your super power. 5 Report problems as soon as they appear. 7 Ask dumb questions; they are never dumb and you need to understand the answer. 10 We are free to defend our design patterns convictions. 11 We are responsible to defend our design patterns convictions. 14 We are a team, solidarity is a key point. 15 We are equals with our own different strength and weakness. 17 Lazy Loading is our philosophy. 18 No Tests, no trusts. 19 More we automatize less we do. 20 In code, we trust. 21 Design Patterns are our mantra. 23 One article and one conference by week must be read and watch. 25 Rules are set to evolve. … 35 Rules are made to evolve You are the rules Define them clearly
  30. 2 You are not a simple Android developer, you are

    one of the best future Android developer of the area. 3 You have super power. With great power comes great responsibility. 4 And your first responsibility is to refine your development skill; your super power. 5 Report problems as soon as they appear. 7 Ask dumb questions; they are never dumb and you need to understand the answer. 10 We are free to defend our design patterns convictions. 11 We are responsible to defend our design patterns convictions. 14 We are a team, solidarity is a key point. 15 We are equals with our own different strength and weakness. 17 Lazy Loading is our philosophy. 18 No Tests, no trusts. 19 More we automatize less we do. 20 In code, we trust. 21 Design Patterns are our mantra. 23 One article and one conference by week must be read and watch. 25 Rules are set to evolve. … 35 Rules are made to evolve 0 The lead is the one who set the rules. 1 In each other’s, we believe, in each other’s we are confident. 2 You are not a simple Android developer, you are one of the best future Android developer of the area. 3 You have super power. With great power comes great responsibility. 4 And your first responsibility is to refine your development skill; your super power. 5 Report problems as soon as they appear. Problems are like bugs, the quickest they are found, the cheapest they cost to fix. 6 Share problems with each other’s, one of us could have the solution. 7 Ask dumb questions; they are never dumb and you need to understand the answer. 8 Ask basic question quickly; we don’t have time to waste. You have a question, ask for it, save our time, don’t wait, don’t judge it, just ask. 9 Sharing knowledge with each other’s is a due task (articles/conferences). 10 We are free to defend our design patterns convictions. 11 We are responsible to defend our design patterns convictions. 12 We are free to say what we think, to disagree and to argue, to bark and fight. But when the war stops, the war is over and we walk forward. 13 We are responsible to say what we think. 14 We are a team, solidarity is a key point. 15 We are equals with our own different strength and weakness. 16 Code reviews are in no pity, we don’t talk about the developer, we talk about the code, don’t take it for you personally. 17 Lazy Loading is our philosophy. 18 No Tests, no trusts. 19 More we automatize less we do. 20 In code, we trust. 21 Design Patterns are our mantra. 22 gradlew cC and gradlew cAT are done before any push. 23 One article and one conference by week must be read and watch. 24 You should have read and understand all the documents released in confluence 25 Rules are set to evolve. 26 We write the Javadoc when we write our code (Classes, Methods, Attributes...) 27 We update Javadoc as we make modifications on existing code (Classes, Methods, Attributes...) … 35 Rules are made to evolve You are the rules Define them clearly
  31. 0 The lead is the one who set the rules.

    1 In each other’s, we believe, in each other’s we are confident. 2 You are not a simple Android developer, you are one of the best future Android developer of the area. 3 You have super power. With great power comes great responsibility. 4 And your first responsibility is to refine your development skill; your super power. 5 Report problems as soon as they appear. Problems are like bugs, the quickest they are found, the cheapest they cost to fix. 6 Share problems with each other’s, one of us could have the solution. 7 Ask dumb questions; they are never dumb and you need to understand the answer. 8 Ask basic question quickly; we don’t have time to waste. You have a question, ask for it, save our time, don’t wait, don’t judge it, just ask. 9 Sharing knowledge with each other’s is a due task (articles/conferences). 10 We are free to defend our design patterns convictions. 11 We are responsible to defend our design patterns convictions. 12 We are free to say what we think, to disagree and to argue, to bark and fight. But when the war stops, the war is over and we walk forward. 13 We are responsible to say what we think. 14 We are a team, solidarity is a key point. 15 We are equals with our own different strength and weakness. 16 Code reviews are in no pity, we don’t talk about the developer, we talk about the code, don’t take it for you personally. 17 Lazy Loading is our philosophy. 18 No Tests, no trusts. 19 More we automatize less we do. 20 In code, we trust. 21 Design Patterns are our mantra. 22 gradlew cC and gradlew cAT are done before any push. 23 One article and one conference by week must be read and watch. 24 You should have read and understand all the documents released in confluence 25 Rules are set to evolve. 26 We write the Javadoc when we write our code (Classes, Methods, Attributes...) 27 We update Javadoc as we make modifications on existing code (Classes, Methods, Attributes...) … 35 Rules are made to evolve You are the rules Define them clearly This is also part of the job
  32. You are the vigilante Broken windows theory Never let the

    mess get installed Refactor is your lethal weapon Gradle is your best ally Habits need to evolve constantly
  33. You are the guide Of the Dream Team You need

    to believe in them The team is your best ally Gradle is your second best ally If you fail, they’ll fail. If they succeed, you’ll succeed.
  34. You are the guide Of each of them Find to

    each a good place to be in the project Where (s)he will be happy Where (s)he will be responsible Where (s)he will succeed because (s)he has found his(er) place in the project
  35. You are the guide One for all, all for one

    Spread the responsabilities (cell ditribution)
  36. You are the guide This is how you see it

    This is how We see Us And it changes every things
  37. The road is long You and the team will change

    and level up all along the road The journey will change you
  38. The road is long Don’t try to teleport you to

    the goal, accept the step by step. Minimal Viable Product for architecture
  39. The road is long Second example : Git. We had

    the theory Not the practice
  40. We had the theory Not the practice The road is

    long Second example : Git. Learning and evolving, continous adaptation Reviews is the critical part of the process Don’t let PR put the tent in git Rebase
  41. We needed more and more accurate gradle technics during the

    project Learning and evolving, continous adaptation, The road is long Third example : Gradle.
  42. We needed more and more accurate gradle technics during the

    project Learning and evolving, continous adaptation, The road is long Fourth example: Tests.
  43. Always pass on what you learnt Always be kind Always

    progress, learn, improve Always sharp, encourage, motivate your team Accept it’s an human adventure Put in perspective, no body is going to die, no life is in danger, no need to get stress
  44. It takes energy to create excellence. I takes time, It

    needs convictions. If it was easy, We would all have several Phd.
  45. You have the choice, Will you let the society abuse

    of your team to reach its goals Or Will you use the society and its goals to grow up each individual in your team, in peace and security, with a strong expectancy of being a better Android developer And why not, a better human?