Making Sense of Software Development and Personality Types · hard skills) to personality...

9
Western University Scholarship@Western Electrical and Computer Engineering Publications Electrical and Computer Engineering Department 1-31-2010 Making Sense of Soſtware Development and Personality Types Luiz Fernando Capretz University of Western Ontario, [email protected] Faheem Ahmed Dr. ompson River University, [email protected] Follow this and additional works at: hps://ir.lib.uwo.ca/electricalpub Part of the Computer Engineering Commons , Electrical and Computer Engineering Commons , Other Engineering Commons , and the Soſtware Engineering Commons Citation of this paper: Capretz, Luiz Fernando and Ahmed, Faheem Dr., "Making Sense of Soſtware Development and Personality Types" (2010). Electrical and Computer Engineering Publications. 2. hps://ir.lib.uwo.ca/electricalpub/2

Transcript of Making Sense of Software Development and Personality Types · hard skills) to personality...

Page 1: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

Western UniversityScholarship@Western

Electrical and Computer Engineering Publications Electrical and Computer Engineering Department

1-31-2010

Making Sense of Software Development andPersonality TypesLuiz Fernando CapretzUniversity of Western Ontario, [email protected]

Faheem Ahmed Dr.Thompson River University, [email protected]

Follow this and additional works at: https://ir.lib.uwo.ca/electricalpub

Part of the Computer Engineering Commons, Electrical and Computer Engineering Commons,Other Engineering Commons, and the Software Engineering Commons

Citation of this paper:Capretz, Luiz Fernando and Ahmed, Faheem Dr., "Making Sense of Software Development and Personality Types" (2010). Electricaland Computer Engineering Publications. 2.https://ir.lib.uwo.ca/electricalpub/2

Page 2: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

6 IT Pro January/February 2010 P u b l i s h e d b y t h e I E E E C o m p u t e r S o c i e t y 1520-9202/10/$26.00 © 2010 IEEE

IT WORKFORCE

Luiz Fernando Capretz, University of Western Ontario

Faheem Ahmed, United Arab Emirates University

By mapping soft skills and psychological traits to the main stages of the software life cycle, the authors claim that assigning people with personality types best suited to a particular stage increases the chances of the project’s successful outcome.

S oftware is a product of such humanactivitiesasproblemsolving,cognitiveinformationprocessing,andsocial in-teraction. However, people are more

complicatedandlesspredictablethancomputers,thusthecomplexityofpersonalityentailsintricatedynamicsthatultimatelybecomeanintegral,yetoftenoverlooked,partof softwaredevelopment.Soonerorlater,majorissuesrelevanttosoftwareengineeringboildowntothepeopleinvolvedwithsoftwareproductionandtheirpersonalitytraits.

Overthepastthreedecades,softwareengineer-inghasbecomeaverybroad field;consequently,theskillsnecessarytosuccessfullyworkinthisarea30yearsagomightnolongerapply.Forinstance,softwaredesignhasbecomemuchmorethanma-nipulating formal or rigorous notations—it nowrevolves around the interaction between design-ersandusers(primarily,thedesigner’sperceptionofwhattheuserwants,andtheuser’sperceptionofwhatheorshereallyneeds).Today,successfulsoftwareisdevelopedafteratremendousamountoftimeisspentwiththeuserintheformofpro-totyping, experimentation, and feedback. In fact,these three processes represent the de facto lifecycleofmanyusefulsoftwaresystems.

Researchrelatingpersonalitystylestosoftwareengineeringhasbeenscatteredanddifficulttoin-

terpretuniformly.Thispaucitycouldindicatethattherelationshipbetweensoftwareengineeringandpersonalitystylesistoocomplextoinvestigate.Forinstance,certainpersonality traitssuchas intro-version/extroversionmighthaveasignificant im-pactonsystemanalysis,buttheymightnotaffecttheother software life cyclephases.Thus, stud-iestodeterminewhichpersonalitytypesaremoresuitableforcertainsoftwaredevelopmentactivitiesareofparamountimportance.

