Generalist
or
Specialist
0
1
2
3
4
5
6
7
8
9
10
TFS Git Angular JS .NET C# ASP.Net EF SQL NUnit
Programming
0
10
20
30
40
50
60
70
80
Programming
Programming
Tools
0
10
20
30
40
50
60
70
80
Programming Tools
Programming
Tools
Process
0
10
20
30
40
50
60
70
80
Programming Tools Process
Programming
Tools
Process
Teamwork0
10
20
30
40
50
60
70
80
Programming Tools Process Teamwork
Programming
Tools
Process
Teamwork
Soft Skills
0
10
20
30
40
50
60
70
80
Programming Tools Process Teamwork Soft Skills
DevOps
Programming
Tools
Process
Teamwork
Soft Skills
0
10
20
30
40
50
60
70
80
DevOps Programming Tools Process Teamwork Soft Skills
Hardware
DevOps
Programming
Tools
Process
Teamwork
Soft Skills
0
10
20
30
40
50
60
70
80
Hardware DevOps Programming Tools Process Teamwork Soft Skills
Topology of Skills
Generalist
Overgeneralization
Specialist
Overspecialization
Expert in Everything
Technical Specialist
Domain Specialist
Business Specialist
Network of
Ideas
Direction
Learning
Dreyfus model of skill acquisition
Expert
Proficient
Competent
Advanced Beginner
Novice
Dreyfus model of skill acquisition
Expert
Proficient
Competent
Advanced Beginner
Novice
Dreyfus model of skill acquisition
Expert
Proficient
Competent
Advanced Beginner
Novice
Dreyfus model of skill acquisition
Expert
Proficient
Competent
Advanced Beginner
Novice
Dreyfus model of skill acquisition
Expert
Proficient
Competent
Advanced Beginner
Novice
Dreyfus model of skill acquisition
Expert
Proficient
Competent
Advanced Beginner
Novice
Eric Potter
• @pottereric
• www.humbletoolsmith.com
• http://blog.apterainc.com/custom-software/should-
custom-software-developers-be-generalists-or-a-
specialists

Generalist or Specialist

Editor's Notes

  • #2 Should you try to be more of a specialist or a generalist? That was the most debated point in the discussion. At Aptera, a group of us are reading Chad Fowler's fantastic book The Passionate Programmer and were discussing the first section. Should you learn a little about a lot of different technologies? Should you learn one technology very deeply. We work in a profession that requires constant learning, so this is an important question. I need to evaluate myself to see where I am. I am a web developer, so my examples are web centric. But they are broadly applicable.
  • #4 Framework, Runtime, editor, package manager No technology stands in isolation This is what it takes to be a full stack developer.
  • #5 Programming Skills No technology stands in isolation
  • #6 Tools Your IDE / editor. VIM Diagnostics Window in VS
  • #7 Process Scrum, Kanban, whatever Big A agile vs Little A agile
  • #8 Teamwork Do you play nicely with others
  • #9 Soft Skills Can you write? Can you present? "It's less about text files and more about people."
  • #10 DevOps Server Management Cloud Providers How well do I understand my operating system?
  • #11 Hardware Server, Network, Mobile devices
  • #12 Framework, Runtime, editor, package manager No technology stands in isolation T Shaped skills
  • #13 It is like a topology, like a mountain range You have a core competency.
  • #16 Can solve problems in different ways. Can solve a wide range of problems. " The key is to be able to solve the problems that may arise. " "What are those problems? That’s right: you don’t know. Neither do I. "Jack of all trades, master of none, though oftentimes better than master of one." 
  • #17 GP as a specialty In the medical field, family practice was reclassified as a specialty
  • #18  Chinese Proverb: "All trades known, all trades dull"
  • #19 Big data and cloud weren’t specialties 10 years ago.
  • #20 Incredibly valuable Not broadly useful http://www.topgear.com/car-news/geneva-motor-show/lamborghini-veneno Lamborgini Veneno vs Dodge Caravan – funny story about dash gong out
  • #21 Don’t put all your eggs in one basket.
  • #22 New Technology leads to new specialties 2 years ago, no one was looking for augmented reality specialists. Big data and cloud weren’t specialties 10 years ago.
  • #23 Overspecialization "Too many of us seem to believe that specializing in something simply means you don’t know about other things.“ - Fowler Can only solve the problem one way. Can’t solve non coding problems. There might be a business process that could help solve a technical problem. This makes you dependent on others
  • #27 BE BOTH. Be a generalist and be a specialist. Have T shaped skills, but think of it as a topology.
  • #31 "Ideas are fundamentally networks of other ideas. We take the tools, concepts, and scientific understanding of our time and then remix them into something new. But if you don't have the right building blocks, you can't make the break through, however brilliant you might be.“ The invention of photography require knowledge of optics and chemistry.
  • #34 Know thyself? What do you need to know deeper? What else do you need to know? What non technical skills do you need to learn. Your specialty is probably tied to your first job? Imagine what you could learn if we switch platforms? Is my specialty becoming obsolete.
  • #35 Weaknesses
  • #36 Adjacent Skills Entity Framework -> SQL Can you write better EF queries if you can read and understand a query execution plan? Often
  • #37 Parallel Skills
  • #38 Applicable per skill skill != years of experience Shu Ha Ri - Imitate, Assimilate, Innovate
  • #39 Can follow basic instructions. Can’t handle deviations. It’s like me cooking.
  • #40 Most Common Phase Starting to understand context, but they don’t see the big picture. Like me with electronics Scrum where you think you must have a daily standup. Dunning – Krugar effect: People mistakenly asses their skill as much higher than it is.
  • #41 Able to solve problems
  • #42 See the big picture. Scrum where you realize you don’t necessarily have to do a daily standup if it doesn’t provide value. Can self correct. Know what you don’t know.
  • #43 Experts: transcends reliance on rules, guidelines, and maxims has "vision of what is possible" Me vs Reed Cospy in F# You can break the rules once you know them.
  • #44 Look at your skills topology. Decide where you need to improve. Be intentional about your learning.
  • #45 Ch 7 and 8 got me started down this road.