Successfully reported this slideshow.

Managing Rubyists GoRuCo 2010 PDF


Published on

Slides with notes from presentation delivered at GoRuCo 2010 in NYC.

Published in: Technology, Business
  • Be the first to comment

Managing Rubyists GoRuCo 2010 PDF

  1. 1. ( Managing Rubyists Gotham Ruby Conference 2010 )
  2. 2. ( 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
  3. 3. ( 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
  4. 4. ( 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
  5. 5. (“ 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: Photo from Matz’ recent NYC trip. Thanks @sd.
  6. 6. ( Let’s get into it... ⊛ Disclaimers: ⊛ Impossibly large topic ⊛ T.M.T.O.W.T.D.I. CC image
  7. 7. ( 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
  8. 8. 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.
  9. 9. Management by Observation ) 1 ⊛ Sit with your team ⊛ Don’t wear headphones ⊛ Think twice before interrupting CC Image by
  10. 10. ( 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
  11. 11. 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
  12. 12. 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
  13. 13. The Retrospective a.k.a. Kaizen ) ⊛ Conduct regularly ⊛ Leave with an action plan ⊛ Beer helps 5 CC image from
  14. 14. ( 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
  15. 15. ( The Andon Cord 7 ) ⊛ The stop-the-line cord ⊛ From the Toyota Production System ⊛ Your team should have the same power - Definition - Recent example
  16. 16. ( 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
  17. 17. ( 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
  18. 18. ( 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
  19. 19. Motivation 10 ) ⊛ Understand what motivates your employees so you can help them stay motivated ⊛ Don’t underestimate “mastery”
  20. 20. ( Feedback ⊛ How to deliver feedback 11 ) ⊛ Immediately ⊛ Privately ⊛ Critical feedback is important to growth Example: Noah interrupting Ross CC Image from
  21. 21. ( 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
  22. 22. ( 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
  23. 23. ( 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:
  24. 24. 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
  25. 25. ( Resources ⊛ Be a student of the craft ) ⊛ Reading list at ⊛ Podcasts: Manager Tools, Agile Executive, Agile Toolkit ⊛ Acting or Improv classes CC Image from
  26. 26. ( 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
  27. 27. Thanks, GoRuCo! lukemelia Thanks to GoRuCo - to the Weplay team, past, present and future