0
Being An        Excellent        Software        DeveloperMichael “Doc” Norton ◊ @DocOnDev ◊ doc@leandog.com
Excellent:     remarkable character  worthy of praise
SoftwareDeveloper: research, design, develop, and test
Excellent    Software   Developer:Remarkable character worthy of praise in the research, design, development, and         ...
Right.  how?
Master  y
Know
KnowYour
KnowYour hit       S
Know Stuff    Your
Know Craft    Your
Know Craft    Your
Know Craft    Your
Apprenti         Journeyman Master  ce
Apprenti         Journeyman Master   ce  Shu       Ha     Ri
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Where are  you?
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Shu            Ha            Ri                                    Innovator                 Proficient Expert      Advance...
Done?
Polyglo   t
Polyglo   thttp://memeagora.blogspot.com/2006/12/polyglot-               programming.html
Polygl  otComputer program or script written   in a valid form of multiple    programming languageshttp://memeagora.blogsp...
Ruby  Rails
RSpec  Ruby                                                                        Capistrano          ActiveRecordBundler...
Done?
T-Shape
T-    ShapeIndividuals able to apply deep vertical skills but who have empathy with other skills in                  the t...
empathy with other skills         apply deep vertical                skills
empathy with other skills         apply deep vertical                skills
empathy with other skills                                                                 RSpec   Ruby                    ...
empathy with other skills                                                                 RSpec            Capistrano     ...
empathy with other skills                                                                 RSpec            Capistrano     ...
empathy with other skills                                                                 RSpec            Capistrano     ...
empathy with other skills                                                                 RSpec            Capistrano     ...
empathy with other skills                                                                                 Capistrano      ...
empathy with other skills                                                                                Capistrano      A...
empathy with other skills         Rake      ActiveRecord            JavaScript        HTML         apply deep vertical    ...
empathy with other skills         apply deep vertical                skills
empathy with other skills         apply deep vertical                skills                                   Business Ana...
User Experience skills empathy Quality          with otherusiness Analysis Assurance         apply deep vertical          ...
empathy with other skills         apply deep vertical                skills
empathy with other skills         apply deep vertical                skills
empathy with other skills                  Team                                            Coaching                       ...
Software Developer
Done?
Collegi  al
Collegi  al United in a common purpose andrespecting each others abilities to     work toward that purpose
Can weall getalong?
Should weintroduce jQuery?
Should weintroduce jQuery?
Should weintroduce jQuery?
Should we          introduceDisagree. I                Needs                                                              ...
What kind of keyboards should we    use?
What kind ofWired are better. I like the numeric keypads. keyboards      Wireless, dude, wireless. I need my own rig or a ...
What kind of Wired are better. I like the numeric keypads.    keyboards  It doesn’t matter tome, but we could each        ...
Tell             Sell        Consult         Agree          Advise         Inquire Delegate                   I consider  ...
Delegat   Tell           Sell     Consult Agree               Advise Inquire         Joker                                ...
Delegation 8
Trend        % Profit40302010 0-10      Q1     Q2    Q3     Q4      Next
We’re                              AsDoome                  Trend        a matter of                                  % Pr...
Neutral, objective,     The emotional          Careful and  only concerned              view,            cautious, the   w...
Done?
Never.
Never. “Anyone who stops learning is old,whether at twenty or eighty.”  ~ Henry                Ford
“Anyone who stops learning is old,   whether at twenty or eighty.”  ~ Henry                   FordThanksMichael “Doc” Nort...
Being and Excellent Software Developer - Windy City Rails
Being and Excellent Software Developer - Windy City Rails
Being and Excellent Software Developer - Windy City Rails
Being and Excellent Software Developer - Windy City Rails
Being and Excellent Software Developer - Windy City Rails
Being and Excellent Software Developer - Windy City Rails
Upcoming SlideShare
Loading in...5
×

Being and Excellent Software Developer - Windy City Rails

1,714

Published on

