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.
7. TEAM FUNCTIONS
Project style
Analyst
Developper
Tester
Doc writer
samedi 30 octobre 2010
8. TEAM FUNCTIONS
PHP style
Project style Database architect
Analyst Core PHP
Developper HTML integrator
Tester Test writer
Doc writer
samedi 30 octobre 2010
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 members
samedi 30 octobre 2010
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
team
samedi 30 octobre 2010
11. What we
What we want to do
do well
What will push
forward the project
samedi 30 octobre 2010
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 project
samedi 30 octobre 2010
13. What we
What we want to do
do well
What will push
forward the project
samedi 30 octobre 2010
14. What we
What we want to do
do well
Molt
Bé
What will push
forward the project
samedi 30 octobre 2010
15. What we
What we want to do
do well
Molt
Bé
Do better
What will push
forward the project
samedi 30 octobre 2010
16. What we
What we want to do
do well Evangelize
Molt
Bé
Do better
What will push
forward the project
samedi 30 octobre 2010
17. What we
What we want to do
do well Evangelize
Molt
Bé
Say no Do better
What will push
forward the project
samedi 30 octobre 2010
18. AGENDA
Learn to say no
Learn to do it better
Evangelize
samedi 30 octobre 2010
19. DO IT
BETTER
Weekly meeting
Gurus
Competition
samedi 30 octobre 2010
20. TECHNICAL MEETING
Weekly meeting
Gather all your team for
technical time
1 hour, dedicated to
technics, tools,
methods
Outside project
pressure
samedi 30 octobre 2010
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 meeting
samedi 30 octobre 2010
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. CHOOSE YOUR GURU
Terms appeal to dev,
makes man. laugh
Find him inside
Hire one from outside
No full time needed
samedi 30 octobre 2010
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. HEALTHY COMPETITION
Number of unit tests
Lines of code
Number of method
Number of commits
Code_Sniffer violations
Mystery objective
samedi 30 octobre 2010
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 friendly
samedi 30 octobre 2010
27. LEARN TO
SAY NO
5 minuts meeting
Short cycles
References
samedi 30 octobre 2010
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 problem
samedi 30 octobre 2010
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
syndrom
samedi 30 octobre 2010
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 effect
samedi 30 octobre 2010
31. REFERENCES
Document gathering
your conventions
Better shared as Wiki,
Coding, security
reference, commit
policy, conception
document
samedi 30 octobre 2010
32. REFERENCES
Document objective
Executive summary (3 paragraphs)
List of the conventions you set up
samedi 30 octobre 2010
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. PHP MANTRA
Don’t forget to produce
your PHP mantra from
them
Short version of your
conventions
4-7 points to always
always remember
samedi 30 octobre 2010
35. EVANGELIZE
Christianize
Tag your code
Cross audit
samedi 30 octobre 2010
36. CHRISTIANIZE
Give a cool name to your project :
Project Jaguar, the Alpha Team, Army of Ants
Debian Lenny, Microsoft Longhorn, OSX Lion
http://online-generator.com/name-generator/
project-name-generator.php
Most of the time, someone else will choose it : fight
for it!
samedi 30 octobre 2010
37. CHRISTIANIZE
Get a mascot
Plush toy, poster, T-
shirt, etc.
Helps member identifies
with the project
samedi 30 octobre 2010
38. TAG YOUR CODE
Documentation on PHP
doc
Tags comments and
extract them
Review them easily
samedi 30 octobre 2010
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, I'm not sure of this
// @security @performance @PHP5 @audit we don't do
this here
?>
samedi 30 octobre 2010
40. TAG CODE
Just like we tag URL, images, etc.
More specific that just a comment
Spot untagged comments
Leave notes to yourself, for later
samedi 30 octobre 2010
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 training
samedi 30 octobre 2010
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 code
samedi 30 octobre 2010
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 done
samedi 30 octobre 2010
48. 10%
10%
50% 10%
20%
Coding Test Doc Review Production
samedi 30 octobre 2010
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. 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. 3 TEAM MEMBER
Senior
Junior
Middle
samedi 30 octobre 2010
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