PHP Team Organisation


Published on

Aujourd’hui, les équipes de développement PHP dépassent facilement la douzaine de personnes, et la croissance n'est pas prête à s'arrêter. Pour réussir un projet, il faut désormais prendre en compte le facteur humain : organiser son équipe.
Directement du front, nous partagerons ensemble des trucs et astuces pour accommoder au mieux les juniors et gourous, assouplir les discussions avec les utilisateurs, élever le niveau de tout le monde, et rendre les projets critiques un peu plus fun. Nous ne verrons aucun code PHP : juste comment vivre avec.

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

PHP Team Organisation

  1. 1. PHP TEAM ORGANIZATIONsamedi 30 octobre 2010
  2. 2. AGENDA Acknowledge the human factor Organise your team Raise the competences of everyonesamedi 30 octobre 2010
  3. 3. WHO IS SPEAKING? Damien Seguy Raise elephpants Expert services manager at Alter Way group damien.seguy@alterway.frsamedi 30 octobre 2010
  4. 4. YES WE TAKE QUESTIONSsamedi 30 octobre 2010
  5. 5. INDUSTRIALISATIONsamedi 30 octobre 2010
  6. 6. TEAM FUNCTIONSsamedi 30 octobre 2010
  7. 7. TEAM FUNCTIONS Project style Analyst Developper Tester Doc writersamedi 30 octobre 2010
  8. 8. TEAM FUNCTIONS PHP style Project style Database architect Analyst Core PHP Developper HTML integrator Tester Test writer Doc writersamedi 30 octobre 2010
  9. 9. TEAM FUNCTIONS PHP style Agile style Project style Database architect Product owner Analyst Core PHP Technical Developper HTML integrator expert Tester Test writer Manager Doc writer Team memberssamedi 30 octobre 2010
  10. 10. HUMAN FACTOR Juniors are silent Seniors are oral You don’t have time to check all the code all the time You need to work as a teamsamedi 30 octobre 2010
  11. 11. What we What we want to do do well What will push forward the projectsamedi 30 octobre 2010
  12. 12. What we What we Our desires want to do do well ss ce Ca uc me ts ec to oj su Pr What will push forward the projectsamedi 30 octobre 2010
  13. 13. What we What we want to do do well What will push forward the projectsamedi 30 octobre 2010
  14. 14. What we What we want to do do well Molt Bé What will push forward the projectsamedi 30 octobre 2010
  15. 15. What we What we want to do do well Molt Bé Do better What will push forward the projectsamedi 30 octobre 2010
  16. 16. What we What we want to do do well Evangelize Molt Bé Do better What will push forward the projectsamedi 30 octobre 2010
  17. 17. What we What we want to do do well Evangelize Molt Bé Say no Do better What will push forward the projectsamedi 30 octobre 2010
  18. 18. AGENDA Learn to say no Learn to do it better Evangelizesamedi 30 octobre 2010
  19. 19. DO IT BETTER Weekly meeting Gurus Competitionsamedi 30 octobre 2010
  20. 20. TECHNICAL MEETING Weekly meeting Gather all your team for technical time 1 hour, dedicated to technics, tools, methods Outside project pressuresamedi 30 octobre 2010
  21. 21. WEEKLY MEETING 1 hour only Everyone must attend, tasks will wait Assign a note taker Works as training Make sure everyone talk during the meetingsamedi 30 octobre 2010
  22. 22. WEEKLY MEETING Subjects Discussion of future stuff : new version, techno... Specific training on tools, methods Read indicators (audits, PI, etc..) Review reference documents One question each (helps prepare for the meeting)samedi 30 octobre 2010
  23. 23. CHOOSE YOUR GURU Terms appeal to dev, makes man. laugh Find him inside Hire one from outside No full time neededsamedi 30 octobre 2010
  24. 24. NAME DOMAIN GURUS Create domain experts specific domain Unit test, IHM, database Willing team member Name it after he has taken the responsability.samedi 30 octobre 2010
  25. 25. HEALTHY COMPETITION Number of unit tests Lines of code Number of method Number of commits Code_Sniffer violations Mystery objectivesamedi 30 octobre 2010
  26. 26. HEALTHY COMPETITION Have a prize Not money : bad idea Free time, the big screen, the PHP mascot, doing a study on the new tech... Keep this friendlysamedi 30 octobre 2010
  27. 27. LEARN TO SAY NO 5 minuts meeting Short cycles Referencessamedi 30 octobre 2010
  28. 28. 5 MINUTS DAILY Early in the morning, regular schedule Done standing up : no dozing or typing Everyone talk : Today’s goal Yesterday’s progress Main blocking problemsamedi 30 octobre 2010
  29. 29. 5 MINUTS DAILY Helps junior organizing their project First step for project planning Give a start to the day with the team Sharing with the team members No need for preparing : may reduce email syndromsamedi 30 octobre 2010
  30. 30. SHORT CYCLES Make the full cycle from dev to version Perfection come from practise Include the whole cycle from spec to end user. No more ‘hoster is late syndrom’ Fight the tunnel effectsamedi 30 octobre 2010
  31. 31. REFERENCES Document gathering your conventions Better shared as Wiki, Coding, security reference, commit policy, conception documentsamedi 30 octobre 2010
  32. 32. REFERENCES Document objective Executive summary (3 paragraphs) List of the conventions you set upsamedi 30 octobre 2010
  33. 33. REFERENCES Name Description What happens if this is ignored Example, anti-example Way of checking this convention : manual, automatic tool, search + refine...samedi 30 octobre 2010
  34. 34. PHP MANTRA Don’t forget to produce your PHP mantra from them Short version of your conventions 4-7 points to always always remembersamedi 30 octobre 2010
  35. 35. EVANGELIZE Christianize Tag your code Cross auditsamedi 30 octobre 2010
  36. 36. CHRISTIANIZE Give a cool name to your project : Project Jaguar, the Alpha Team, Army of Ants Debian Lenny, Microsoft Longhorn, OSX Lion project-name-generator.php Most of the time, someone else will choose it : fight for it!samedi 30 octobre 2010
  37. 37. CHRISTIANIZE Get a mascot Plush toy, poster, T- shirt, etc. Helps member identifies with the projectsamedi 30 octobre 2010
  38. 38. TAG YOUR CODE Documentation on PHP doc Tags comments and extract them Review them easilysamedi 30 octobre 2010
  39. 39. <?php // @todo must handle time zone $heure = date("Hhi"); // @security this date is wrong // @attention : this is not yet internationalized print("<font size="2" face="Arial"> $heure .</ font>"); // @emptyelse // @review #damien please, Im not sure of this // @security @performance @PHP5 @audit we dont do this here ?>samedi 30 octobre 2010
  40. 40. TAG CODE Just like we tag URL, images, etc. More specific that just a comment Spot untagged comments Leave notes to yourself, for latersamedi 30 octobre 2010
  41. 41. samedi 30 octobre 2010
  42. 42. CROSS AUDITS Set up the reference Team up everyone two by two Review every commit by the other dev Spend afternoon on reviewing code Why not try pair-coding? Shares knowledge, serves as trainingsamedi 30 octobre 2010
  43. 43. SUMMARY Learn to say no Weekly meeting, gurus, competition Learn to do it better 5 minuts meeting, short cycle, references Evangelize Christianize, cross audit, tag your codesamedi 30 octobre 2010
  44. 44. samedi 30 octobre 2010
  45. 45. D A M I E N . S E G U Y @ A LT E R WAY. F R! 30 octobre 2010
  46. 46. THE ENDsamedi 30 octobre 2010
  47. 47. DIFFERENT CYCLES Dev cycles is not the same as others departments 30 % of production time is max 50 % of time in coding is max Book time ahead, report everything until you’re donesamedi 30 octobre 2010
  48. 48. 10% 10% 50% 10% 20% Coding Test Doc Review Productionsamedi 30 octobre 2010
  49. 49. BUDGET TIME Always double your estimation 10% tests, 10% haggling, 20% unforseen, 10% new tech 50% coding (your estimatio)samedi 30 octobre 2010
  50. 50. I like my tools to be with short ROI Have the regular task, and the emergency one. An emergency tool used all the time becomes a regular task.samedi 30 octobre 2010
  51. 51. 3 TEAM MEMBER Senior Junior Middlesamedi 30 octobre 2010
  52. 52. VCS Live with it Center of your life All automated tools will work on it Gather SQL, deployment, code, data, etc.samedi 30 octobre 2010
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.