Amajorrationalebehindthisarticleistodiscernconnectionsbetweenpersonalitytraitsandthepro-cessof softwaredevelopment.This interdisciplin-aryhuman-centeredresearchincorporatestheoriesaboutpsychologicaltypes,humanfactors,andsoft-wareengineering.Itcontributestowardabridgethatlinkssoftwareengineeringandsoftwarepsycholo-gy,anditattemptstoshedlightonseveraloutstand-ingproblemsthatplaguethesoftwareindustry.

Myers-Briggs Type IndicatorThe Myers-Briggs Type Indicator (MBTI) is awell-knowninstrumentformeasuringandunder-standingindividualpersonalitytypes.1Itcurrent-lyranksamongthemostpopularindicatorsusedin the workplace, establishing four dimensionalpairsforassessingpersonalitytypes:extroversion(E)andintroversion(I),sensing(S)andintuition

Luiz Fernando Capretz, University of Western Ontario

Making Sense of Software Development and Personality Types

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 3: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

computer.org/ITPro 7

(N),thinking(T)andfeeling(F),andjudging(J)andperceiving(P).Wecanusethesefoursetsofpreferences,selectingonetraitfromeachpair,todelineateaperson’spreferredtype.Table1showsthe 16 possible configurations, along with per-centagesof thevarioustypes inarepresentativesampleoftheUSadultpopulation.1

Extroversion (E) and Introversion (I)WhileEsprefer lookingoutward, Ishave an in-wardview.Esaretalkative,outgoing,conversationinitiators. Is, incontrast,arequiet,reserved,andtendtorespondtoconversationratherthanstartit.

Sensing (S) and Intuition (N)AlthoughanS individualmightneed toabsorbawholeseriesoffactsinalinearfashion,anNpersoncantakeinthesameinformationthroughabstrac-tionandestablishmeaningbeyondtheinformationcapturedonlyby the senses.S individualsdislikenewproblemsunlesspriorexperienceshowshowtosolvethem;conversely,Npeopleenjoysolvingnewproblemsanddislikeperformingtrivialtasks.

Thinking (T) and Feeling (F)Theterms thinkingand feeling inthiscontextre-fertotheprocessofdecision-making.TheMTBIscale identifies thinking as the logical way ofmakingadecision,whereasfeelingdescribesthetendencytorelyonemotionalvaluesasabasisformakingdecisions.Tpeopleareprinciple-orient-edandfirm,whereasFpeoplearesubjectiveandhavestronginterpersonalskills.

Judging (J) and Perceiving (P)Judgingidentifiesthetendencytobeextremelyor-ganized.Attheotherextreme,aPindividualprefersdelaying,appearstobedisorganized,andseemstobe distracted from completing a task until somelittlebell goesoff at the lastminuteandpropelsthisindividualtogetthejobdone.Theadherencetodeadlines,punctuality,andclosuredescribesJpersonalities,whilethetermsopen-ended,adapt-ableandspontaneousapplytoPtypes.

Previous StudiesTo date, only a handful of studies have inves-tigated the relationship between human skillsand software development life cycle phases2,3

or attempted to identify the characteristics oftop-performing software developers.4,5 In fact,Norman Kerth and his colleagues6 are skepti-calabouttheMBTI’sabilitytopredictwhowillmakeagoodsoftwareengineerbecausethemet-

ricdoesn’tconsidervariablessuchaspassion,ex-perience,orfinancialrewards.Althoughthey’recorrectaboutasinglepersonalitytest’sinabilitytopredictsuccessinafieldasbroadassoftwareengineering, they contradict themselves whenthey state, “We see zero indication that MBTIpreferencecorrelateswithjobsuccess,”butlateraffirm, “systematically excluding certain typesfromateamproducesanimbalancethatislikelytohaveapoorperformance.”6

Thisdebateisfarfromover.Althoughresearch-ers have questioned MBTI measures in othercontexts,7thetoolisstilloneofthemostpopu-lar for ascertaining personality types, especiallybecauseextensivedatasupportsitsfindings.Theinstrumentitselfdoesn’tpredictcareersuccess—it merely identifies occupational preferences—butpersonalityhasagreatimpactonaworker’smotivation, performance, and retention in thefield.8–11Acommonthreadrunningthroughtheresultsof these andother similar studies isnotonlytheprevalenceofI,T,andJtypes,asopposedtofewerE,F,andPtypes,butalsoalmostasmanySasNtypesamongsoftwareprofessionals.

