0% found this document useful (0 votes)
153 views4 pages

Structure and Interpretation of Computer Programmers - Rebooting The Programmer Competency Matrix

The document discusses rebooting the Programmer Competency Matrix to evaluate programmers' skills beyond just coding abilities. It presents an expanded matrix with levels ranging from "does what you're told" to having a sophisticated worldview integrating technical and social issues. The matrix covers areas like tools usage, testing, documentation, learning, and ethics. The goal is to promote self-reflection on skills beyond just writing code.

Uploaded by

Archie Kins
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
153 views4 pages

Structure and Interpretation of Computer Programmers - Rebooting The Programmer Competency Matrix

The document discusses rebooting the Programmer Competency Matrix to evaluate programmers' skills beyond just coding abilities. It presents an expanded matrix with levels ranging from "does what you're told" to having a sophisticated worldview integrating technical and social issues. The matrix covers areas like tools usage, testing, documentation, learning, and ethics. The goal is to promote self-reflection on skills beyond just writing code.

Uploaded by

Archie Kins
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

6/23/2016

StructureandInterpretationofComputerProgrammers:RebootingtheProgrammerCompetencyMatrix

StructureandInterpretationofComputerProgrammers
{20130403}

RebootingtheProgrammerCompetencyMatrix
Forthelastcoupleofyears,IvepostedaselfreviewbasedontheProgrammerCompetencyMatrix:onmyowncompetencyfrom2011andonmy
newercompetencefrom2012.
Thisyear,becausewritingonAPPropriateBehaviouriscontinuingapace,IdecidedthatIwantedtoextendthematrix.Justasthebookactsasasort
ofcodercompleteforpeoplewhocanprogramtothinkaboutwhatelsegoesintobeingaprogrammer,thiscouldbetheProgrammerCourtesy
Matrixtopromoteevaluationandreflectiononthoseotherthings.
Subject

2n(Level0)

n2(Level1)

n(Level2)
Canevaluateand
comparetoolsand
usealternatives
wheretheywould
help.
Engagedpair
programmerpair
producesbetter
workthaneither
developeralone.

Tools(version
Usesthetoolsat
control,
handtodothe
continuous
requestedtasks.
integrationetc.)

Understandsthe
giventoolsandputs
themtonoveluses.

Pair
programming

Solitaryworker.

Pairprogramswhen
requested.

TDD

Doesntwrite
tests.

Sometimestests,just
aslikelyafterwriting Writescodetest
first.
thecodeasbefore.

log(n)(Level3)

Comments

Maintainsprogrammersupporttools
orautomationwrappersforexisting
tools.

Enthusiasticpairprogrammerseeks
opportunitiestopairwithnewpeople,
tolearnfromandtoteachtheirpair.
Testinfected:discussesallproblems
intermsofhowtowriteatestto
demonstratethem.

Codetested
Automatestestsatuserinterface,
Teststhehappypath comprehensivelyat integrationandunitlevels,relieson
only.
multiplelevelsof
testoutputtodirectfuture
integration.
developmentwork.
Notresponsible
Designstheoverall
Understandsthetradeoffsinvolvedin
forarchitecture, Designsseparate
projecttosupport
supportingconflictingrequirements,
orapproaches
componentstobea thenecessary
andcanpresentcustomerswith
differentfeatures conceptualfitfor featuresandnon

Higherlevel
Doesnttest
softwaretesting software.

Software
architecture

http://www.sicpers.info/2013/04/rebootingtheprogrammercompetencymatrix/

1/4

6/23/2016

StructureandInterpretationofComputerProgrammers:RebootingtheProgrammerCompetencyMatrix

onanadhoc
basis.

theoverallproject.

functional
requirements.

realisticalternativeoptionswhen
facedwithsuchconflicts.

Commentsexplain
whythecodedoes
whatitdoescode
explainswhatit
does.

Usesdiagrams,longform
documentation(e.g.projectwiki)
whereappropriatetoguideother
developersaroundthecodebase.

Learnsaboutthe
thingsneededto
solvethecurrent
problem.

Abletosynthesise
ideasfromacross
computerscience
andrelated
disciplines.

Apolymathabletouseideasfrom
otherdisciplinesandcraftsandapply
themtoprogramming.

Presentsinformationatlevels
appropriatefordifferentaudiences:
blogreaders,conferencesessions,
books,developermeetupsetc.

Canusemultipleargumentsto
synthesiseareasonedproposaltaking
theconflictsandtradeoffsinthe
differentapproachesintoaccount.

Writesmechanistic
Doesntwriteany documentationas
Documentation documentation.
requiredbylocal
guidelines.

Learning

Notlearning.

Sharing
knowledge

Doesntshare.

Discussesproblems
solvedoncurrent
projectswith
colleagues.

Canextract
solutionsasseparate
chunksof
knowledgeand
sharethemwith
peers,oronblog
posts.

Critical
Analysis

Questionsvendor
Acceptsvendor
recommendations,
recommendations. looksforalternative
views.

Balancesarguments
frommultiple
sources,considers
assumptionsbehind
eachargument.

Choiceof
technology

Communication

Useswhatever
theyretoldto.

