One might question the effectiveness of one process over another in IT organizations. It cannot be argued the fact that IT process changes have made this industry the better. Integrated applications have become more and more complex as allowed by hardware advancements. Applications of today mandate varying models for process controls. There is one resource however that has remained constant – people. IT management must not lose sight that good personnel can make up for process shortcomings – good process cannot make up for personnel shortcomings. The most direct and lasting benefit IT management can give to an organization is to hire the most qualified people and find the best means of moving novice programmers to expert. Educational development plays an important first step in this process.
Software engineering is described as the process of applying tools, methods, and disciplines in an automated means to a real-world problem. Software engineering is about solving problems. Initially students acquire skills through education in programming languages and algorithmic development. Software engineering is applying those skills towards problems; it is not a predetermined set of practices. In his article “No Silver Bullet”, F P Brooks describe the difficulties in software engineering improvements dividing them into essence and accidents. “Good designers” is listed as one of the four solutions in overcoming difficulties. Good designs come from good designers. Good process cannot make up for personnel shortcomings – good personnel can make up for process shortcomings.
What causes such varying degrees of expertise among software developers? Education plays a vital role in the success of an individual in this industry. Environment and culture also can have an impact on how developers progress in an organization (Jin 2000). But what part do cognitive abilities play in the progression?
There have been numerous empirical studies that suggest that left hemisphere dominated people tend to pick up software development easier than people who are right hemisphere dominated. The left side of the brain deals more with rational and abstract thinking; while the right side controls creative, concrete, and deductive reasoning. However, both LH and RH play an important role in software development. The left side of the brain handles logical; the right side created. Different people process information in different ways based on the area of brain and their cognitive style. Procedural programming tends to favor left hemisphere dominate while object oriented is hemispheric friendly. Consensus is that regardless of one’s cognitive tendencies, anyone can be taught through repetition. After 20+ years of consulting with varying shops, I feel this community is best served when the differences of LH/RH dominant tendencies are recognized and both are strengthened through mentoring.