Software Development and Personality Traits Luiz Fernando Capretz Department of Electrical and Computer Engineering Western University London, Ontario, Canada, N6A5B9 [email protected] importance. This article represents an important step towards a theory that links software engineering and personality styles. Note: This paper was presented as an invited talk at the Tenth International Conference on Computer Applications (ICCA 2012), held at the University of Computer Studies, in Yangon – Myanmar, February 28th and 29th, 2012. Therefore, the content of this paper and the talk appeared in the author’s and speaker’s previous publications, which appear in the list of references. 2. Myers-Briggs Type Indicator (MBTI) As a starting point, it is fundamental to introduce the four scales of the MBTI [10]. Used correctly, the MBTI is a method for measuring and understanding individual personality types. It can reveal how people prefer to receive information, how they form opinions, and how they communicate. The MBTI ranks now among the most popular tools used in the workplace for analyzing personality types. This indicator establishes four parameters for assessing personality types. We all have the personality qualities contained within each scale or parameter, but we naturally prefer some qualities or are more comfortable with some traits than others. With the MBTI, each scale is bimodal with its central point having a zero value. Each respondent is forced to choose preferences; the higher the score on each preference, the stronger that preference is likely to be. 1. Introduction Software is a word with a fuzzy perception. People who talk about software may be thinking about the structure of a program, the functionality of an application system, the look and feel of an interface or the overall user experience with a hardware-software environment. Software engineering spans both new software developments and the maintenance of legacy systems, each software life cycle phase bringing its own context of understanding about what matters, what can be designed, and what tools and methods are appropriate. Software engineering has become a very broad field of study; consequently the skills necessary to successfully work in this area thirty years ago may no longer apply. For instance, software design has become more than manipulating formal or semi-formal notations, but revolves around the interaction between designers and users; namely, the designer’s perception of what the user wants, and the user’s perception of what he/she really needs. Nowadays, successful software is developed after a tremendous amount of time has been spent with the user in the form of prototyping, experimentation and feedback. This is the proper life cycle of any useful software system. 2.1 Extroversion and Introversion (E and I) The first scale represents complementary attitudes towards the external world. Whereas the extrovert prefers looking outward, the introvert has an inward view. For example, strong extroverts are sometimes said to ‘talk to think’ whereas introverts ‘think to talk’. The implications of these terms go beyond the everyday caricatures of sociable versus shy. Extroverts are talkative, initiators of conversation, and outgoing. They prefer action and variety. Introverts, in contrast, are quiet, reserved, and respondent to conversation rather than initiate it. They like quiet and time to consider matters. Extroversion implies as a tendency to be talkative, lively, and expressive; introversion describes a person that is quiet, introspective, and reserved. Research relating personality styles to software engineering has been both scattered and difficult to interpret uniformly. It may be that the relation between software engineering and personality styles is too complex to investigate. For instance, it may be that certain personality traits such as introversion/extraversion have a great impact on system analysis, but not so much on other phases. Thus, studies to determine which personality profiles are more attracted to what activities related to software development are of paramount 1 Summarizing, the MBTI sorts these four sets of preferences, one from each pair, to delineate a person’s preferred type. Hence, there are 16 possible configurations, as shown in table 1, and displayed as well are the percentages of the various types among a representative sample of the U.S.A. adult population [10]; these percentages may vary from one country to another. If the MBTI results show that a person is ISTP, the terminology suggests that the person prefers ISTP type, not that the person is an ISTP. There are no rights or wrongs in the personality types, merely preferences. 2.2 Sensing and Intuition (S and N) The second scale of preference distinguishes the way that we assimilate information from the environment. While a strong S might need to absorb a whole series of facts in linear fashion, a strong N can take in the same information through abstraction and concepts that, while initially not seeming to be directly related, can establish meaning beyond the information supplied only by the senses. S dislikes new problems unless prior experience shows how to solve them; N likes solving new problems, and dislikes doing the same thing over and over again. The adjectives that describe a sensing person are realistic, practical and fact-oriented; while those of an intuitive person are speculative, imaginative and principleoriented. Of course, we all share both sets of qualities to some extent, but one set usually predominates. Table 1. The 16 MBTI types and their distribution among the USA adult population. ISTJ 11.6% ISTP 5.4% ESTP 4.3% ESTJ 8.7% 2.3 Thinking and Feeling (T and F) The third mode of orientation in the MBTI classification is thinking and feeling. Again, these terms are more comprehensive than everyday usage would indicate. After gathering information, some decision has to be made about how we process that information. This scale of preferences identifies thinking as the logical way of making a decision, while feeling describes the tendency to rely on values as a basis for making decisions. Thinking people are principle-oriented, coolheaded and firm, whereas feeling people are emotionoriented, warm-hearted and have good interpersonal skills. ISFJ 13.8% ISFP 8.8% ESFP 8.5% ESFJ 12.3% INFJ 1.5% INFP 4.4% ENFP 8.1% ENFJ 2.5% INTJ 2.1% INTP 3.3% ENTP 3.2% ENTJ 1.8% 3. Previous Studies Human factors in software engineering have different dimensions. Studies have been performed from different perspectives. These perspectives could be the study of human factors in different phases of software life cycle, or the effect of team work in software development, or how can a personality profile suit a particular task or about some other miscellaneous issues. Karn and Cowling [7] studied the effects of different personality types using MBTI on the working of some software engineering team. The study describes how ethnographic methods could be used to study SE teams, to understand the role of human factors in a software project. The results of the study indicated that certain personality types were more inclined to certain roles. 2.4 Judging and Perceiving (J and P) The fourth scale differentiates between how we orient our lifestyles and organize our world. J identifies the tendency to be super-organized. If a deadline is to be met, the strong J usually finishes the task well in advance. At the other extreme, the person who prefers perceiving appears to be very disorganized and seems to be distracted from completing a task until some little bell goes off at the last minute and propels this individual to get the job done; Ps do not like decision-making. Often, it is said that the easiest way to distinguish between these two preferences is to look at the person’s desk. The desk of a J is immaculately organized, the desk of a P appears to be in constant chaos even though the P individual claims to know exactly where everything is located and that there are rules underlying the apparent chaos. The descriptors: deadlines, punctual, closure and routine apply to judging types, whereas open-ended, tentative, adaptable and spontaneous apply more to perceiving types. A few empirical studies have investigated the relationship between MBTI and software engineering. Sitton and Chmelir list some [12] stereotypes of programmers and what it is that attracts them to the computer field. Their study paints a picture of creative professionals merrily and irreverently solving complicated problems, untrammeled by routine and humdrum details; however, it gives no specific statistics regarding their findings. Bush and Schkade [4] tested 58 professionals involved with scientific programming in one aerospace company. They found that ISTJ (25%) to be the most common type, with the second most frequently reported type being INTJ (16%), and ENTP (9%) being the third. They also found thinking (74%) and judging (70%) to be very common. 2 Buie [3] took a sample of 47 scientific computer professionals employed by a private company under contract with NASA who were performing work on orbital-related software. ISTJ (19%), INTP (15%) and INTJ (13%) were the most frequent types, with those three collectively accounting for nearly half the sample. ESFJ (0%), ISFP (0%) and ENTP (0%) were particularly underrepresented. The hypothesis that scientific programmers would tend toward an over-representation of Is, Ns, and Ts was supported. among software professionals [15]. While these empirical studies suggest that the MBTI poles are related to software engineering, it does not suggest at which phase of the software life cycle or how they are related. A more focused framework may help quantify at which software development phase a particular personality type has the most significant impact. This fundamental issue is tacked in this article. Hardiman [6] has claimed that the MBTI may be the best predictor of who will become a competent programmer. He observed that the majority of good software engineers were ENTJ, INTJ, ESTJ, ISTJ, ISFJ, and ENTP, in brief, mostly NTs and SJs. He also implies that NF types tend to have trouble with the sequential and process-oriented thinking required to produce software. What consideration should be given to the skill needed by systems analysts who interact users and should empathize with customer’s problems? Cannot NFs handle this better than NTs and SJs? Smith [13] dealt with 37 systems analysts at a large insurance company. The most frequent types in the sample are ISTJ (35%) and ESTJ (30%). From the results, there were slightly more introverts (57%), but there was also a heavy bias towards the sensing (81%), thinking (89%) and judging (86%) types. Interestingly, the four NF (third column in table 1) combinations were not present at all in this small sample. Larger and diverse samples would allow more comprehensive data and definitive conclusions. We believe that they can. Indeed, good software development requires a broad set of skills. If a team lacks people with certain preferences, others may have to perform with dissatisfaction the tasks that would be natural for the excluded people. The software industry has become a major force in society. It has, in fact, generated many commentaries on the unique contributions of professionals engaged in its many sub-areas. Specialties within software engineering today are as diverse as any other profession. Software engineering comprises stages in separate and distinct flavors, such as: system analysis, design, programming, testing, and maintenance. It is certain that some soft skills affect one phase but not others, or affect phases in different fashions [17]. Lyons [9] surveyed 1229 software professionals from more than 100 companies, including insurance companies, financial institutions, utilities, and hardware manufacturers. He too found ISTJ (23%) to be the most common type, INTJ (15%) to be the second, and INTP (12%) to be a close third, noting that these three types composed 50% of his sample. He found thinking (81%) and judging (65%) types to be in the majority; furthermore, he also found that 67% of his subjects were classified as introversion types. He was the first to observe that R&D organizations and companies that do a lot of state-of-the-art development attract and hire more Ns than Ss. The opposite occurs in large organizations where the bulk of the work involves maintaining and enhancing production software systems. Kerth et al. [8] are skeptical about the application of MBTI to predict who is going to make a good software engineer because MBTI does not consider variables such as passion, experience and skills, among others. They are right about the inability of a single personality test to predict success in a field as broad as software engineering, where different skills are needed for system analysis, design, testing, security, maintenance and technical support. Nevertheless, they contradict themselves in the article when they write: ‘We see zero indication that MBTI preference correlates with job success’, but later affirm: ‘systematically excluding certain types from a team produces a imbalance that is likely to have a poor performance’. As companies rely more heavily on project teams and expect software engineers to partner with their customers, opportunities for conflicts abound. When it comes to personality types, opposites do not always attract. When software professionals discuss how a task needs to be accomplished, they tend to be poor at verbalizing how the task affects the people involved. In fact, the greatest difference between software engineers and the general population is the percentage who takes action based on what they think rather than what they feel. That does not help bring software engineers closer to their customers. In fact, it shows that computer literacy is not enough. Software engineers also need emotional literacy and mutual understanding to build teams and work well with users. There should be a clear association between activities/roles and personality types. We believe that such a debate is far from over. Psychological assessment instruments have been used for over sixty years and have reached a mature stage for job/career selection and for predicting behavior [2]. Many of these instruments are based on the theories of C. Jung and S. Freud. MBTI has been one of the most popular tools used in the workplace for analyzing personality The common thread running through the results of these studies is the prevalence of introverts, thinking, judging, and almost as many sensing as intuitive types 3 types; the reason: MBTI has been backed by extensive data; its profiles of which personality types are attracted to which specific occupations, for instance, comes from more than two million indicators administered annually all over the world. Table 2. Type distribution of software engineers and SRTT comparison with an adult population sample. (N = 100, ‘+’ = 1%, I=selection ratio index, “p<.05 #p<.01 *p<.001) ISTJ 24% ISFJ 2% INFJ 1% INTJ 7% I=2.08* I=0.14# I=0.68 I=3.40* ++++++++++++ ++ + +++++++ ISTP 8% ISFP 5% INFP 2% INTP 8% I=1.49 I=0.57 I=0.46 I=2.46# ++++++++ +++++ ++ ++++++++ ESTP 8% ESFP 1% ENFP 3% ENTP 7% I=1.87 I=0.12# I=0.37 I=2.19” ++++++++ + +++ +++++++ ESTJ 15% ESFJ 4% ENFJ 1% ENTJ 4% I=1.73” I=0.33” I=0.41 I=2.23 ++++++++ ++++ + ++++ ++++++++++++ +++++++ students are already working as software engineers. This supports a greater generality of the results reported in that investigation. The type distribution of the software engineers is summarized in Table 2. Capretz [5] investigated the profile of a group of 100 software engineers (80% male and 20% female) who study in private or public universities, or work for the government or for software companies. They are all productive and motivated software engineers and were selected to participate in this study based on their occupation. All were administered the MBTI (Form G) to assess their personality types. In Table 2, the letter I refers to the ratio known as the self-selection index in the Selection Rate Type Table (SRTT). The ratio is computed comparing the percentage of the observed frequency to the expected frequency. When the ratio is greater than 1.00, there are more people in that cell of the table than we expected considering their numbers in the general population. If the ratio is less than 1.00, there are fewer people (in that cell) than expected in the general population. SRTT also indicates the statistical significance This study is relevant because it considers a range of pertinent groups such as employed professionals, senior undergraduate students as well as graduate students. Some 4 (p) of the results represented by a chi-square calculation whenever possible. A quick inspection of the sixteen types shows that all four NT types and two ST types have indices greater than 1.00 showing the trend that NT and ST are over-represented among software engineers. On the other hand, all four SF types have indices much smaller than 1.00 confirming that SFs are under-represented among software engineers. found differences as high as 10 to 1 of programmers with similar backgrounds regarding programming performance. Bishop-Clark [1] investigated the relationship between cognitive aspects, personality traits and computer programming. She divides programming into several stages: problem representation, program design, implementation, and debugging. She organized the theories and the empirical studies of computer programming into four subtasks: problem solving, designing, coding, and debugging. The cognitive styles discussed in some detail include: field dependency/independency, analytic/holistic, impulsivity/reflectivity, and divergent thinking; the personality traits include locus of control, and introversion/extroversion. These variables were mentioned because, according to her theory, they were all important within the realm of computer programming. Cognitive styles have been studied as factors that may help explain some of the variability; however, they have failed to consistently explain individual preference towards computer programming as opposed to, say, system analysis. MBTI offers a potential to provide a model for comparison. This study has shown that ISTJ, ISTP, ESTP and ESTJ compose over 50% of the sample and are, therefore, significantly over-represented, whereas INFJ, ESFP and ENFJ are all particularly underrepresented in the group. TJs (corners of table 2), STs (1st column in that table) and NTs (4th column) are abundant among software professionals. On the other hand, SFs (2nd column) and NFs (3rd column) are scarce. It is worth noting that there are more ISTJ (24%) than any other type and there is a cluster of sensing, thinking and judging (STJ). This is generally congruent with the type theory. In this research also found more introverts (I=57%) than extraverts (E=43%), significantly more sensing (S=67%) than intuitive (N=33%) types, greatly more thinking (T=81%) than feeling (F=19%) types, and fairly more judging (J=58%) compared to perceiving (P=42%) types. It is also noted that STs compose 55% of the subjects, TJs comprise 50% and ITs add up 47% of the sample. On the other hand, SFs make up to only 12%, and NFs represent a mere 7% of the subjects. The majority of studies treat software engineering as a single activity, mainly programming. However software engineering has been characterized as a set of activities involving distinct phases, such as: system analysis, design, programming, testing and maintenance; each of which demands different abilities. Indeed, each phase involves varied tasks that require different skills. For instance, the skills and activities involved in designing a software system are quite different from the skills and activities involved in testing the software. In fact, each of these phases should be studied independently, and if necessary, they must be further subdivided. Clearly, each software development stage will be affected by MBTI variables to some degree. The largest single type among the subjects is ISTJ. MBTI data collected over many years show that only 11.6% of the U.S. adult population falls into this category as compared with 24% in our studies. From a statistical perspective, this is a significant finding. Further, the second most frequently reported type is ESTJ, with 15% of the subjects fitting in this category as compared with 8.7% of the U.S. adult population. ESFPs, incidentally, accounted for 1% of the subjects in the sample compared to 8.5% in that general population, a finding reflected by the lowest ratio (I=0.12). It is clearly seen that there are dramatic fluctuations between ISFJ (I=0.14), INTJ (I=3.40, the highest), as well as that are present in the general population. Firstly, we should address one fundamental question. What happens during software development? Figure 1 shows the five stages of a software life cycle model and proposes an approach to conceptualize the points at which a particular dimension of personality trait may have some impact. The waterfall model is depicted in Figure 1 because it is the best known software life cycle and its phases are often part of other models. A particular personality dimension may influence each of the five phases to some extent, whichever model is used. A full description of this work is shown in Capretz and Ahmed [16]. The theory behind each of the personality variables suggests that it is likely to impact some phases more than others. The personality dimension that appears most relevant to each phase is shown on the diagram and the rationale for each is described beneath. In other words, this diagram has been developed by overlapping some aspects of the MBTI theory and the tasks defining each stages of a software life cycle 4. Software Development Phases and MBTI Within the field of software engineering there is agreement that there are tremendous differences among individuals’ achievement in programming. Instructors of programming courses witness first hand the huge variety among students in learning achievement and programming assignments. Shneiderman [11] reports that researchers 5 model, and shows the potential impact of MBTI variables E-F on the software life cycle. System Analysis N-T Design I-S-T Programming S-J Testing S-P Maintenance Figure 1. MBTI dimensions and the phases of a software life cycle model. understand the application and the requirements of a particular software system. Hence, the systems analyst’s tasks have a high interpersonal component because of the analyst’s frequent interactions with users. This can be a critical insight for information systems professionals, who are often viewed as disconnected from users. 4.1 System Analysis The system analysis phase emphasizes identification of high-level components in a real-world application and decomposition of the software system. The system analysis phase demands the system analyst to: Understand the system essential features. 4.2 Design Consider the requirements expected to be satisfied by the software system. “Design” is an ambiguous word. Although there is huge diversity among design principles, we can find common concerns and principles that are applicable to the design of any artifact, whether it is a poster, a household appliance, or a housing development. In particular, software design is still a young field, and we are far from having a clear articulation of the relevant principles. Software design is a user-oriented field, and as such always requires the human creativity possessed by other disciplines such as architecture or graphic design, rather than the hard-edged formulaic certainty of engineering design. Create an abstract model of the application in which these requirements are met. During this phase, an abstract model of the application comprising high-level abstractions of software components is better understood. The main product of the system analysis phase is a graphical or textual description (informal or formal) of an abstract model of the application. System analysis also requires a great deal of human interaction with users and clients. It seems likely that introversion would especially affect this phase. Therefore, a systems analyst needs to have a strong inter-personal skills linked with conceptual thinking ability and an inquiring mind. Introverts are more likely to attempt to understand a situation with books and internal thoughts rather than discussing the problem with clients or peers. It may be that introverts have a difficult time achieving a problem representation with the clients due to their internal orientation. This also demands the software engineers interact with other in such a way that they come to Software design is an exploratory process. The designer looks for components by trying out a variety of schemes in order to discover the most natural and reasonable way to refine the application. There has been a tendency to present software design in such a manner that it looks easy to do. Nevertheless, in the design of large and complex software, identification of key components is likely to take some time. Repetitions are not unusual, since a good design usually takes several iterations. The number of iterations 6 also depends on the designer's insight and experience in the application domain. Testing strategies are neither random nor haphazard, but should be approached in a methodical and systematic manner. Even, after a fault is detected, debugging can be a frustrating and emotionally challenging activity that may lead software engineers to restructure their thinking and decisions. This requires a great deal of persistence to choose from an enormous range of possibilities and to maintain an incredible attention to detail. In theory, judging people would be more successful in the testing phase than perceivers. Naturally, there is also a tendency towards intuition, and normally those who are imaginative and innovative, thrive during design compared with their sensing counterparts. Ss like jobs that require the use of well-learned knowledge, not the development of new solutions. They are very good observers and like details. Ns are creative and enjoy abstract symbolic relations, finding patterns rather than dealing with details. They like to create new knowledge rather than applying existing techniques. 4.5 Maintenance Software is normally subject to continuing changes after it is written, and it is operational. Thus the efforts turn to the challenge of maintaining a continually evolving system. It can be observed that projects involving research and state-of-the-art development tend to attract more intuitive people, whereas those having tasks concerned with maintaining and enhancing software systems tend to attract more sensing types. Sensing types tend to be practical, realistic, and observant. An intuitive person puts more emphasis on new projects. It can be generalized that an S person will often prefer to perform a task in a particular fashion because it has been done that way before and it worked. The N person will prefer to perform the task some other way, for the very opposite reason! Thus Ns are likely to be bored with software maintenance. 4.3 Programming Programming involves translating a refined version of the design into a programming language in order to provide the overall software services. This phase requires identification of control structures, relevant variables and data structures, and a detailed understanding of the syntax and specifics of a programming language. This usually follows an iterative stepwise refinement process that is mostly top-down, breadth first. Therefore programmers should attend to details and maintain an open, logical, and analytic (thinking) style. The thinking/feeling dimension of the MBTI describes the way in which one makes decisions. The problem of interpreting and giving meaning to variables may be a problem especially for feeling types rather than for detached analytical, thinking types, suggesting that the programming stage is more problematic for feeling types. Programming is an activity that demands logical impersonal analysis (thinking). Programming tasks, such as determining details of module logic, establishing file layout, and coding programs show little requirement for interpersonal contact and reveal the programmer’s work life as essentially a solitary one. 5. Final Remarks Human factors are usually overlooked in software engineering because the relationship between software engineering and personality types is extremely complex and difficult to investigate. Nevertheless, it has been worthwhile studying a possible relationship between software engineering and MBTI dimensions. The research addresses questions of great importance for software engineers – what are the characteristics of members of the professional community, and what is the relationship between software development skills and personality types. In a summary, the preferences and type distribution in table 2 demonstrate that the type distribution of software engineers is different from the type distribution found in a general population, indicating that software engineers form a particular and distinct group of professionals. 4.4 Testing Testing involves finding and correcting (debugging) errors in a program. The testing stage is not the first time when errors appear; they can be carried through from the system analysis and design phases. But testing is focused on finding faults, and there are many ways to make testing efforts more efficient and effective. First, each module is tested on its own, isolated from the other components in the system. Such testing, known as unit testing, verifies that a module functions properly with the various input expected (and unexpected!) based on the module’s design. After collections of modules have been unit-tested, the next step is to ensure that the interfaces among them are well-defined. Integration testing is the process of verifying whether the system components work together properly. The results presented here are important to employers looking for software professionals as well as to students looking for a career in the software field. This investigation, however, has not taken into consideration other motivations that might affect a career choice, such as: money, recognition, autonomy, power, security, etc., nor a career path such as managerial, technical, entrepreneurial, and so on. We must remember that MBTI sorts preferences; it does 7 not measure success. Sodan [14] claims that for personal work as well as relations to be successful, a number of psychosocial qualities are required, and she proposes a model based on the Yin/Yang duality. Due to the diverse nature of software engineering, it is widely believed that personality instruments cannot accurately predict success in this field. Because of the diverse nature of software engineering, it appears to be time to recognize that there is no single style of personality type that fits the wide spectrum of types that encompass all software engineering occupations. Most people are able to either find or create a rewarding niche for themselves in a profession with the predominance of a particular type, and achieve satisfaction in a place where they can be true to their preferences and comfortable with themselves. Nowadays there are very few solo performers in most software organizations; people have to work together in teams of some sort, and it is almost always good to have some diversity on the team in terms of psychological type. In other words, better software will result from the combined efforts of a variety of mental processes, outlooks and values. Therefore all types are important to software development as every type can make a contribution to solve the so-called software crisis. Thus the software industry cannot afford to lose would-be professionals who may come from a diverse group of people. Finally, it takes variety to conquer variety. Putting it in software terms, it takes a variety of skills and personalities to solve the myriad of problems related to software development and maintenance. It might be suggested that organizations would be well served by a conscious attempt to diversify the styles or personalities of their software engineers, as strong teams are the ones made up of diverse perspectives. Exposure to MBTI and software psychology can help this appreciation to flourish. Achieving such a variety will enable us to bring a richness of talents and points of view to bear upon the inherent complexity of software systems. References [1] [2] [3] [4] Bishop-Clark, C. Cognitive style, personality, and computer programming. Computers in Human Behaviour, 11 (2), 241-260, 1995. Blatt, S.J. Where have we been and where are we going? Reflections on 50 years of personality assessment. Journal of Personality Assessment, 50 (3), 343-346, 1986. Buie, E.A. Psychological type and job satisfaction in scientific computer professionals. Journal of Psychological Types, 15, 50-53, 1988. Bush, C.M. & Schkade, L.L. In search of the perfect programmer. Datamation, 31 (6), 128-132, 1985. 8 [5] Capretz, L.F. Personality types in software engineering. International Journal of Human-Computer Studies, 58 (2), 207-214, 2003. [6] Hardman, L. T. Personality types and software engineers. IEEE Computer, 30 (10), 10, 1997. [7] Karn, J. S. and Cowling A. J. Using ethnographic methods to carry out human factors research in software engineering, Behavior Research Methods, 38 (3), 495503, 2006. [8] Kerth, N. L., Coplien, J. and Weinberg, J. Call for the rational use of personality indicators. IEEE Computer, 31 (1), 146-147, 1998. [9] Lyons, M. L. The DP Psyche. Datamation, 31 (16), 103110, 1985. [10] Myers, I. B., McCaulley, M. H., Quenk, N. L., and Hammer, A. L. MBTI Manual: A Guide to the development and use of the Myers-Briggs Type Indicator. Consulting Psychologists Press, 1998. [11] Shneiderman, D. Software Psychology: Human Factors in Computer and Information Systems. Winthrop Publishers, Cambridge, 1980. [12] Sitton, S. and Chmelir, G. The intuitive computer programmer. Datamation, 20 (20), 137-140, 1984. [13] Smith, D. C. The personality of the systems analysts: an investigation. ACM Computer Personnel, 12 (2), 12-14, 1989. [14] Sodan, A. C. Toward successful personal work and relations – applying a Yin/Yang model for classification and synthesis. Journal of Social Behaviour and Personality, 27 (1), 39-71, 1999. [15] Varona, D., Capretz L. F., Pinero, Y. and Raza, A., Evolution of software engineer’s personality profile, ACM SIGSOFT Software Engineering Notes, 37 (1), 15, ACM Press, January 2012. [16] Capretz, L. F. and Ahmed F. Making sense of software development and personality types. IEEE IT Professional, 12 (1), 6-13, January/February 2010. [17] Ahmed, F., Capretz, L. F. and Campbell P. Evaluating the demand for soft skills in software development. IEEE IT Professional, 14 (1), 44-49, January/February 2012.
© Copyright 2026 Paperzz