The natural tendency of growth is towards specialization. When you only have a few people, they must by necessity do everything. When you have more people, there’s enough room and slack to let people build specialization kingdoms that only they have the keys to. Don’t be so eager to let that happen.
Specialization might give you a temporary boost in productivity, but it comes at the expense of overall functional cohesion and shared ownership. If only Jeff can fiddle with the billing system, any change to the billing system is bottlenecked on Jeff, and who’s going to review his work on a big change?
But it goes even deeper than that. For example, we have all programmers work on-call as well. Everyone gets to feel the impact of customers having trouble with our code (this is on top of Everyone on support).
This really came to the test lately when we started working on a number of iOS and Android projects. Should we hire new specialists in from the outside or should everyone do everything, and thus have our existing team learn the ropes. Well, in that case we ended up doing both. Hiring a little because we needed that anyway, and getting someone with some experience, but also choosing to invest in the existing team by having them learn iOS and Android from scratch.
Good programmers are good programmers. Good designers are good designers. Don’t be so eager to pigeonhole people into just one technology, one aspect of your code base, or one part of your business. Most people are eager to learn and grow if you give them a supportive environment to do so.
Winston
on 16 Jan 14If everyone does everything, does that mean that someone trying to get into the workforce should try to learn everything (i.e. if you’re a programmer, learn a little design and communication skills besides learning to code)?
Ted Pearlman
on 16 Jan 14People do best what they love doing. They are fair to lousy at things they tolerate or dislike. Some people love and do one thing. Some people love and do many things.
In Comedy: Bill Hicks loved and did one thing: stand-up. Carl Reiner has loved and done many things: stand-up, acting, directing, producing, writing, voice acting, and radio comedy.
In Music: Vlado Perlemuter loved and did one thing: he played the works of Ravel on piano. Stevie Wonder has loved and done many things: he sung all the parts and played almost every instrument on his first five albums.
Some people are singularly focused. Some people are polymaths.
I’m sure there were people who told Bill Hicks he should also do a sitcom. I’m sure there were people who told Carl Reiner to stick with comedy writing. I’m sure there were people who wished Vlado Perlemuter had tackled Brahms. I’m sure there were people who suggested Stevie Wonder take on a drummer.
I’m glad none of them listened.
ecbp
on 16 Jan 14@Ted I’m pretty sure David isn’t saying ‘Everyone should be made to do everything’ . He’s leaving the door open for people do to more than one thing, to explore and learn. Which is generally against the nature of businesses to organize around specialized roles.
Sean
on 17 Jan 14@ecbp, i think that is the key here.
I’ve seen in the past that its easy to create a ‘minion’ type atmosphere where team members feel they are put on tasks or projects not because they love doing them or are really good at them but more because they were just standing closest to it (so to speak), and people can really start to feel like they are just a cog.
Javier Gonel
on 17 Jan 14I’ll share my experience on this after 4 years of hiring spree.
People who are willing to leave their comfort zone and work on other areas/languages/etc usually start with more energy in their jobs. They’re learning but they’re also giving some extra effort to learn that “new thing”, and they like it.
This also gives them motivation. Of course this doesn’t last forever, that’s why you can rotate people (we didn’t do much of this). In order to keep your workmates motivated and eager to learn.
Experience has its own value. When we moved to Ruby on Rails, we did it with the help of an existing workmate’s knowledge of RoR and an extra RoR hire. These two built a front end team with other people and helped them to get up to speed in no time. Also the same happened with iOS after two failures, we had to hire an iOS expert, but we didn’t do the same for Android. And it worked really well.
My point here is that using people’s experience helps a lot when you’re late or when you need consulting on something specific.
The last thing: bring new ways of thinking into a team. If people rotate teams, they will share they way of seeing things with their new team. IMHO this helps all the team to improve and brings some fresh air in the room. Unfortunately because we didn’t rotate much this only happened with new hires.
My 2 cents.
Felix
on 17 Jan 14Hi, nice article! For me, this is totally my work-lifestyle. It gives you a lot of freedom and a lot chances to develop your personality. Because you do not work in boundaries, you work cross border (cross department). For example your have knowledge of programming, web design and product management. You work much broader. It would be boring to do just one of the 3. Surly not so focused as someone who is just specialized on 1 thing. But from my Point of view and from working 8 years in the industry now, if you are too focused you lose the big picture. And a good understanding from other processes helps you to estimate “risk” or “potentials” without going to much in detail and being too focused.
It’s good to think out of the box, to develop new habits and dive easier in new challenges. The curiosity for the new and other things is the key driver. Learn from others and share your knowledge. Don’t be a gate keeper and be known as the one and only expert for this and that. And I am also not talking about the catch-all guy. Someone who is the fireman who needs to handle everything that’s about to escalate. But what I recognized is that a lot of companies are shy to hire such people or even can handle them in job interviews. And how could they! Because it is easier if they go by “I need a developer!” and have an interview with a developer to speak about code, patterns, etc. I nearly see job descriptions who say we need someone that does “everything”. Or do some work as man in the middle. Because usually the biggest problem is the communication between all the specialists and someone who translates.
Usually even during an interview its common that they like to brand future employees with a label. You are our design guy! And when you are in that role it is hard to start coding, since you are the design guy! They say do what you are good at and what you are known for! But the mixture, the special influence to the work that someone brings when he/she handles things different – can be a new magical twist to the product.
But only some managers, I mean really courageous managers or bosses, make the difference if they see something like this in their employees. If they are not only talking about change, if they also support change! Actually this comment went longer than I thought but it might add a supplementary note to the blog post. Felix
Bruno Bernardino
on 17 Jan 14We do this where I work.
I am responsible for much of the hiring and the interviews, and I always value people who know (or are interested) in different areas of knowledge.
Me, having knowledge and experience in all parts of a company/product, from DevOps to Front end, including Business & People Management, I understand the value such diverse knowledge and interest brings.
We’ve had developers that “started” in PHP, moved to fullstack JS, and are now learning iOS, for example.
The same way, we’ve had UI/UX designers learn and improve their coding skills.
The key to success is to have people focus on one thing at a time, and something they’re passionate about (even if it’s something new to them).
Glenn Meder
on 17 Jan 14There are great benefits with this approach. First of all, people are more fulfilled. Second, people gain a better understanding of what other people work on, the problems they encounter and are better able to come up with holistic solutions. Third, the company gains by having different perspectives. My father told me of his experiences on a P&G product development team. They hired people from a wide range of backgrounds that seemed to have nothing to do with cosmetics, such as a geologist (my father), psychologist, etc. These people were able to solve problems in unexpected ways because of the diversity of perspectives.
anon
on 17 Jan 14satirical posts David, SME use that as an excuse not to do things properly.
John Locke
on 19 Jan 14I like teams where the focus is teaching everyone some of what the others know. The pattern in our industry is to hire specialists and silo tasks off. I believe rigorous specialization is bad for the individuals and the organization.
While hiring only specialists might gain the company a slightly better fit for that exact need, it does not foster growth. We thrive on learning and challenge. Partitioning off tasks to certain individuals does not allow other members of a team to learn anything new, and each team member has less understanding of how their role fits among everyone else’s.
Designers and developers are meant to have a broad understanding of our craft. Our industry as a whole has vilified this, making it seem as though learning something about everything will make your skills dull or a “master of none”. I think that is bull.
Pigeonholing people as only knowing one skill discourages them from learning anything new or outside their wheelhouse. Teams where information and tasks are shared makes the team stronger, as everyone understand what everyone else is doing so much better.
Christopher
on 20 Jan 14Great article. I am always looking to learn more and more. Mastering your craft is one thing but staying current is another. We are living in an age where technology is growing more rapidly by the day.
hmm
on 20 Jan 14nice article and sentiment but not a one size fits all proverb and I think DHH is clear about that in the beginning, there are some businesses where it does NOT make sense to have 1 or a few people in charge of something to the exclusion of others that are capable of the same, it leads to major problems and he is 100% right in my view
but you have to have people willing to do everything and that is not so easy depending on the business/industry, some of that has to do with hiring right in the first place
but you have to have people capable of doing everything and that is not so easy depending on the business/industry, some of that has to do with aptitude, attitude and hiring right in the first place
of course there are good reasons for specialization depending on the business/industry, imagine staff at a hospital, do you really want them all doing your surgery, even if all the people in question are medical doctors?
Imagine a software development company, do you want someone who is brilliant at code but painfully antisocial interacting with customers with disastrous results? Or should that person not be hired in the first place or should they learn to interact better even if they are deadset against it and have to be on meds to do so?
depends so much on the business, but for smaller software companies staffed by capable people, I agree with DHH, you have to get everyone on board with everything and have a hive mindset, reminds me of that Stark Trek villain (“the borg” or something)
thanks to DHH for the article
MV
on 23 Jan 14Do you mean that every programmer in 37signals is allowed to design & write website copy for the feature they work on ?
Good programmers are good programmers. Good designers are good designers.
But
Good programmers may NOT be good designers. Good designers may NOT be good programmers.
This discussion is closed.