Stickswithwhatthey Considersafew
know.
options.

Synthesisespersonalexperienceand
thatofotherstochoosethe
technologythatbestsolvesthe
requirementsoftheproblembeing
considered.

Doesnttalkto
anyone.

Canengagein
discussions
Talkstootherpeople
involvingmembers
aboutcomputing
oftheteambeyond
things.
theprogrammer
group.

Canexpressideasatlevelsandwith
sensitivitiesappropriatetovarious
audiences:teammembers,
competitors,customers,school
childrenetc.

Whiletoomuch
documentationcanindeed
beabadthing,peopletend
toglossoverthefactthat
toolittleisalsoabadthing.

Ivewrittenbeforeontech
conferencesandsharing
information.Itdbegreatto
movefromasmall
collectionoffrequent
speakerstoalargepick
andmixcuratedbythe
conferenceorganisers.

Understandsand
http://www.sicpers.info/2013/04/rebootingtheprogrammercompetencymatrix/

2/4

6/23/2016

StructureandInterpretationofComputerProgrammers:RebootingtheProgrammerCompetencyMatrix

Requirements
Analysis

Buildswhat
peopleaskfor.

Teamwork

Worksaloneon
tasksassignedby
otherteam
members(or
entirelyalone).

discussesconflicts
betweenstated
requirementsand
problemsin
implementingthem
discoversand
incorporatestacit
requirements.

Understandsthe
domaindiscusses
thesoftwareata
peerlevelwith
domainexpertscan
suggestnovel
applicationstosolve
domainproblems.

Doeswhatisasked
byotherteam
membersprovides
feedbackwhen
asked.

Showssome
understandingofthe
teamsgoalspicks
taskstocomplement
thosegoals.

Playsanactiveroleinshapingthe
teamanditsdirectionunderstands
howtobestinvolveeveryoneelseon
theteam.

Isabletoselfassign
workinrelationto
thebusinessgoals
discusses/questions
othertasksin
relationtothose
goals.

Canprovideguidanceonbusiness
directionbasedonknowledgeofthe
marketandcapabilities,orrunsthe
business/businessunit.

Hassomeideaof
Worksonthe
whatthebusiness
Businesssense tasksrequestedby strategyisandwhere
thebusiness.
thetasksassignedfit
intoit.

Professional
ethics

Doeswhatever
theyretold.

Doestoanotheras
theywouldbedone
Doestoanotheras
toweretheyinthe
theywouldbedone othersposition
to(theGoldenRule). (BarryBoehms
ModifiedGolden
Rule).

Understandsthewholesocio
technicalsystemcanidentify
politicaloreconomicproblems
arisingfromsuggestedchangestothe
softwareandproposesolutions(inthe
softwaredomainorotherwise).

Hasamorecomplicatedethical
system,includingcontributingto
society,nondiscrimination,respect
forothersandtheirproperty,and
discoveryandpromulgationofbetter
waystoperformtheircraft.
Everythingintheirworkcanbe
relatedbacktothatsystem.

Thelevel3categoryhere
isbasedlooselyonthe
ACMcodeofethicsbut
alsoreadslikeasummary
oftherestofthetable.

ThisisntnecessarilyacompletereflectiononthethingsinAPPropriateBehaviourbecausethatisstillaworkinprogress,butitsagood
introductiontothesortsofthingsthebooktalksabout,andagoodevaluationofyourownworkinrelationtothenonprogrammingthingsIthink
programmersdo.
Aninterestingpatterntoobserveisthattheleftcolumnofthetableisbasicallydoeswhatyoutellthemtoandtherightcolumnishasacomplex
worldviewencapsulatingbothtechnologicalandsocialissuesthoughthetermsusedontherightaremorespecifictothefactorbeingdiscussed.
ThispatternisanalogoustotheDreyfusmodelofskillacquisition,inwhichpeoplegofromrotelearningofcontextfreerules(i.e.doingwhattheyre
toldtodo)tohavinganintuitivemodelofhowthethingworks(i.e.makingitpartoftheirworldview).

http://www.sicpers.info/2013/04/rebootingtheprogrammercompetencymatrix/

3/4

6/23/2016

StructureandInterpretationofComputerProgrammers:RebootingtheProgrammerCompetencyMatrix

PostedbyGrahamonWednesday,April3,2013,at12:00pm.Filedunderadvancement
oftheself.FollowanyresponsestothispostwithitscommentsRSSfeed.Commentsare
closed,butyoucantrackbackfromyourblog.

{2}Trackbacks
1.Keepingtrackofyourcompetencyasaprogrammer|June20,2013at5:55am|Permalink
[]ProgrammerCompetencyMatrixrebooted,whichisthesamethingbutextended.[]
2.ThejudiciousselectionofwhattolearnnextBigNerdRanchBlog|December6,2013at11:27pm|Permalink
[]IregularlycheckmyprogrammingabilityagainsttheProgrammerCompetencyMatrix(andevencreatedmyownversiontoaddress
thingsthatweremissingfromtheoriginal).Therulesforthesechartsaresimple.For[]

http://www.sicpers.info/2013/04/rebootingtheprogrammercompetencymatrix/

4/4

You might also like