90% of Software Engineering is Social EngineeringFiled Under Human Factors
The last 50 years has been filled with technological breakthroughs, but we have quietly ignored our superhuman efforts to refine communication. The evolution of how we communicate from RUP to Agile/SCRUM has led us down a path of learning how to be pragmatic communicators; yet we still view ourselves as average developers before recognizing we are attempting to become master communicators.
The biggest and ugliest problem facing the advancement of software development is that we place it within the physical engineering model.
Perhaps it is force of habit or that the engineering analogies fit logically in our brains, but the largest mental hurdle that we [software developers] have to admit is that 90% of software engineering is actually social engineering.
The concepts of Planning Poker, Daily Scrums, and Continuous Integration are inventions of the software community to further communication between teams and clients. I find it intriguing that we choose to not view these as leaps in communication innovation but as just another estimation game, a scheduled meeting, and the constant building of software.
Software process will evolve, but we first need to recognize what the “essence” of our craft actually is. Some developers still believe that they are rearranging unintelligent bits and bytes into intelligent shapes. Unfortunately, anyone can be taught to code.
The best inventions yet to be delivered by the software community will be in the arena of communication; however it will only occur to those who except that the true essence of software engineering is actually social engineering.