Sound familiar? The Rails ecosystem has grown in leaps and bounds, like the Java ecosystem did in its’ early days. So many languages, frameworks, plugins, engines, libraries and tools. So little time to deliver your new project.
It’s tempting to hire a rock star who knows absolutely everything to get your new project off the ground. You can also hire "consultants" to help fill in the holes in your team when taking your existing product to the next level. Or maybe just hire a whole bunch of people for cheap, and they’ll get the job done... But did you ever consider the untapped wealth of the team you already have?
In this session we’ll explore ways in which the average development team can explore, learn, teach, and grow, until the sum of members of the team is as great as any Consultant or Rockstar.
Because there’s an awful lot of job postings looking for them...\n
And there’s even a reality TV show about them.\n
But the simple fact is, at one time or another, pretty much everyone does\n
The real question is why do we think we need a rockstar or a consultant? And why do we continue to need them?\n
Let’s start with breaking the question down.\n
\n
But not just that. Rockstars are self-motivated learners. They learn new things, because they enjoy learning new things.\n
\n
They’ll “get ‘er done fast”, and push that critical release out the door\n
Because we all need a superhero every now and then, right?\n
The difficult we do immediately, the impossible could take a little longer.\n
Actually, consultants tend to come in a couple of different flavors\n
\n
These would be your experts. They have deep knowledge of a critical piece of your technology stack. \n
Tuning that database. Scaling that app to 5 million users\n\n
Your team thinks a problem is really too hard, then you bring in the expert(s). Things that are hard to learn. Things that are difficult to understand.\n
Consultants are frequently part of a group.\n
And as a group, Consultancies have a vast pool of knowledge to call upon, from their colleagues.\n
This is the kind of work Thoughtworks specializes in\n
So, if Rockstars & Consultants are so great, why would you not want to hire them?\n\nWhat, exactly, are the downsides?\n
There are some risks associated with each of these types\n
Self motivated learners... once there is nothing new to learn, they get bored, and they run away when the next opportunity to learn presents itself. \n
Or worse, they don’t run away, and start...\n
Those rockstar ninjas know everything, do everything, work insane hours, burn out...\n
I still remember hearing about Ezra (don’t make me say his last name). This was just last year/\n
Some of your rockstars are just looking for what I like to call the illusion of the big payoff. \n
If you don’t produce that, they’ll move on for another try. \n
You do? then they “retire”.\nSo that’s the problem with the big payoff. It’s a lose-lose proposition for most companies.\n
This is often joked about, but\n
It’s only funny when it’s not happening to YOU or YOUR COMPANY.\n
Official definition: someone who behaves in demanding, often temperamental, fashion revealing an inflated view of themselves, their talent, and their importance.\n\nWhat if they are hard to work with? They can be mono-focused and not open to new, alternative ideas.\n
Last but not least, the Rockstar who knows he/she is a Rockstar, will know their own worth. They will never come cheaply.\n
Consultants on the other hand...\n
Consultants will lack knowledge of your business, your operational limits, your long term plans. \n
The ole bait & switch. \n
You hire them for their expertise, and they send in the B-team.\n\nQuality control becomes an issue\n
Culture clash. The Impedence Mismatch between your way of perceiving problems and solutions, and your consultants way of perceiving problems and solutions may be difficult to manage.\n\n\n
You may not have your consultant’s complete attention. \n
They may be juggling 2 or 3 projects at the same time.\n
Most taxation agencies will look at you cross-eyed, if all you hire are consultants. They’ll watch you closely, to see if you are misclassifying your workers.\n
The IRS or the CRA or whatever your local taxation agency is called... will come and get you. \n\nBecause if your relationship with a consultant can be classified as a “personal services” contract, you and your consultant are both gonna have a bad time.\n
All that knowledge that they came in with? Most of it walks out the door with them, when the contract ends, when the better opportunity arises, when the payoff happens.\n\nKnowledge walking out the door is an asset lost.\n
So what *are* your alternatives\n
That’s Cinder, as a puppy. I dare you to not find that cute.\n
How about you spend some time and grow your own team.\n\nGrow is such an interesting word. It could mean expand, but I prefer to think about it as organic growth. We’ll come back to it, and reflect on the many aspects of grow.\n
In order to effectively grow your team, first you must know your team.\n\nsingle? workaholic? married? kids? pets? aging parents? illness or disability?\n\n\n
These are never things to be discriminated about, just ... knowing enough about your people in order to make the most effective use of your team.\n\nhttp://www.thetoyzone.com/2009/blocks-for-kids/\n
\n
everything involved in the devops of your application or project development\n
\n
\n
MRI or JRuby or Rubinius? Old projects on still lingering on 1.8 or new ones on 1.9?\n
How does any one person keep on top of all of that? Poorly, at best. What to do?\nThere’s got to be an alternative... \n
Because if you don’t, some day your rockstar\n
is gonna start looking like this.\n
To go back to the organic/growth/plant analogy... Training your people is like using fertilizer. \n
Hard cash money is one component to that fertilizer, but training is as much about time, as it is about money\n
If you fail to give your people the time, not only to learn, but to absorb that learning, and try it out for size, then your money is wasted.\n
Lets not forget, there are many types of learning. Remember how we were going to KNOW our TEAM? If you don’t know your team, you won’t know which is the most effective type of training to apply\n
\n
\n
\n
\n
\n
like the Pragmatic Studios\n
yuck, I know, but there it is.\n
Conferences are great learning experiences.\n
If you spend money, as well as time, on all this training, make certain it’s shared. This multiplies the effect of all that training, across your team. Make sure that anyone taking training has the opportunity to pass that learning on to the team\n
\n
Back to “know your team”. If they are all married with kids, Bar Camp = bad idea. Lunch & Learn = good idea. Bunch of single workaholics? Bar Camp all the way.\n
What if they take all that training and leave?\n
Replacing an unhappy developer who walks away is almost always going to cost you more than doing what’s necessary to keep them. Not just in terms of finders fees, but time. Lots and lots of wasteful time. \n
If you prove to people that they are valued, they will be more likely to stay, than those who think that they are just another warm body, down in the trenches, a replaceable cog in the machine.\n
So beyond Training, we have Engagement.\n\nMake certain that every single person on the team is engaged, and feels ownership of SOMETHING.\n\nSo how do we do that?\n
Collective code ownership is great, but as I think I have amply demonstrated, not everyone can be an expert in every single piece of the puzzle.\n\nFor each of your core technologies, you need to identify a primary and secondary point person\n
The go-to person for that piece of the puzzle. \n
Remember when we talked about that “hit by a bus” thing? How about vacations? Sick Leave, Mat leave?\n
Just declaring primary and secondary point person is not enough. You need more.\n
I guess given that so many developers are introverts, it shouldn’t be surprising, but... you can’t just sit back, you need to step up and participate.\n\nIf you want to step up, and BE the expert, then you’ll need to participate\n
There are hundreds/thousands of resources out on the web, USE THEM.\n
\n
\n
\n
\n
\n
\n
\n
\n
Everyone has to start somewhere. The point is to make the effort to stay on top of at least one thing\n
What are the bugs? Incompatibilities? Stability issues?\n
Unless your tool is stagnant and never changes (code smell! run away!), you’ll need to manage your updates\n
Participate. Don’t have to inflict on your team, but try it out, get an idea of what the impact will be. If you need a second opinion, that’s why you’ve got a secondary.\n
Then when release candidates come out, you will be well positioned to use them. \n
As Wes mentioned yesterday, and as my Public Service Announcement of the presentation, if it’s open source, then for gawd’s sake contribute back!\n
Did I mention that this takes time? \n
Factor all this learning, and growing, and developing expertise into your sustainable pace. \n
Don’t let people sit back on their laurels, either. Some elements and projects will be more interesting than others. Make certain you rotate people around, and let them develop expertise in new areas. When you have primary and secondary experts, it’s a lot easier to do this, and you’ll keep people from getting stale, bored, and frustrated.\n
\n
\n
\n
\n
Looks to me like we’ve got one of those virtuous circles here. \n
Training, Participation, Developing Expertise... All these things combine into a continuous improvement process for your team. \n
And that is what will GROW your TEAM into something better than all the Rockstars & Consultants out there.\n
And that’s Finnegan, saying, that’s all folks, we’re done.\n