3. ( A Quick
Introduction
⊛ VP, Engineering at Weplay
⊛ 15+ years creating software
⊛ Rubyist since 2005
⊛ New York CTO Club
⊛ Dad, Beach Volleyball Player
also
- Dir of Software Development at Oxygen
- Agile practitioner since about 2002
- helped organize the first GoRuCo
- honored to be presenting today
CC Image http://www.flickr.com/photos/calitomshots/2789088006/
4. ( Your Turn
)
Show of hands:
- currently managing a Ruby team?
- managed a developer in the past?
- never managed anyone before?
- has a manager?
GoRuCo 2007. Thanks @obie
5. ( How is managing
Rubyists different? )
⊛ Independent thinking
⊛ The community and open-source
⊛ A culture of change
⊛ Craftsmanship
⊛ Hedonism
Mostly the same, but... the difference is Rubyists.
First bullet. Independent
- M$ & Java, “No thanks”
- no Big Company dictating direction of the language
- Java: Sun/Oracle; C#:Microsoft. Python:better, but Guido at Google
- Ruby:Yukihiro Matsumoto; works for an open source systems integrator
Next bullet, community/OSS
- thriving open source
- incredible number of people contributing
- Who in the room has contributed code to Rails?
- Struts: 71 contributers (Ohloh); Rails:1,529
Next bullet, culture of change:
- Chaotic landscape
- FastCGI, Lighty, Mongrel, Passenger, Unicorn
- best delayed_job fork
- auth plugin?
- Stability in an application is good, stability in a software ecosystem is stagnation
Next bullet: craftsmanship
- profession or craft
- Rubyists: craft
Next bullet: hedonism
6. (“ For me the purpose of
life is partly to have joy.
Programmers often
feel joy when they can
concentrate on the
?
creative side of
programming, so Ruby
is designed to make
programmers happy.”
- Matz
As to my claim of hedonism as a trait of Rubyists... here’s what Matz says about Ruby and
happiness.
- Faced with the task of managing a group of independent thinking, community-oriented,
open-source loving, change-embracing, hedonistic craftsmen and women, do you think that
we can apply normal management techniques and be successful? [Click] No way. [Click]
- going to talk today about tactics and approaches that have worked for me at Weplay and
Oxygen
- the sweet spot here is managing a team of 4-8 developers as a hands-on, coding manager.
Quote from a 2003 interview with Bill Venners: http://www.artima.com/intv/rubyP.html
Photo from Matz’ recent NYC trip. Thanks @sd.
7. ( Let’s get into it...
⊛ Disclaimers:
⊛ Impossibly large
topic
⊛ T.M.T.O.W.T.D.I.
CC image http://www.flickr.com/photos/ugardener/2345895499/
8. ( The Goal
A great team...
made up of happy people...
who respect and trust each other...
producing high-quality software...
aligned with business goals...
working efficiently...
and getting better all the time!
A great team...
made up of happy people...
who respect and trust each other...
producing high-quality software...
aligned with business goals...
working efficiently...
and getting better all the time!
CC Image from http://www.flickr.com/photos/jenny-pics/3515550682/
9. The Key Principles
⊛ Self-Organizing Team
)
⊛ Personal Growth
⊛ Hire Well
⊛ Servant Leadership
⊛ Inspirational Leadership
5 key principles
- A little now, then practices and tactics later
Next bullet: Self-Org team:
- core is respect for intelligence and talent
- I hire people smarter than I am
- silly to tell people what and how
- Maybe you’re thinking... Not smarter than combined brainpower of team
- help your team develop self-awareness, understanding
- I am at my best as a manager when I’m unnecessary
Next bullet: Personal Growth
- Self-organization will help a team become successful to it’s goals
- not enough for sustainable high-performance
- Every talented Rubyist I’ve worked with needs to be growing
- Grow via new job or on the job
Next bullet: Hire Well
- Simultaneously the hardest and most important part
- We’ll go over some techniques
Next bullet: Servant Leadership
- contrast of the term “servant leadership,”
- hand in hand with “self-org”
- Whatever it takes to help great developers become a great team is service AND
leadership
Next bullet: Inspirational Leadership
- Begs for a certain humbleness as a manager.
10. Management
by Observation )
1
⊛ Sit with your team
⊛ Don’t wear headphones
⊛ Think twice before
interrupting
CC Image by http://www.flickr.com/photos/quinndombrowski/4511137204
11. ( Management by
Coding Around 2 )
⊛ Management by Walking Around
⊛ Pair programming
⊛ Observe the key feedback loop
- Bill Hewlett and Dave Packard
- early days of HP
- MBWA is "marked by personal involvement, good listening skills and the recognition that
everyone in an organization wants to do a good job."
- simplistic but really effective for senior execs in larger orgs. “In Search of Excellence”
- key goal is maintaining good communication and an accurate understanding
- In SD, can sit next to someone all day not know what they are working on or how they’re
doing
- there is an inner world, an inner feedback loop between the developer and the code.
- to be a great manager, you need to be able to observe that feedback loop.
- One great way to do that, and two “OK” ways.
- Pair programming with your team
- One key piece of advice for pairing with people who report to you: Leave your role power
out of this.
- Role power vs. relationship power
- not pairing but your team members are pairing with each other, listening to those
conversations.
- if nobody pair programming, review commits.
- Asking and listening works, too, not as well
CC Image by http://www.flickr.com/photos/billselak
12. 3
( Tools and
Workspace )
⊛ Buy great
equipment
⊛ Encourage shared
style and editors
⊛ Death to cubicles
- Equipment is cheap compared to talent.
- Budget tip: yearly refresh
- Shared style, editors
- Is there anyone here who loves cubicles?
- Story of threatening to dismantle cubicle
- Long hard fight for tables
CC Image by http://www.flickr.com/photos/halloweenjack/259735126
13. A Policy for
Policies )
4
⊛ You will have to put
rules in place
⊛ Keep them to as few
as possible
⊛ Fit each policy to the
frequency and severity
of the target problem
- Security and privacy of your user’s is something that you need to take seriously.
- Discussion with team
http://www.flickr.com/photos/kongharald/3821492016
14. The Retrospective
a.k.a. Kaizen )
⊛ Conduct regularly
⊛ Leave with an action plan
⊛ Beer helps
5
CC image from http://www.flickr.com/photos/improveit/1684184890
15. ( Delegation
⊛ Identify discreet, repetitive
tasks: automate them. If
you can’t automate them,
delegate.
⊛ Consider rotating roles
through the team
6
- Examples:
- monitoring 500s, surfacing performance issues, monitoring in-progress split tests,
calculating velocity, point on technical customer support.
- Also:
- Vendor relationships, Tech leads for features, infrastructure
- tool for personal growth
- take the load off you, the manager, and spread the team responsibility and accountability
across the team
16. ( The Andon Cord 7 )
⊛ The stop-the-line cord
⊛ From the Toyota Production System
⊛ Your team should have the same power
- Definition
- Recent example
17. ( Be Patient
⊛ Form ➣ Storm ➣
Norm ➣ Perform
⊛ Creativity is messy
8
Insist on respect and courtesy, otherwise, let stuff get hashed out
Tool selection...
CC Image from http://www.flickr.com/photos/connah/4436987567
18. ( One-on-Ones:
Why )
⊛ Focus on individual growth
⊛ Pre-planned time to privately
address questions, concerns
⊛ Agile process takes care of the
team, sometimes at the expense
of individuals -- 1-on-1s provide
balance
⊛ Because you care
9
19. ( One-on-Ones:
How )
⊛ 30 minutes, 1x/week, each direct
report
⊛ Rough breakdown
⊛ 10 min. on your direct’s agenda
⊛ 10 min. on your agenda
⊛ 10 min. coaching
9
10 minutes: your direct’s questions, concerns, thoughts
10 minutes: your observations, feedback, praise; and what they need to know about the rest
of the company
10 minutes: coaching for personal and professional growth
- Help people ID strengths and weaknesses
- How to get started
- Crazy idea: start off with the same question
20. Motivation 10 )
⊛ Understand what
motivates your
employees so you can
help them stay motivated
⊛ Don’t underestimate
“mastery”
21. ( Feedback
⊛ How to deliver feedback
11 )
⊛ Immediately
⊛ Privately
⊛ Critical feedback is important to
growth
Example: Noah interrupting Ross
CC Image from http://www.flickr.com/photos/der_silas/4290301095
22. ( Open Source
⊛ Use it
⊛ Share your changes
⊛ Use OSS to help your
employees grow and
build their reputations
12
Tip for integrating open source contribution into your daily workflow: create an account on
github for your team, fork a project as that user, giving everyone on the team commit rights.
Submodule the project in your local repo.
CC Image from http://www.flickr.com/photos/_kch/4485849856
23. ( Hiring
⊛ Screen individually
13 )
⊛ Every candidate matters
⊛ Group interviews
⊛ Code review or pairing
⊛ Get 100% of the team on-board
Require a champion.
You’re in the right place today. GoRuCo, nyc.rb, etc
CC Image from http://www.flickr.com/photos/brunkfordbraun/408428562
24. ( The Us-Them
Relationship 14 )
⊛ Why does Us-Them develop?
⊛ Fight it internally... hard
⊛ Cultivate it externally... carefully
- natural tendency to tribalism
- Geo, departments, etc.
- example from Oxygen
- get stories of other teams and bring them back
- help evolve your team’s self-perception
- slow? vs team that took 2 months to write first LOC?
- great deployment story? vs. IMVU?
CC Image: http://www.flickr.com/photos/oscalito/237301508
25. Be Honest
)
15
⊛ Destroy trust, and the
whole thing comes
tumbling down
⊛ Share your passion
- First prerogative
- HARD
- Manager often caught in the middle
- Honesty extends to sharing your passion for the mission your company is on.
CC Image http://www.flickr.com/photos/kyz/3416111650
26. ( Resources
⊛ Be a student of the craft
)
⊛ Reading list at http://bit.ly/gorucobooks
⊛ Podcasts: Manager Tools, Agile Executive,
Agile Toolkit
⊛ Acting or Improv classes
CC Image from http://www.flickr.com/photos/jjsphoto/3516387170
27. ( The End of the Talk is
not the End of the Talk )
⊛ Find me anytime today or
tonight
⊛ Ask questions
⊛ Share what has worked for you
⊛ Challenge my approach
28. Thanks, GoRuCo!
luke@lukemelia.com
lukemelia
Thanks to GoRuCo
- to the Weplay team, past, present and future