Sunday, July 25, 2010

Become a Generalizing Specialist or T-Shaped

A generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both his or her existing specialties and other areas. A generalizing specialist is more than just a generalist. A generalist is a jack-of-all-trades but a master of none, whereas a generalizing specialist is a jack-of-all-trades and master of a few.

A generalizing specialist does one kind of job very well and some other jobs adequately. With generalizing specialists your teams enjoy the benefits of high productivity, while lowering the risk of bottlenecks, and retaining flexibility. There is another similar concept called T-shaped people:

We look for people who are so inquisitive about the world that they’re willing to try to do what you do. We call them “T-shaped people.” They have a principal skill that describes the vertical leg of the T -- they’re mechanical engineers or industrial designers. But they are so empathetic that they can branch out into other skills, such as anthropology, and do them as well. They are able to explore insights from many different perspectives and recognize patterns of behavior that point to a universal human need. - Tim Brown, “Strategy by Design”

There are many benefits of having T-Shaped people in team

  • Better communication even with less documentation, if someone has an enthusiasm or curiosity about many different subjects and disciplines, then they can be more flexible, more empathetic, and more engaged with the world
  • Better bottlenecks management, as T-shaped person can do other jobs adequately, he can contribute in other jobs if required.
  • Better solution of the problem , If the only tool you have is a hammer, you tend to see every problem as a nail. ~ Abraham Maslow , The T-shaped person can explore the problem from many different perspectives and that helps in driving better solutions.

How to become T-Shaped person? You need to find your own answer, some suggestions

  • Reading is a good method: There are some great books and Web-based resources available; you need only to invest time to take advantage of them, follow some good blog, one need to read more than just technical publications.
  • Participate in community activities, thanks to internet and many popular social media sites ,its easy to participate in online and face to face community activities , join some good groups 
  • Do some experimental projects in your non core areas, say if you are C# expert, try to make something on python.
  • Share your knowledge , if you do this other will also follow and that will help you in acquiring new skills
  • Find a mentor for a target skill, mentor could be junior to you…but he has to be expert in the skill you want to acquire  

Saturday, July 17, 2010

Avoid making people Indispensable


Every individual in a team has a important role to play, but in the interest of individual, project and organization, leaders should not allow people to become indispensable. Lots of career articles have been written about “How to make yourself Indispensable..” the tips like doing more than expectation is essential for professional growth but it should not let person become indispensable. The important part is we should motivate people to become more knowledgeable, productive, friendly and professional but not indispensable.

Indispensability can create issues like 

  • Poor Team Productivity , the person become too busy and as a result there may be many tasks kept waiting ,and because of his queue other may not be able to start their activities
  • Create Risk for project timeline, if the person is not available because of any reason it puts project timelines on risk
  • Monotonous work, as he can only do some of the work, people keep coming to him only for the same work.

Some of the measures Project team can take to avoid Indispensability
  • Continuous knowledge sharing, team should create environment of knowledge sharing. 
  • Task rotation, we should keep rotating people between modules, so there should be more than one developer who codes for one use case.
  • Educate team to become more professional, the growth in career happens by sharing knowledge not by keeping secrets.
  • Put process in place, process like one codes and other does the review, one codes and other fixes the bug, peer programming and group design can institutionalize the knowledge sharing.