managing rubyists goruco 2010 pdf

28

Upload: luke-melia

Post on 14-May-2015

921 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Managing Rubyists GoRuCo 2010 PDF
Page 2: Managing Rubyists GoRuCo 2010 PDF

)( ManagingRubyistsGotham Ruby Conference 2010

Page 3: Managing Rubyists GoRuCo 2010 PDF

(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/

Page 4: Managing Rubyists GoRuCo 2010 PDF

( )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

Page 5: Managing Rubyists GoRuCo 2010 PDF

( )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

Page 6: Managing Rubyists GoRuCo 2010 PDF

( 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.htmlPhoto from Matz’ recent NYC trip. Thanks @sd.

Page 7: Managing Rubyists GoRuCo 2010 PDF

(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/

Page 8: Managing Rubyists GoRuCo 2010 PDF

(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/

Page 9: Managing Rubyists GoRuCo 2010 PDF

)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. - This principle calls for a bit of the opposite - Call to arms, urge to greatness - Tricky business, Rubyists not rah-rah like sales

15 things “key practices” for managing a Ruby team.

CC Image http://www.flickr.com/photos/reneesilverman/2970492936/

Page 10: Managing Rubyists GoRuCo 2010 PDF

)Managementby Observation

⊛ Sit with your team

⊛ Don’t wear headphones

⊛ Think twice before interrupting

1

CC Image by http://www.flickr.com/photos/quinndombrowski/4511137204

Page 11: Managing Rubyists GoRuCo 2010 PDF

( )Management byCoding Around

⊛ Management by Walking Around

⊛ Pair programming

⊛ Observe the key feedback loop

2

- 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

Page 12: Managing Rubyists GoRuCo 2010 PDF

( )Tools and Workspace

⊛ Buy great equipment

⊛ Encourage shared style and editors

⊛ Death to cubicles

3

- 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

Page 13: Managing Rubyists GoRuCo 2010 PDF

)A Policy for Policies

⊛ 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

4

- 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

Page 14: Managing Rubyists GoRuCo 2010 PDF

)The Retrospectivea.k.a. Kaizen

⊛ Conduct regularly

⊛ Leave with an action plan

⊛ Beer helps

5CC image from http://www.flickr.com/photos/improveit/1684184890

Page 15: Managing Rubyists GoRuCo 2010 PDF

(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

Page 16: Managing Rubyists GoRuCo 2010 PDF

( )The Andon Cord

⊛ The stop-the-line cord

⊛ From the Toyota Production System

⊛ Your team should have the same power

7

- Definition- Recent example

Page 17: Managing Rubyists GoRuCo 2010 PDF

(Be Patient

⊛ Form ➣ Storm ➣ Norm ➣ Perform

⊛ Creativity is messy

8Insist on respect and courtesy, otherwise, let stuff get hashed outTool selection...CC Image from http://www.flickr.com/photos/connah/4436987567

Page 18: Managing Rubyists GoRuCo 2010 PDF

( )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

Page 19: Managing Rubyists GoRuCo 2010 PDF

( )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 910 minutes: your direct’s questions, concerns, thoughts10 minutes: your observations, feedback, praise; and what they need to know about the rest of the company10 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

Page 20: Managing Rubyists GoRuCo 2010 PDF

)Motivation

⊛ Understand what motivates your employees so you can help them stay motivated

⊛ Don’t underestimate “mastery”

10

Page 21: Managing Rubyists GoRuCo 2010 PDF

( )Feedback

⊛ How to deliver feedback

⊛ Immediately

⊛ Privately

⊛ Critical feedback is important to growth

11

Example: Noah interrupting RossCC Image from http://www.flickr.com/photos/der_silas/4290301095

Page 22: Managing Rubyists GoRuCo 2010 PDF

(Open Source

⊛ Use it

⊛ Share your changes

⊛ Use OSS to help your employees grow and build their reputations

12Tip 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

Page 23: Managing Rubyists GoRuCo 2010 PDF

( )Hiring

⊛ Screen individually

⊛ Every candidate matters

⊛ Group interviews

⊛ Code review or pairing

⊛ Get 100% of the team on-board

13

Require a champion.

You’re in the right place today. GoRuCo, nyc.rb, etc

CC Image from http://www.flickr.com/photos/brunkfordbraun/408428562

Page 24: Managing Rubyists GoRuCo 2010 PDF

( )The Us-ThemRelationship

⊛ Why does Us-Them develop?

⊛ Fight it internally... hard

⊛ Cultivate it externally... carefully

14

- 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

Page 25: Managing Rubyists GoRuCo 2010 PDF

)Be Honest

⊛ Destroy trust, and the whole thing comes tumbling down

⊛ Share your passion

15

- 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

Page 26: Managing Rubyists GoRuCo 2010 PDF

( )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

Page 27: Managing Rubyists GoRuCo 2010 PDF

( )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

Page 28: Managing Rubyists GoRuCo 2010 PDF

Thanks, GoRuCo!

[email protected]

Thanks to GoRuCo- to the Weplay team, past, present and future