Although empirical studies suggest that theMBTI poles are related to software engineering,theydon’tspecifyatwhichphaseofthesoftwarelifecycletheyoccurorhowthey’rerelated.Despiteearlyinterestsintheimportanceofhumanfactorsin software development—in particular, the per-sonalcharacteristicsofhumans involved insoft-ware engineering processes—such factors havebeenneglected, thushinderingprocess improve-ments.Amorefocusedapproachmighthelpiden-tifyatwhichsoftwarelifecyclephaseaparticularpersonalitytypehasthemostsignificantimpact.

Mapping Job Requirements and Soft Skills to Personality TypesSoftware engineering is roughly characterizedasasetofactivitiescomprisingsystemanalysis,de-sign, programming, testing, and maintenance.Logically,thesedifferenttaskscombinetoachieve

Table 1. The 16 Myers-Briggs Type Indicator (MBTI) types and their distribution among the US adult population.*

ISTJ = 11.6% ISFJ = 13.8% INFJ = 1.5% INTJ = 2.1%

ISTP = 5.4% ISFP = 8.8% INFP = 4.4% INTP = 3.3%

ESTP = 4.3% ESFP = 8.5% ENFP = 8.1% ENTP = 3.2%

ESTJ = 8.7% ESFJ = 12.3% ENFJ = 2.5% ENTJ = 1.8%

* E = extroversion, I = introversion, S = sensing, N = intuition, T = thinking, F = feeling, J = judging, and P = perceiving

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 4: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

8 IT Pro January/February 2010

IT WORKFORCE

Extroversion (E)

Personality types

Introversion (I)

Sensing (S)

Intuition (N)

Thinking (T)

Feeling (F)

Judging (J)

Perceiving (P)

Communication skills

Interpersonal skills

Ability to work independently

Active listener

Strong analytical andproblem-solving skills

Open and adaptableto changes

Innovative

Organization skills

Pay thorough and acuteattention to details

Fast learner

Team player

Soft skills requirementsSystem analyst job requirements

Liasing extensively with external or internal clients

Analyzing clients’ existing systems

Translating client requirements into highly specifiedproject briefs

Identifying options for potential solutions, assessing themfor both technical and business suitability

Creating logical and innovative solutions to complexproblems

Drawing up specific proposals for modified or replacementsystems

Producing project feasibility reports

Working closely with developers and a variety of end usersto ensure technical compatability and user satisfaction

Overseeing the implementation of a new system

Planning ahead and working flexibly to a deadline

Keeping up to date with technical and industry sectordevelopment

Figure 1. Mapping system analysts and their skills to personality types. When appointing a system analyst, it’s preferable to look for people possessing extrovert (E) and feeling (F) traits.

the objectives of software construction and op-eration. The micro-level interpretation demandsasetofabilitiestocarrythemouteffectively—forexample, the skills required todesigna softwaresystemarequitedifferentfromthoseneededtotestit.Thehypothesisthatnoteveryonecanperformalltaskseffectivelysuggeststhatpersonalitytraitsplayacriticalrole;thus,ifwecanmapjobandskillrequirementswithpersonalitycharacteristics,wecouldestablishalinkbetweensoftwarelifecyclephasesandcorrespondingpersonalitytypes.

After analyzing job descriptions for softwareengineersrunninginnewspapersandmagazines,postedonmonster.com,anddescribedinvarioustexts,12wedeterminedthepreferableskillsandre-lated them to skills requirements. Subsequently,wemappedtheskillsratedasdesirableandhighlydesirable for effectively performing the tasks ineach phase to MBTI dimensions. Job advertise-mentsgenerallydividesoftwareengineeringskillrequirements into two categories: hard and softskills.Hardskillsare the technical requirementsandknowledgeapersonshouldpossesstoperforma task; they include the theoretical foundationsandpracticalexperienceapersonshouldhavetocomfortablyexecutetheplannedtask.

