Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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