how (not) to build a team
TRANSCRIPT
#DeccanRubyConf
Audience
Developers at almost any stage of their career. Why? Because if you stay in the industry for any length of time you’re going to work on a team. You have the ability to shape that team.
#DeccanRubyConf
Goal
The goal for this talk is to give you specific and actionable advice for how to, help, build teams and to help get you started.
My experience and common sense, you should know all of this stuff. For example: What does it take to build a team. What’s the core component?
Ernie Miller conversation at lunch. This stuff is obvious so we don’t talk about it. We should do that more.
#DeccanRubyConf
Don’tStart 10 years ago
Action Item
Don’tDon’tI’m getting disapproving looks from some of the organizers and Pat Allan. Pat is the first person whom accepted an open source commit from me. It was not a great pull request and he helped me through the process and tried to understand just what the heck I was doing.
This is not good advice. You can’t take any action where you go back in the past.
#DeccanRubyConf
Start Today
Action Item
This is much more actionable. If you can, find one person whom you don’t know either sitting to your right or left, in front or behind you and introduce yourself.
AWESOME. Now, come up after this talk and tell me who you met. At that time if you can also have their contact info, job history, and what they’d like for a career path, that’d be great.
#DeccanRubyConf
Start 10 years agowith Jim^
Flashback
We’re going to move quickly through this history because I think it helps to know why I think these things are important.
#DeccanRubyConf
Start 15 years agowith Jim^
Flashback
We’re going to move quickly through this history because I think it helps to know why I think these things are important.
#DeccanRubyConf
1st professional programming job 6 months. Team grew from 1 to … well 1. But, I found my replacement and they were in place before I left.
I started here on an existing team of around 4 people. Over the course of 7 years the team grew to about 35 before it came crashing down.
I started here on an existing team of around 4 people. Over the course of 4 years the team grew to about 30 before a mass exodus occurred which happened to include me. I more or less got sucked out by the resulting vacuum.
I started here on an existing team of around 4 people. Over the course of 2 and a half years we grew the team to around 20 people before there was a fallout. I left due to a difference of opinion with my then partners a number of other folks also left in a similar timeframe. Amicable. I’ve teamed up with Bendyworks on projects quite a bit over the 18 mos.
I started here on an existing team of around 4 people. Over the course of 7 months we grew the team to about 17-18 people before it wound up contracting back down to a few people.
I wanted all the things I had experienced the risk & the reward. To control my own destiny to the degree that any of us can. Over the course of 2.5 years we’ve grown from a team of 2 to a team of 24.
#DeccanRubyConf
I’m not taking Credit
Note: Don’t take away from this talk that I built these teams myself or even that it was primarily because I was there. It wasn’t, but I did participate. Our largest client to date was not because of me. Some of our best hires were not because of me.
#DeccanRubyConf
Start 15 years agowith Jim^
So 15 years ago I was just a developer. Not a particularly good one mind you. I was self-taught and didn’t have a ton of experience. Sound like anyone in this room?
Honestly, you’re probably all more advanced that I was ten years ago.
#DeccanRubyConf
Genuinely desire success in those around you and do what you can to make it happen.
What I had back then was a worldview that I’ve used to create this personal mission statement.
Someone is pulling their hair out with trying to solve a problem? Ask if you can help. Or if you know you’re not going to be able to help suggest ways for others to help or for them to seek advice.
#DeccanRubyConf
Spoon Theory
http://adrb.io/ales-spoons
We all start out with a finite amount of energy each day and the tasks we perform consume that energy.
When you’re sick you likely have less energy or have to expend more energy to perform the same tasks as a “healthy” person
#DeccanRubyConf
Genuinely desire success in those around you and do what you can to make it happen.
What I had back then was a worldview that I’ve used to create this personal mission statement.
Someone is pulling their hair out with trying to solve a problem? Ask if you can help. Or if you know you’re not going to be able to help suggest ways for others to help or for them to seek advice. Do what you can.
#DeccanRubyConf
Avoid Meeting New People
Action Item
Don’tDon’tDon’tMeet a lot of people (Conferences, Meetups), start a conversation, get to know them. Invite others to join.
People I knew before I got here: Vipul, Prathamesh (Madison Ruby)People I knew of before I got here: Satish, GautamPeople I’ve gotten to know since arriving at the conference: Bilal (lightning talk) Jim Weirich comparison
#DeccanRubyConf
It’s not what you know
We just talked about this you might not be able to solve their problem yourself. But you might know somebody who can help.
#DeccanRubyConf
It’s who knows you
Have you ever posted to a mailing list? Or Stack Overflow? The people who answer your questions either know you or get to know you pretty quick. If you’re earnestly seeking help and you’ve done everything you can and you’re not rude or insulting people will want to help.
#DeccanRubyConf
Genuinely desire success in those around you and do what you can to make it happen.
The same is true for people who are closer than random Mailing List people. If you’re helpful and diligent people are going to be more likely to help you than if you’re an asshole.
#DeccanRubyConf
Watch those around you struggle
Action Item
Don’tDon’tDon’tHow can you build a network of successful people who are also willing to help you?By doing everything you can to make them successful
#DeccanRubyConf
Hire all your friends
Action Item
Don’tDon’tDon’tThis seems like a good idea but the same things you love about your friends in your time off are often the most irritating when you’re trying to focus and push to a successful conclusion.
#DeccanRubyConf
Don’tGet Bigger,Because it is Better
Action Item
Don’tDon’tGrowth for it’s own sake doesn’t work. Team dynamics start to break down between 10-15 people. You can no longer go to dinner together without making special arrangements. Cliques start to form.
#DeccanRubyConf
Don’tHire By Resumé Alone
Action Item
Don’tDon’tEvery person who lists Ruby on their resumé is a unique person with different experiences and backgrounds. I’m no longer a fan of weeding people out by resumé but, I understand if you have a sufficiently large pool of applicants you need some first pass.
#DeccanRubyConf
Don’tIgnore PeopleBlindly Trust Process
Action Item
Don’tDon’tYour team should be encouraged to use your process because they see it’s benefit. If they are constrained by process with no obvious benefit they will feel trapped and discouraged
#DeccanRubyConf
Don’tBurn bridges
Action Item
Don’tDon’tPeople are weird and squishy. We make mistakes and miscommunicate all the time. If you shut down everybody who you’ve ever disagreed with then you’re cutting off fuel for your own future success.
Bendyworks 2-6 people for ~ 1 year
#DeccanRubyConf
Don’tDon’t take out the trash
Action Item
Don’tDon’tLead by example, if you want to work somewhere where things are kept tidy then when you see items that need to be addressed, handle them.
Marian @ Hashrocket
#DeccanRubyConf
Don’tOnly look at the work directly in front of you
Action Item
Don’tDon’tAre we solving the right problem? This sort of tunnel vision can trip up even the best teams. Tight deadlines can trigger this …
#DeccanRubyConf
Never Fire Anyone
Action Item
Don’tDon’tDon’tIf people are not a fit for your team do what you can to find them opportunities to be more successful.
I’ve fired a number of people over the years. It’s not a fun experience. But the results can sometimes be surprising. One person I fired went on to double their salary in their next job
#DeccanRubyConf
Don’tDon’t let anyone leave
Action Item
Don’tDon’tWhen I’ve spoken to most people about joining Adorable I let them know that I don’t expect that they will retire from Adorable. We should be more interested in people growing up and out. This will happen. People will leave and hopefully because I’ve started this conversation they’ll be open when that time comes. I’ll have more time to react by addressing their reason for leaving or finding a way to carry on without them
#DeccanRubyConf
Don’tGet your team to fight amongst themselves
Action Item
Don’tDon’tWhile disagreement is healthy we should work to keep the atmosphere civil. Provide space for disagreement and resolution.
#DeccanRubyConf
Don’tAvoid planning
Action Item
Don’tDon’tIf you don’t know where you’re going then any road will do. As someone who is struck with wanderlust this doesn’t seem like a bad quote.
#DeccanRubyConf
Don’tOnly Hire Rockstars
Action Item
Don’tDon’tTalented senior developers are extremely helpful for a team. I don’t know if 10X is a real multiplier but there are people whom amplify the effect of those around them.
#DeccanRubyConf
Don’tAvoid defined roles
Action Item
Don’tDon’tIf everybody is responsible then nobody is responsible. Expectations are set by roles
#DeccanRubyConf
Anger is a violation of expectation
More than just leading to unrest in a team you could also wind-up in legal trouble if you haven’t expressly communicated expectations which you use to judge your team.
You can’t fire me for not doing X because you didn’t tell me that was my responsibility
#DeccanRubyConf
Don’tOnly hire people who already get your jokes
Action Item
Don’tDon’tI’ve felt this so hard with our junior folks. Our first five people were seasoned developers who’d lived on the internet for the previous decade. We appreciated the references but weren’t exposed to new jokes, tv shows, etc. It was pretty stale.
#DeccanRubyConf
17 Action Items
There you go direct and actionable advice for turning yourself into a team magnet.
#DeccanRubyConf
“Beyond being one of the best people I know, he's an insanely connected person. He's currently traveling to
India so responses may be slow.”
This happened in between my flight from Madison-Chicago and Chicago-Dehli. There’s another company in my town who is paying every recruiter from Poona to Madison, my hometown which is over 8,000 mi away. And I have folks letting me know that someone is likely going to be looking for a new job.
#DeccanRubyConf
“Beyond being one of the best people I know, he's an insanely connected person. He's currently traveling to
India so responses may be slow.”
I’ve tried to hire the person that made this introduction. In fact, I spoke to them last month at Madison Ruby. They are moving to Seattle and wanted recommendations for places to work.
I could have chosen to be upset that they chose not to work with me. But, by being supportive it’s led to another opportunity.
#DeccanRubyConf
If I can’t hire this person because we’re not ready for another member of the team we’re going to look like heroes to this company that cant find anyone, right?
#DeccanRubyConf
I’ve read this book in four separate companies. Pay attention to the subtitle, A Guide To Giving & Getting Advice Successfully.
#DeccanRubyConf
Never use cheap seed
Secrets of consulting
If you need someone to build a Rails Application you can hire someone who knows HTML/CSS/Javascript. The likelihood that they will be successful is going to be significantly lower than someone who knows Python or another object oriented language.
#DeccanRubyConf
A prepared soil is the secret of all gardening
Secrets of consulting
The environment that you place your team in determines their success as well.Whether it’s* internal politics* deadlines* ongoing education & community involvement
#DeccanRubyConf
Timing is critical
Secrets of consulting
If you bring somebody onto your team before you are ready or before they are ready for you they are less likely to be successful.
Growth for it’s own sake.
#DeccanRubyConf
The plants that hold firmest are the ones who develop their own roots
Secrets of consulting
We had some talk of passion earlier. I’m tempted to use that term again here to describe this analogy but, maybe that’s not correct. Someone who deliberately practices who is interested in solving the sorts of problems their job offers them is much more likely to be successful
#DeccanRubyConf
Excessive watering produces weakness not strength
Secrets of consulting
There’s a tendency in our industry to isolate developers and have them solely focused on solving software problems. To the extreme: Silicon Valley companies provide services from Hair salons to cafeterias to picking you up at your front door.
What happens to these developers when they are released back into the real world?
#DeccanRubyConf
In spite of your best efforts,some plants will die.
Secrets of consulting
I touched on this earlier. Members of your team will come and go. Maybe for reasons related to the job. Possibly for reasons beyond your control.
#DeccanRubyConf
No matter what type of animal you are,change starts with you.
I watched Zootopia on the flight over and was inspired by this closing line in the movie.