Although soft skills incorporate the psycho-logicalphenomenathatincludepersonalitytraits,social interaction abilities, communication, and

personal habits, potential employers tend to im-plythatsoftskillsshouldcomplementhardskills.Consequently, we related job requirements (orhard skills) to personality requirements (or softskills)fordifferentpositionsthatreflectthevarioussoftwarelifecyclephases,suchassystemanalysts,designers,programmers,testers,andmaintainers.Moreover,wealsomappedthedifferentsoftskillsto an individual’s personality characteristics byratingthemashighlydesirableordesirable.

System AnalysisThe system analysis phase emphasizes theidentification of high-level components in areal-worldapplicationandinvolvesthesoftwaresystem’s decomposition into its main modules.Inadditiontootherminorskills,thisphasere-quires that the system analyst determine userneeds,considerthesystem’sclientrequirements,understand the system’sessential features, andcreateanabstractapplicationmodelthatmeetstheserequirements.

System analysis demands a great deal of hu-maninteractionwithusersandclients.Tocom-municatewithusers,EsarebetterattalkingandgettingresponsesthanIsbecausethelatterhaveadifficulttimeworkingwithuserstoaccuratelyrepresentaproblemduetotheirinternalorienta-tion. Thus, it seems reasonable to assume that

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 5: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

computer.org/ITPro 9

extroversion would affect this phase positively.Additionally,systemanalystsmustbeabletoem-pathizewithusers’problemstofullyunderstandtheirneeds,henceinterpersonalskillsarehighlydesirable.Recognizingthisfactcanofferacriti-calinsighttosoftwareprofessionals,whoareof-tenviewedasbeingdisconnectedfromusers.

In general, software engineers tend to assumethatbecausetheypossessmoretechnicalexpertisethanmostusers,theirsolutionsaremoreappro-priate,butusersdon’talwaysagreewith thisas-sessment.EsandFsinteractwithusersbetterthanIsandTs;inparticular,Fsexcelatmakingpeoplefeelcomfortable,whereasTsaren’tattunedtouserfeelings.Therefore,whenappointingsystemana-lysts,it’spreferabletolookforEFs(seeFigure1).

Software Design“Design” is an ambiguous word: although thereare great variations among design principles, it’spossibletofindacommonsetoffeaturesthatap-ply to any artifact’sdesign,whether it’s aposter,ahouseholdappliance,orahousingdevelopment.Althoughsoftwaredesign is still a relativelynewfield and far from a consensus on its relevantprinciples, it requires the human creativity evi-dent in other disciplines such as architecture,marketing, and graphic design, rather than the

hard-edged formulaic construction of otherengineering fields. Software design is an explor-atory process: the designer searches for compo-nentsbytryingoutavarietyofschemestodiscoverthemostnatural and reasonablewayof refiningasolution.Althoughsoftwaredesignmightseemlikeaneasytask,inthedesignoflargeandcom-plexsoftware,theidentificationofkeycomponentsisanarduousandtime-consumingendeavor.Rep-etitionsaren’tunusual,sinceagooddesignusuallytakesseveraliterations.Furthermore,thenumberofiterationsalsodependsonthedesigner’sinsightandexperienceintheapplicationdomain.

Softwaredesignersshouldhave theability toseethebigpicture.Theyshouldbeabletoisolaterelevantitemsfromlargequantitiesoffuzzyandimprecise data, which requires the intuition todiscernpatterns.Naturally,designersshouldbeintuitive, as thosewhoare imaginative and in-novative thriveatdesigning,especially incom-parisontotheirfact-oriented,black-and-whiteScounterparts.Softwaredesignersperformawiderangeoftasks,whichincludeprototyping,elabo-ratingprocessingfunctions,anddefininginputsandoutputs.The first part of thedesign stagemightrequireskillssimilartothoseneededforanalysis,asdesigninginvolvesteamdiscussionsandinteractionwiththeuser.AsFigure2shows,

Extroversion (E)

Personality types

Introversion (I)

Sensing (S)

Intuition (N)

Thinking (T)

Feeling (F)

Judging (J)

Perceiving (P)