There was a time when knowing one language provided you with a life-long career. There was a time when technical prowess alone determined your value to the company. An excellent developer was an expert in their language and tools, relegated to an enclosed room, cranking code to meet specifications. Today, possessing only these traits can leave you at risk. In another few years, possessing these traits alone will likely leave you jobless. What does it take to be an excellent developer in today’s fast-pace collaborative work environment?

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,714
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
33
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Does this resonate with you at all?\n\nCall it what you want; junior, senior, lead - the general concept is the same (we hope)\n
  • Shu - Hold, Ha - Break, RI - Leave\nShu - follow rules as told, focus on how over why, generally one teacher\nHa - learning principles and theory, integrates new teachers into practice\nRi - Student adapts and learns from own practice and innovation\n
  • Dreyfus Model of Skills Acquisition\n\n
  • Shu - follow rules as told, focus on how over why, generally one teacher\n\nLittle or no knowledge\nLittle or no experience\nNeed rules\nImpatient for results\n\nNeed a mentor and close monitoring\n
  • Shu - follow rules as told, focus on how over why, generally one teacher\n\nSome experience\nCan find information\nBreak free of some rules\nCan’t filter irrelevant information\nCan’t determine importance\n\nNeed experience in limited and controlled real-world situations\n
  • Ha - learning principles and theory, integrates new teachers into practice\n\nHave a mental model\nAssociations formed\nCan handle the unknown\nMethodical\n\nNeed a variety of real-world situations to form connections between already held ideas and models\n
  • Ha - learning principles and theory, integrates new teachers into practice\n\nInterested in big picture\nImpatient with over-simplified information\nGrasp and apply maxims - YAGNI, Do the Simplest Thing That Can Possibly Work\nInternalization\n\nNeed a lot of practice, hindered as little as possible by policies or guidelines\n
  • Ri - Student adapts and learns from own practice and innovation\nTrue Authority\nDeveloped Intuition\nDeep pool of knowledge\nCan Interlink Skills\nTend to be inarticulate in how they arrive at conclusions\n\nContinue to practice. Learn by teaching.\n
  • Ri - Student adapts and learns from own practice and innovation\nVery Rare\nDevelop new models and approaches\n\nContinue to practice.\n\n
  • There’s a challenge in our field.\nWhere do you think most people spend their careers?\n
  • \n
  • Here’s where many think they are in their career\n
  • Here’s the furthest most advance\n\nNeed a lot of practice, hindered as little as possible by policies or guidelines\n
  • As we progress through these stages, what are we learning at a meta level?\n\n
  • \n
  • \n
  • \n
  • Neil Ford\n
  • Java :: Closure, Groovy, Scala, JRuby, Jython, Rhino, AspectJ\n.NET :: VB.NET, C#, F#, J#, Lua, Ruby.NET\n\nfunctional, relational, object oriented, aspect oriented\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • Deep Understanding of their area of specialization and a broad understanding of other disciplines within their broader role.\n\nA generalizing specialist is someone with one or more technical specialties who actively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas. - Coding Horror (Jeff Atwood)\n\nGeneralizing Specialist: A Definition\nA generalizing specialist is someone who:\nHas one or more technical specialties (e.g. Java programming, Project Management, Database Administration, ...).\nHas at least a general knowledge of software development.\nHas at least a general knowledge of the business domain in which they work.\nActively seeks to gain new skills in both their existing specialties as well as in other areas, including both technical and domain areas.\nGeneralizing specialists are often referred to as craftspeople, multi-disciplinary developers, cross-functional developers, deep generalists, polymaths, versatilists, or even "renaissance developers". \n \n\n
  • \n
  • \n
  • \n
  • Keep your commitments.\nCommunicate Early and often\nShare credit for accomplishments, ideas, and contributions.\nHelp other employees find their greatness. \n\nDon't ever play the blame game.\nNever blind side a coworker, boss, or reporting staff person.\nBring suggested solutions with the problems to the meeting table.\nYour verbal and nonverbal communication matters.\n\n
  • Keep your commitments.\nCommunicate Early and often\nShare credit for accomplishments, ideas, and contributions.\nHelp other employees find their greatness. \n\nDon't ever play the blame game.\nNever blind side a coworker, boss, or reporting staff person.\nBring suggested solutions with the problems to the meeting table.\nYour verbal and nonverbal communication matters.\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Edward DeBono\nParallel Thinking\n\nBenefits\n Power – the group is looking and working in the same direction\n Time saving – thinking in parallel saves tangential argument thus time\n Removal of ego – minimizes emotion, creates focus\n One thing at a time – minimizes confusion created by argument \n\nHow To\nAlways start and end with the Blue Hat\n Why we are here, what we want to accomplish, the sequence of hats\n What we’ve achieved, next steps \nHats are always referred to by their color and not their function\n Facilitator calls for a certain hat and participants must stay with that hat until it changes\n\n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Being and Excellent Software Developer - Windy City Rails"

    1. 1. Being An Excellent Software DeveloperMichael “Doc” Norton ◊ @DocOnDev ◊ doc@leandog.com
    2. 2. Excellent: remarkable character worthy of praise
    3. 3. SoftwareDeveloper: research, design, develop, and test
    4. 4. Excellent Software Developer:Remarkable character worthy of praise in the research, design, development, and testing of software
    5. 5. Right. how?
    6. 6. Master y
    7. 7. Know
    8. 8. KnowYour
    9. 9. KnowYour hit S
    10. 10. Know Stuff Your
    11. 11. Know Craft Your
    12. 12. Know Craft Your
    13. 13. Know Craft Your
    14. 14. Apprenti Journeyman Master ce
    15. 15. Apprenti Journeyman Master ce Shu Ha Ri
    16. 16. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    17. 17. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    18. 18. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    19. 19. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    20. 20. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    21. 21. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    22. 22. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    23. 23. Where are you?
    24. 24. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    25. 25. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    26. 26. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    27. 27. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    28. 28. Shu Ha Ri Innovator Proficient Expert Advance Compete d nt BeginnerNovice
    29. 29. Done?
    30. 30. Polyglo t
    31. 31. Polyglo thttp://memeagora.blogspot.com/2006/12/polyglot- programming.html
    32. 32. Polygl otComputer program or script written in a valid form of multiple programming languageshttp://memeagora.blogspot.com/2006/12/polyglot- programming.html
    33. 33. Ruby Rails
    34. 34. RSpec Ruby Capistrano ActiveRecordBundler CSS Sinatra Capybara Rails HAML Cucumber HTML Factory Girl CoffeeScript JavaScriptGems Thor i18n RakeJasmine
    35. 35. Done?
    36. 36. T-Shape
    37. 37. T- ShapeIndividuals able to apply deep vertical skills but who have empathy with other skills in the team
    38. 38. empathy with other skills apply deep vertical skills
    39. 39. empathy with other skills apply deep vertical skills
    40. 40. empathy with other skills RSpec Ruby Capistrano ActiveRecord apply deep vertical Bundler CSS Sinatra Capybara skills Rails HAML Cucumber HTML Factory Girl CoffeeScript JavaScript GemsThor i18n RakeJasmine
    41. 41. empathy with other skills RSpec Capistrano ActiveRecord apply deep vertical Bundler CSS Sinatra Capybara skills RailsRuby HAML Cucumber HTML Factory Girl CoffeeScript JavaScript GemsThor i18n RakeJasmine
    42. 42. empathy with other skills RSpec Capistrano ActiveRecord apply deep vertical Bundler CSS Sinatra Capybara skills Rails HAML Cucumber HTML Factory Girl CoffeeScript JavaScript GemsThor i18n RakeJasmine
    43. 43. empathy with other skills RSpec Capistrano ActiveRecord apply deep vertical Bundler CSS Sinatra Capybara skills Rails HAML Cucumber HTML Factory Girl CoffeeScript JavaScript GemsThor i18n RakeJasmine
    44. 44. empathy with other skills RSpec Capistrano ActiveRecord apply deep vertical Bundler CSS Sinatra Capybara skills HAML Cucumber HTML Factory Girl CoffeeScript JavaScript GemsThor i18n RakeJasmine
    45. 45. empathy with other skills Capistrano ActiveRecord RSpec apply deep vertical Bundler CSS Sinatra Gems Capybara skills HAML Cucumber HTML Factory Girl CoffeeScript JavaScript i18n Thor RakeJasmine
    46. 46. empathy with other skills Capistrano ActiveRecord apply deep vertical CSS Sinatra Capybara skills HAML Cucumber HTML Factory Girl CoffeeScript JavaScript i18n Thor RakeJasmine
    47. 47. empathy with other skills Rake ActiveRecord JavaScript HTML apply deep vertical Sinatra Thor Jasmine Capistrano Factory Girl Capybara CSS i18n Cucumber CoffeeScript HAML skills
    48. 48. empathy with other skills apply deep vertical skills
    49. 49. empathy with other skills apply deep vertical skills Business Analysis User Experience Quality Assurance
    50. 50. User Experience skills empathy Quality with otherusiness Analysis Assurance apply deep vertical skills
    51. 51. empathy with other skills apply deep vertical skills
    52. 52. empathy with other skills apply deep vertical skills
    53. 53. empathy with other skills Team Coaching Leadership Business Domain apply deep vertical Public Functional Speaking Programming Project Management skills Mentorship Aesthetic Java Frameworks Design Clojure Account Management Python
    54. 54. Software Developer
    55. 55. Done?
    56. 56. Collegi al
    57. 57. Collegi al United in a common purpose andrespecting each others abilities to work toward that purpose
    58. 58. Can weall getalong?
    59. 59. Should weintroduce jQuery?
    60. 60. Should weintroduce jQuery?
    61. 61. Should weintroduce jQuery?
    62. 62. Should we introduceDisagree. I Needs Great Idea, I jQuery? Discussion Desire Not in Total Good Idea, I Require Will Be a Have Discussion Agreement, Will Work Changes Leader in Change Have Minor but Will For It Implementat Suggestion Concerns Support ion s
    63. 63. What kind of keyboards should we use?
    64. 64. What kind ofWired are better. I like the numeric keypads. keyboards Wireless, dude, wireless. I need my own rig or a tub of Germ-X.It doesn’t matter to me, but we could each buy our own. should we I just want small profile keyboards. use?Small profile is crap, bro.I don’t really care, but I personally like larger keyboards.
    65. 65. What kind of Wired are better. I like the numeric keypads. keyboards It doesn’t matter tome, but we could each Wireless, dude, wireless. I need my own rig or a tub of Germ-X. should Iwe buy our own.I don’t really care, but I just want small profile keyboards. use? Small profile is crap, bro. personally like larger keyboards.
    66. 66. Tell Sell Consult Agree Advise Inquire Delegate I consider this my I’m not I consider I consider I’d like to responsibility interested in this my this my I’d like us to talk about it, I’d like to .I this, but I’llresponsibility responsibility make this but I’m hear about it, understand to manager, support , and I don’t decision happy to but I’d prefer other folks whatever want anyone but would together. I have someone else might feel decision iselse involved appreciate hope you’d someone else make the invested and made. I’d in this help like that too. make the decision. will be happy rather not be decision deciding. decision. to answer involved. questions. Delegation 8
    67. 67. Delegat Tell Sell Consult Agree Advise Inquire Joker e I consider I’m not I consider this my I consider I’d like to I’d like us I’d like to interested this my responsibili this my talk about I feel you to make hear about in this, butresponsibili ty. I responsibili it, but I’m violated this it, but I’d I’ll support ty, and I understand ty to happy to our decision prefer whatever don’t want other folks manager, have agreement together. I someone decision isanyone else might feel but would hope you’d someone and we else make made. I’dinvolved in invested appreciate else make should talk like that the rather not this and will be help the right away. too. decision. be decision happy to deciding. decision. involved. answer questions. Delegation 8
    68. 68. Delegation 8
    69. 69. Trend % Profit40302010 0-10 Q1 Q2 Q3 Q4 Next
    70. 70. We’re AsDoome Trend a matter of % Profit 40 fact... d 30 20 Yes, but I I’ve seen this before. feel... 10 Let’s try ... 0 This isn’t -10That will never workQ2 Q1 Q3 a problem, it’s an Q4 Next because... AWSOME opportunity!
    71. 71. Neutral, objective, The emotional Careful and only concerned view, cautious, the with facts and just what you feel, “devil’s figures no justification advocate”, points needed out the weakness in ideasSunny and positive, Associated with Cool, the color of covers hope and fertile growth, the sky, above positive thinking creativity and new everything else,Six Thinking ideas the organizing hat
    72. 72. Done?
    73. 73. Never.
    74. 74. Never. “Anyone who stops learning is old,whether at twenty or eighty.”  ~ Henry Ford
    75. 75. “Anyone who stops learning is old, whether at twenty or eighty.”  ~ Henry FordThanksMichael “Doc” Norton ◊ @DocOnDev ◊ doc@leandog.com
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×