FooLab
How to Motivate Your DevelopersNortheast PHP Conference - August 12, 2012
Sunday, August 12, 2012
FooLab
DisclaimerMy advice does not work in all cases.Don’t blindly “cut-paste”.
Sunday, August 12, 2012
FooLabIssues With Devs
• Hard to recruit
• Work on low-priority tasks
• Lack of progress
• Low quality results
• Lack of cooperation (tasks, directives)
• Resign for unclear reason
3
Sunday, August 12, 2012
FooLab
Not always by choiceIt’s a product of the environment
Sunday, August 12, 2012
FooLab
How do they perform on their pet projects?
Sunday, August 12, 2012
FooLabAnna Filina
6
• PHP Quebec - user group
• ConFoo - non for profit Web conference
• FooLab Inc. - IT consulting
• I write code.
• I train and supervise programmers.
• I make recommendations.
Sunday, August 12, 2012
FooLab
Survival Kit
Sunday, August 12, 2012
FooLabSalary
• A study in Quebec shows it’s #1
• For free, they’ll work on what they want
• Pay enough
8
Sunday, August 12, 2012
FooLabPositive Culture
• Would you enjoy working for yourself?
• Proud of their job
• Grab a beer with them
9
Sunday, August 12, 2012
FooLabCommunication
• Feedback is underrated
• Can they be honest with you?
• Can they be honest with the team?
• Can they speak with teammates any time?
10
Sunday, August 12, 2012
FooLab
Phobias
Sunday, August 12, 2012
FooLabKansas City Collapse
12
• Deadliest structural collapse in US history
• 114 dead
• 216 injured
• Due to a design change
Sunday, August 12, 2012
FooLabChangeophobia
• Change design before you code
• Check impact on other requirements
• Keep project’s objectives in mind
• Stay focused on priorities
13
Sunday, August 12, 2012
FooLabAmbiguophobia
• Unclear goals
• “Let’s go over the bug tracker”
• Know your enemy (performance, spaghetti)
• Set goals: measurable, attainable, deadline
• No deadline = no requirement
14
Sunday, August 12, 2012
FooLabDeadlineophobia
• Arbitrary deadlines
• Consult devs before promising to client
• Friday deployments
• Overtime: they have nothing better to do, right?
15
Sunday, August 12, 2012
FooLabBlameophobia
• So they screwed up
• Laying blame (berate for 20 min)
• It’s everyone’s problem
• Focus on solutions: who has skill to fix?
• Don’t live in fear
16
Sunday, August 12, 2012
FooLabMeetingophobia
• How often?
• How long?
• How crowded?
• 20 people bouncing ideas for hours every week
• Follow outline: did we digress?
• Kill monologues and one-on-one conversations
17
Sunday, August 12, 2012
FooLab
Small Wins
Sunday, August 12, 2012
FooLabVisible Progress
• Life is about the next achievement
• Break into smaller goals
• Badge at every step
• Can increase difficulty over time
19
Sunday, August 12, 2012
FooLab
Junior Developers
Sunday, August 12, 2012
FooLabLimited Skills
• They can write code
• Don’t ask them to solve complex problems: optimize database
• Assign a more skilled dev
• Show them how to use the tools
21
Sunday, August 12, 2012
FooLabProving Skills
• Let them have an opinion
• Explain why they’re wrong
• They don’t ask questions
• Afraid to look bad, they feel tested
• Check progress to avoid blocks
• Invite them to ask simple questions
22
Sunday, August 12, 2012
FooLabKnow Not What to Do
• Can’t guess tasks
• Clear objectives, deadlines, priorities
23
Sunday, August 12, 2012
FooLabNeed Validation
• Tap on the shoulder when they do well
• Code review; be gentle and ignore non-issues
• Tell them what they could do better
24
Sunday, August 12, 2012
FooLab
Expert Developers
Sunday, August 12, 2012
FooLabDrive The Project
• IE6 compatibility
• Don’t distract; write some docs
• Don’t switch their focus
• Avoid low-level tasks
• They’re analysts and problem solvers
26
Sunday, August 12, 2012
FooLabExtinguish Fires
• Constant fires will drain and piss them off
• Let others fix a few bugs
• Offload simpler tasks
• Let them train others
• Give them vacation time
27
Sunday, August 12, 2012
FooLabNeed Tools
• They want to be more productive
• Pay the darn license
• Online collaboration
• Let them pick the tools
28
Sunday, August 12, 2012
FooLabMicro Managemet
• Time sheets documenting every task (movie commentator)
• Experts can manage their own time
• Give them autonomy; keep an eye on ROI
29
Sunday, August 12, 2012
FooLab
Difficult Cases
Sunday, August 12, 2012
FooLabCharacters
• Make people uncomfortable
• Think they are better
• Pair with patient dev to cool them
• Don’t let them cross the line
31
Sunday, August 12, 2012
FooLabA-holes
• Waste time on endless debates
• Create discord or tension between teammates
• Oppressing or humiliating the weak
• Drain energy
• Educate or kick
32
Sunday, August 12, 2012
FooLabEmotionally Unstable
• Psychos happen
• Capable of verbal and physical violence
• Worst thing that can happen to your team
• Everyone is scared
• Don’t wait: kick
33
Sunday, August 12, 2012
FooLabLet’s Reduce Tension
34
Sunday, August 12, 2012
FooLabUnskilled
• Make mistakes; you fix them
• Start many tasks without finishing
• Drain energy
• Don’t keep them out of pity
• Train if salvageable
35
Sunday, August 12, 2012
FooLab
Easy Shots Still Work
Sunday, August 12, 2012
FooLabAccommodation
• Respect religion / family / health constraints
• Help people learn the language
• Let the shy speak without interruption
• What about watching their country in finals?
37
Sunday, August 12, 2012
FooLabGadgets
• Desk name plates
• Nerf Guns
• Video games on big screens
• Ideas on thinkgeek.com
38
Sunday, August 12, 2012
FooLabConferences and Activities
• Most kids enjoyed school trips
• It’s a break + productivity increase
• Beer is a sure value
• Let them pick activities
• No activities on weekends
39
Sunday, August 12, 2012
FooLabNext Steps
• I will tweet the slides: @afilina
• Please leave feedback: http://joind.in/6842
40
Sunday, August 12, 2012
FooLab
Ask me how many hours my employee works
Sunday, August 12, 2012