Communication skills

Interpersonal skills

Ability to work independently

Active listener

Strong analytical andproblem-solving skills

Open and adaptableto changes

Innovative

Organization skills

Pay thorough and acuteattention to details

Fast learner

Team player

Soft skills requirementsSoftware designer job requirements

Having the ability to craft scenarios, storyboards,information architecture, features, and interfaces

Collaborating closely with management, engineers, and fellow designers to evaluate and iterate on ideas and designs

Prototyping user experience and design ideas

Keeping up to date with technical and industry sectordevelopments

Understanding business opportunities and assisting projectteam with respect to architecture of the technical solution

Creating an architectural design with the necessaryspecifications for the hardware, software, and data

Working closely with system users to ensure thatimplementation meets customer requirements and isaligned to the system’s technical architecture

Developing, documenting, and revising system designprocedures

Participating in testing and evaluating systemfunctionality to ensure successful integration

Determining hardware, software, and networkrequirements of the software system

Assisting with system analyses; cost and bidding activities

Figure 2. Mapping software designers and their skills to personality types. A combination of intuition (N) and thinking (T) are paramount to thrive in design.

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 6: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

10 IT Pro January/February 2010

IT WORKFORCE

NandTtypesarehighlydesirableforsoftwaredesigners, whereas perceiving and feeling areonly somewhat desirable. Ps would help reachthe best, rather than the first, design solution.Also important is the capacity to predict howuserswillfeelaboutthedesign.

ProgrammingProgramming involves translating a refinedversionofthedesignintoprograms.Thisphaseentails the identificationofcontrolstructures,relevantvariables, anddata structures,aswellasadetailedunderstandingofaprogramminglanguage’s syntax and specifics. Programmersmust follow an iterative stepwise refinementprocess that’s mostly top-down, breadth first.Thus, programmers should attend to detailsandkeepalogicalandanalyticalthinkingstyle.

The thinking dimension of the MBTI de-scribesthewayinwhichsomeonemakeslogicaldecisions.Theproblemofinterpretingandgiv-ingmeaning to variablesmightbe aheadache,especially for F types rather than for detachedanalytical,Ttypes,suggestingthattheprogram-ming stage is more suitable for Ts. Moreover,programmingtaskssuchasdeterminingthede-tailsofmodulelogic,establishingfilelayout,andcoding programs demand little interpersonalcontactandrevealtheprogrammer’sworklifeasessentiallyasolitaryone.

Programmingisanactivitythatdemandslogi-cal,impersonalanalysis.AsFigure3shows,pro-grammersworkingwiththespecificationsfromdesignersneedtobelogical(Ts),payattentiontodetails(Ss),andhavethecapacitytoworkinde-pendently (Is).Theymightsometimesprograminpairsorevenwithina team,but thecoreofprogrammingrequirestheabilitytoconcentrateand work alone for many hours. Given thesecharacteristics, it isn’t surprising that so manysoftwareengineersareISTs.

TestingTestinginvolvesfindingdefectsinsoftware.Thetestingstageisn’tthefirsttimethatdefectsarefound—theycanemergeinsystemanalysisanddesign phases—but testing’s main focus is tofind as many defects as possible. Several tech-niques can make testing more effective. First,eachmoduleisisolatedfromothercomponentsinthesystemandtestedindividually.Suchtest-ing,knownasunittesting,verifiesthatamodulefunctions properly with the various input ex-pected(andunexpected!)basedonthemodule’sspecification. After collections of modules areunit-tested, the next step is to ensure that theinterfacesamongthemarewell-defined—thisiscalledintegrationtesting.Finally,systemtestingistheprocessofverifyingandvalidatingwhetherthewholesoftwareworksproperly.

Extroversion (E)

Personality types

Introversion (I)

Sensing (S)

Intuition (N)

Thinking (T)

Feeling (F)

Judging (J)

Perceiving (P)

Communication skills

Interpersonal skills

Ability to work independently

Active listener

Strong analytical andproblem-solving skills

Open and adaptableto changes

Innovative

Organization skills

Pay thorough and acuteattention to details

Fast learner

Team player

