<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.developerdotstar.com/community" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>developer.* Blogs - To specialize or generalize? - Comments</title>
 <link>http://www.developerdotstar.com/community/node/45</link>
 <description>Comments for &quot;To specialize or generalize?&quot;</description>
 <language>en</language>
<item>
 <title>Hello Ian,
My name is also</title>
 <link>http://www.developerdotstar.com/community/node/45#comment-723</link>
 <description>&lt;p&gt;Hello Ian,&lt;/p&gt;
&lt;p&gt;My name is also Ian Joyce. That really blows because I thought I was special before now. It sucks that you took my name, and I think you should change yours ASAP!! I think Namestealer Joyce sounds good. It fits your personality. Just as there was a only one highlander, there must only be one Ian Joyce.&lt;/p&gt;
&lt;p&gt;Your name-twin&lt;br /&gt;
Ian Joyce&lt;/p&gt;
</description>
 <pubDate>Thu, 29 Dec 2005 23:03:09 -0800</pubDate>
 <dc:creator>Guest</dc:creator>
 <guid isPermaLink="false">comment 723 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>The Specializing Generalist</title>
 <link>http://www.developerdotstar.com/community/node/45#comment-42</link>
 <description>&lt;p&gt;Hi Ian,&lt;/p&gt;
&lt;p&gt;I like the idea of the &lt;i&gt;specializing generalist&lt;/i&gt;. The phrase is of my coinage, but I must credit the inspiration for it to Scott Ambler. He discussed this exact question of specialist vs. generalist in his Software Development Magazine column a few years ago. The context in which he discusses the idea is in how to build an effective agile team, but I think it&#039;s easy to extrapolate his advice to one&#039;s own career. Here is an excerpt from Ambler:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Clearly, neither extreme works wellâ€”instead, what you want is something in the middle. One approach is to build a combined team of generalists and specialists. The generalists provide the glue, focusing on the bigger picture, while the specialists deal with the project&#039;s detailed complexities. This works well because the generalists&#039; strengths balance the specialists&#039; weaknessesâ€”and vice versa.&lt;/p&gt;
&lt;p&gt;An even better approach is to build a team comprised of people who are generalists with one or two specialties. For example, I&#039;d claim that I&#039;m a generalist. I have a pretty good handle on how the software process fits together, yet I have specialties in business application software modeling, object persistence and Java programming. One of my current coworkers is a generalist with specialties in modeling, EJB development and testing, whereas another is a generalist with specialties in telecommunications networking and Java programming. The advantage of building teams from generalists who have one or more specialties is that they quickly find common ground with their coworkersâ€”after all, they&#039;re generalists, with the necessary background to appreciate the importance of other specialties. The main disadvantage is that these people are often very senior, and thus are difficult to findâ€”it can easily take ten to 20 years to gain sufficient experience to become a generalist.&lt;/p&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This rings true for me. I try to focus my own energy along these lines. On the one hand, to really make complex systems sing, we &lt;i&gt;must&lt;/i&gt; be a specialist in some language, platform, toolset, etc. Platforms like J2EE, .NET, Windows/COM/COM+/IIS/ASP, and Linux/Apache/PHP demand deep knowledge of complex modular systems--and that&#039;s before we even get into programming languages.&lt;/p&gt;
&lt;p&gt;On the other hand, if we don&#039;t have a broad range of knowledge, our highly specialized skills are like a table without enough legs. There are so many areas in which a professional must have at least some knowledge: development processes and methodologies; configuration management; quality assurance; operating systems; hardware; networks; writing; troubleshooting; project management; etc, etc.&lt;/p&gt;
&lt;p&gt;I also like to extend the idea of generalization beyond technology itself. The &lt;a href=&quot;/mag/articles/weinberg_healthybody.html&quot;&gt;Gerald Weinberg essay&lt;/a&gt; recently published here and Edward Nilges&#039;s recent &lt;a href=&quot;/community/node/42&quot;&gt;blog posts&lt;/a&gt; demonstrate expertly how other disciplines such as philosophy, history, and culture can help us understand our technical work more fully. &lt;/p&gt;
&lt;p&gt;Here is a link to the Scott Ambler piece. You&#039;ll need a Software Development Magazine account to read it:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.sdmagazine.com/documents/s=6977/sdmam0112/sdmam0112.htm&quot; title=&quot;Scott Ambler Specialist Generalist&quot; target=&quot;_blank&quot;&gt;Agile Developers: Generalists or Specialists?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As to the trivial matter of coinage of the phrase &quot;specializing generalist,&quot; using Google I found this blog post that also uses the phrase:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/micahel/archive/2004/06/09/151778.aspx&quot; target=&quot;_blank&quot;&gt;Hallmarks of a Great Tester&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&#039;s a good phrase, I think. Doesn&#039;t really matter who thought it up.&lt;/p&gt;
&lt;p&gt;Finally, I can&#039;t resist pointing to an essay I wrote on this subject a couple years ago: here is &lt;a href=&quot;/mag/articles/read_strategies1.html&quot;&gt;Part 1&lt;/a&gt; and &lt;a href=&quot;/mag/articles/read_strategies2.html&quot;&gt;Part 2&lt;/a&gt; of the essay, which is called &quot;Specialties and Strategies.&quot;&lt;/p&gt;
&lt;p&gt;Dan&lt;/p&gt;
</description>
 <pubDate>Wed, 22 Dec 2004 11:47:38 -0800</pubDate>
 <dc:creator>Daniel Read</dc:creator>
 <guid isPermaLink="false">comment 42 at http://www.developerdotstar.com/community</guid>
</item>
<item>
 <title>To specialize or generalize?</title>
 <link>http://www.developerdotstar.com/community/node/45</link>
 <description>&lt;p&gt;What&#039;s your opinion? &lt;/p&gt;
&lt;p&gt;Should I dig in deep and learn everything I can about one language/technology and become an expert in it? Or should I spread that time learning several programming languages and not becoming an expert in any of them, but knowing enough to get by?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.developerdotstar.com/community/node/45&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.developerdotstar.com/community/node/45#comment</comments>
 <category domain="http://www.developerdotstar.com/community/taxonomy/term/2">Career and Profession</category>
 <category domain="http://www.developerdotstar.com/community/taxonomy/term/3">The Software Industry</category>
 <pubDate>Tue, 21 Dec 2004 20:07:03 -0800</pubDate>
 <dc:creator>Ian Joyce</dc:creator>
 <guid isPermaLink="false">45 at http://www.developerdotstar.com/community</guid>
</item>
</channel>
</rss>
