90% of Software Engineering is Social Engineering
Filed 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.
7 Responses to “90% of Software Engineering is Social Engineering”
I feel you have hit the nail on the head with this one Max. I feel by far the majority of issues with projects (well… more then just projects, but for this comment) can be traced back to one word, communication.
How many times have developers sat around talking to each other about how bad [X] is when maybe we could have tried finding out the reason(s) why they are believing in there “answer.”
Maybe one less night a week searching the web for the newest cutting edge technology and joining some sort of social group that pushes our comfort level and communication skills would lead to better software?
While I agree with you on the premise of ‘better communication yielding better software’, I would disagree on one point.
The best communication skills in the world can’t help in the delivery of an inaccurate message. I would argue that the methods of Planning Poker, Scrum, etc. aid in the accuracy of the items we are communicating. I still see this as an engineering discipline rather than a social one.
“…the methods of Planning Poker, Scrum, etc. aid in the accuracy of the items we are communicating”
That is exactly what I find intriguing, we are being masters of communication by learning how to be more precise and streamlined.
No argument that some people will still view our discipline as engineering first, but once you are ultra-aware of how much time is focused towards communication it starts to make you ask questions as I have.
[…] Прочитайте. Оно ведь на самом деле так и есть… […]
Agile movement emphasizes “social engineering” part of software development.
I think “software engineering”(SWEBoK), “project mangament”(PMBoK), and “social engineering” are the three major factor of “software development” and Agile cross-cuts or connects the three.
Agile is a gimmick and doesnt work.
The Scientific Community that is active in Software Engineering is considering the possibility to put people in the center of the development process.
http://www.cs.tut.fi/sosea08/