Soft skills requirementsSoftware programmer job requirements

Participates in development efforts; elaborates and documents all business-related applications

Analyzes business requirements for system subcomponents and prepares detailed programming specifications for assigned system applications

Formulates test cases to test application software in development, to ensure a program’s functionality matches its specification’s business requirements and to ensure the company’s programming standards are followed

Analyzes technical specifications; builds and implements functionally accurate and modular application programs according to approved design specifications

Coordinates programming tasks, team members, and projects within the department

Determines forms, procedures, and other documentation needed for installation and maintenance of application programs

Translates detailed flow charts into coded machine instructions and confers with technical personnel in planning programs

Selects and incorporates available software programs

Figure 3. Mapping programmers and their skills to personality types. Most programmers are introvert (I), sensing (S), thinking (T) types.

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 7: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

computer.org/ITPro 11

Testingstrategiesareneitherrandomnorhap-hazard;rather,theyshouldbeapproachediname-thodicalandsystematicmanner.Afteradefectisdetected,debuggingcanbeafrustratingandemo-tionallychallengingactivitythatcanleadsoftwareengineerstorestructuretheir thinkinganddeci-sions.Testingrequiresattentiontodetailsandisoftenperformedbyindividualsworkingindepen-dently,andthepressuretomeetdeadlinesandde-livertheproductisenormous.Thus,precision(S)andorder(J)arehighlydesirabletraits.Thepro-cessoftestingdemandsagreatamountofpersis-tence,especiallythetaskofchoosingfromawiderangeofpossibilitiesandkeepinganincrediblede-greeofattentiontodetail.Intheory,SandJpeoplewouldbemoresuccessfulinthetestingphase,asillustratedinFigure4.

MaintenanceSoftwareisnormallysubjecttocontinualchangeafterit’swrittenandwhileit’soperational,thusindicating the necessity of maintaining anevolving system. Projects involving researchandstate-of-the-artdevelopmenttendtoattractmoreNpeople,whereasthosehavingtaskscon-cerned with maintaining and enhancing soft-waresystemstendtoattractmoreStypes,whotendtobepractical,realistic,andobservant.

Ingeneral,anSpersonpreferstoperformatask inaparticularwaybecause ithasproventobesuccessfulinthepast.Conversely,theNpersonprefers toperformthe task ina totallydifferentwaybecauseithasneverbeendoneinthatmannerbefore.Thus,Ns are likely tobeboredwiththeincremental improvementsandsmall fixes that software maintenance entailsbecausetheyputmoreemphasisonnewproj-ects.Speoplepreferjobsthatrequiretheuseofwell-learnedknowledge,ratherthanthedevel-opmentofnewsolutions;they’realsoverygoodobservers and tend to focusondetails.Main-tenance compels a thorough understandingof the software system, especially in terms ofhowonepartcanaffecttheother,thusSpeoplewouldexcelatmaintenancebecausetheyliketofigureouthowthingswork.

Psliketoexploreeverypossibility,and,conse-quently,theyhavedifficultymakingdecisions,whereas Js seek closure. Ps should thereforealso enjoy maintenance because they’re moreopen to changes and adaptations, and they’remore sympathetic to theconstant changes re-quested by users. SPs’ problem-solving abilityandhands-onapproachareanassetformainte-nancebecausesuchpeopleliketosolvepracti-calproblemsandenjoythechallengeof fixing

Extroversion (E)

Personality types

Introversion (I)

Sensing (S)

Intuition (N)

Thinking (T)

Feeling (F)

Judging (J)

Perceiving (P)

Communication skills

Interpersonal skills

Ability to work independently

Active listener

Strong analytical andproblem-solving skills

Open and adaptableto changes

Innovative

Organization skills

Pay thorough and acuteattention to details

Fast learner

Team player

Soft skills requirementsSoftware tester job requirements

Coordinates necessary testing resources to ensurecompletion by deadlines

Gathers test requirements and produces testspecifications

Performs manual execution of tests, records results, andinvestigates and logs results

Manages and supports the team in creating usable testassets for both manual and automated test scripts

Demonstrates ability to define and implement medium-to-large-scale test plans and strategies according to qualityobjectives, project timelines, and resources

