Why Software Development Organizations Fail to Capitalize On Decades of Experience

 Kathleen Dollard, one of my favorite authors on software development, once made the remark that a lack of experience is holding our profession back. Over the years I’ve spent in software development, I’ve found substantial reason to agree. Here’s what I see as some of the obstacles to gaining a sound reservoir of experience in a software development organization.

The loss of experienced developers and architects from software development: Experienced developers and architects may go out the back door and take their experience with them.

Micromanagement by technically atrophied management: A number of times experienced developers go into management in software development organizations. Usually, their technical skills quickly atrophy, and they do not keep up with current software development processes. They may continue to give directions, but their directions make less and less sense because of the growing divergence between their own base of experience and current and appropriate software development processes. That’s often the reason why many projects have a strange resemblance to the way COBOL projects were done in the 1980’s.

‘Everyone starts at the bottom’ here ethic: This is an obstacle to bringing experienced new hires up to speed quickly. The assumption is that anyone new to the organization is entry level in his or her skill set. This means underemployment of experienced developers in tasks and responsibilities for which they may be highly overqualified. It costs the organization because they are overpaying for the results that they are achieving through these developers, and they are not developing less experienced developers for the tasks and responsibilities for which they are better suited. What this means is that skills and competence that someone has acquired elsewhere are dismissed once a new person comes into the organization.

‘We only recognize experience here’ ethic: This seems to be from a self-overestimation of the uniqueness of a software development organization. It fails to recognize that there are a large number of transferable skills among developers, such as the languages, environments and work styles. In fact, if any organization is that unique, it is probably highly inefficient and dysfunctional in its development processes and the results that it achieves. Its uniqueness probably comes not from the uniqueness of the business itself but from the quirkiness and inexperience of some of those who put together the current processes, infrastructure, architecture and code base of the current organization. Genuine quality and best practices are usually not unique to a single organization, but quirkiness and the dysfunctions of unconscious incompetence usually are.

Over-idealization of recent college grads: I’ve noticed that some managers far over-idealize the skills and experience of recent college grads who come into the organization. The entry level hires may have great potential, but I’ve found that often they need a long period of personal growth and development in a professional environment to realize that potential.

The pretense of perfection: An IT department or software development organization falls for its own hype and self promotion. Unfortunately, people who do not learn from their mistakes are going to keep on making the same mistakes. Rather, from CIOs on down, IT departments and software development organizations need to be learning organizations.

Business people are the source of all requirements and sponsor all projects:  Often this means an unfair burden upon the business analysts and line business managers to understand and apply technology to the needs of business. Usually they do not have the base and breadth of experience to understand what current technology can do to generate cost savings, reduce errors, and gain competitive advantage. Rather, the burden remains on IT and software development managers, architects and developers themselves to get to know the business well enough to see the competitive advantages and cost savings that technology can provide. Creative and innovative applications will come where there is enough awareness of the business needs and capabilities of technology in enough people to see, explore and implement the possibilities. 


Comments

Popular posts from this blog

The Mother of All Back to School Messages -- Romans 13:11-14

Feeling Unsure About Heaven? Watch This! -- John 14:1-6

Are You Being Fooled By Spiritual Deception? -- II Corinthians 11:1-4