I caution other engineers turned amateur psychologists not to confuse SMBP with incompetence. Incompetence exhibits itself through out all phases of software development - whereas SMBP exhibits itself only at critical phases where either shipping or a decision to ship is imminent.
While there is disagreement among the best engineering minds as to the root cause of SMBP, there is agreement that perpetrators likely do not want to ship their software, and consciously or unconsciously make decisions that directly affect this outcome.
Some common signs that suggest you may working with an engineer or engineering manager with SMBP include:
- the self-revelation of a fatal design flaw late in a release cycle;
- a compelling need to adopt a new technology or third party product late in a release cycle;
- frequent and irrational arguments focused on the lack of readiness for release, with the areas of concern being ones he or she had a direct impact on;
- a maniacal focus on the need for a “next-generation” before there is actually a current generation;
- an incessant need to rewrite software in a new programming language (i.e. Haskell) not being used by the current team
- an irrepressible desire to wish ill will on companies, technologies and/or people with which one is no longer associated;
- frequent engagement in email/IRC/Twitter flame wars in which he or she tries to appear the victim of a controversy which they started;
- and/or a facial tic accompanied by lick lipping and the use of “fava beans” in a sentence (okay, I made this last one up).
If you think an engineer you work with may be suffering from SMBP, it is important you contact an engineering medical professional as soon as possible.
(THIS POST IS NOT INTENDED FOR THE PURPOSE OF PROVIDING MEDICAL ADVICE. All information, content, and material of this post is for informational purposes only and are not intended to serve as a substitute for the consultation, diagnosis, and/or medical treatment of a qualified physician or healthcare provider.)