Manages defects, including the identification, logging,tracking, triaging, and verification of issues

Identifies and mitigates business and technical risks in thedevelopement and execution of the test strategy

Analyzes and evaluates, documents, and communicates testing progress for stakeholders

Ensures test progress, methodologies, and tools are appliedappropriately and that test phase entry/exit criteria areagreed to by stakeholders and applied by the test team

Maintains relevant test results databases

Communicates and negotiates testing timelines, budget,staffing, scope, and critical milestones with projectmanagers

Figure 4. Mapping testers and their skills to personality types. In theory, sensing (S) and judging (J) people would be more successful in the testing phase.

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 8: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

12 IT Pro January/February 2010

IT WORKFORCE

programsandsystems.Figure5displaystheserelationships,highlightingthequalitiesofsoft-waremaintainers.

Software Life Cycle plus Personality TypesTable 2 shows the five main stages of a soft-warelifecyclemodelandproposesaframeworkto conceptualize thepoints atwhich aparticu-larpersonalitytypecouldhavemoreeffect.Weassume that system analysis, design, program-ming, testing, and maintenance are the stagesoccurringmostoften inwell-accepted softwarelifecyclemodels,despitesomemodelsnotcon-sideringa fewof these stagesor includingoth-ers. Regardless of the model used, a particularpersonalitydimensioninfluenceseachofthefivestages to some extent. The theory behind per-sonality types implies that eachone is likely toaffectsomephasesofthesoftwarelifecyclemorethanothers.Table2showsthepersonalitytypesthatappearmostrelevanttoeachstage;we’veal-readyexplainedtherationaleforeachselection.

It’stimetorecognizethatnosinglepersonalitytypefitsthewidespectrumoftasksthatencom-passtheengineeringofsoftware.Thesoftware

industry can’t afford to lose professionals whomightcomefromadiversegroupofpeople.

A broad range of personality types is benefi-cialtosoftwareengineering.13Mostsoftwareor-ganizationsdon’thave soloperformersbecausebetter software results from the combined ef-fortsofavarietyofmentalprocesses,outlooks,andvalues.Itmightbeadvantageousforsoftwareorganizations to consider employee strengthswhen assigning project tasks. More than ever,software engineering needs a diversity of per-sonalitytypes.Puttingitinasoftwarecontext,adiversityofskillsandpersonalitytraitscansolvethe myriad problems associated with softwaredevelopment and maintenance. Organizationswouldbenefitfromaconsciousattempttodiver-sify the stylesorpersonalitiesof their softwareengineersbecausethestrongest teamshavethemostdiverseperspectives.Exposuretosoftwarepsychologycanhelpthisdiversityflourish.

References 1. I.B.Myersetal.,MBTI Manual: A Guide to the Develop-

ment and Use of the Myers-Briggs Type Indicator,Consult-ingPsychologistsPress,1998.

2. S.T.Acuna,N.Juristo,andA.M.Moreno,“Empha-sizing Human Capabilities in Software Develop-ment,”IEEE Software,vol.23,no.2,2006,pp.94–101.

3. R.Feldtetal.,“TowardsIndividualizedSoftwareEn-gineering:EmpiricalStudiesShouldCollectPsycho-

Extroversion (E)

Personality types

Introversion (I)

Sensing (S)

Intuition (N)

Thinking (T)

Feeling (F)

Judging (J)

Perceiving (P)

Communication skills

Interpersonal skills

Ability to work independently

Active listener

Strong analytical andproblem-solving skills

Open and adaptableto changes

Innovative

Organization skills

Pay thorough and acuteattention to details

Fast learner

Team player

Soft skills requirementsMaintenance engineer job requirements

Provide, maintain, or update systems documentation to reflect new applications or enhancements to existing applications

Provide skills transfer or assistance to junior development team members to improve product quality and performance and to ensure standards are implemented

Regularly coordinate or take part in discussions with users and system analysts in developing and maintaining applications or enhancements to meet business needs

Contribute to process-improvement initiatives, especially with regard to programming and IT

Manage and support the maintenance of systems developed in-house as directed by the system analyst or the manager, including trouble-shooting, reporting problems, and recommending, designing, and implementing sound solutions

Comply with mandated policies and procedures and contribute to procedural improvements

Coordinate system integration testing and participate in user acceptance testing

Be willing to learn new technologies and keep on top of emerging trends in application development; have an open mind to consider different approaches to solving technical problems

Figure 5. Mapping maintainers and skills to personality types. Sensing (S) and perceiving (P) types are best suited to the detail-oriented tasks and constant changes inherent to software maintenance.

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.

Page 9: Making Sense of Software Development and Personality Types · hard skills) to personality requirements (or soft skills) for different positions that reflect the various software life

computer.org/ITPro 13

metrics,”Proc. Workshop Cooperative and Human Aspect of Software Eng.(CHASE),ACMPress,2008,pp.49–52.

4. D.B.WalzandJ.L.Wynekoop,“IdentifyingandCul-tivatingExceptionalSoftwareDevelopers,”J. Comput-er Information Systems,vol.37,no.4,1997,pp.82–87.

5. E.A.TurleyandJ.M.Bieman“CompetenciesofEx-ceptionalandNon-ExceptionalSoftwareEngineers,”J. Systems and Software,vol.28,no.1,1995,pp.19–38.

6. N.L.Kerth,J.Coplien,andJ.Weinberg,“CallfortheRationalUseofPersonalityIndicators,”Computer,vol.31,no.1,1998,pp.146–147.

7. D.J.Pittenger,“TheUtilityoftheMyers-BriggsTypeIndicator,” Rev. Educational Research, vol. 63, no. 4,1993,pp.467–488.

8. E.Kaluzniacky,Managing Psychological Factors in Infor-mation Systems Work,InformationSciencePublishing,2004.

9. L.T.Hardiman,“PersonalityTypesandSoftwareEn-gineers,”Computer,vol.30,no.10,1997,p.10.

10. L.F. Capretz, “Personality Types in Software Engi-neering,”Int’l J. Human-Computer Studies,vol.58,no.2,2003,pp.207–214.

11. G.J. Teague, “Personality Type, Career PreferenceandImplicationsforComputerScienceRecruitmentandTeaching,”Proc. 3rd Australian Conf. Computer Sci-ence Education,ACMPress,1998,pp.155–163.

12. J.Dolney,“DesigningJobDescriptionsforSoftwareDevelopment,”C.Barry,ed., Information Systems De-velopment Challenges in Practice, Theory and Education,Springer,2009,pp.447–460.

13. L.F.Capretz,“ImplicationsofMBTIinSoftwareEn-gineeringEducation,”ACM SIGCSE Bull.,vol.34,no.4,2002,pp.134–137.

Luiz Fernando Capretz is an associate professor and the director of the software engineering program at the Uni-versity of Western Ontario, Canada. His research interests include software engineering, human factors in software engineering, software estimation, software product lines,

and software engineering education. Capretz has a PhD in computing science from the University of Newcastle upon Tyne. He is a senior member of the IEEE, a distinguished member of the ACM, an MBTI certified practitioner, and a Professional Engineer in Ontario (Canada). Contact him at [email protected].

Faheem Ahmed is an assistant professor at the College of Information Technology, United Arab Emirates Uni-versity. His research interests are software product lines, software process modeling, software process assessment, and empirical software engineering. Ahmed has a PhD in electrical engineering from the University of Western Ontario. He is a member of the IEEE. Contact him at [email protected].

SelectedCSarticlesandcolumnsareavailable forfreeathttp://ComputingNow.computer.org.

Table 2. The personality types with the strongest impact on the software life cycle.

Software life cycle stages

Personality types System analysis Software design Programming Testing Maintenance

Extroversion (E) √

Introversion (I) √

Sensing (S) √ √ √

Intuition (N) √

Thinking (T) √ √

Feeling (F) √

Judging (J) √

Perceiving (P) √

Authorized licensed use limited to: UNIVERSITY OF WESTERN ONTARIO. Downloaded on February 15,2010 at 15:46:04 EST from IEEE Xplore. Restrictions apply.