Just recently I was engaged to assist with an application that wasn’t behaving. The application, running in a 1.7.0_45 JVM, relied heavily on a 3rd party SAAS framework. That vendor provided my client with a list of 26 different JVM flags that should be set. When faced with this long list of flags I couldn’t resist asking why all the flags and why these flags. After all there are more than 700 product flags defined in the JVM and to be honest, I’ve only a vague idea of the effect may have on a runtime.
In 1996, a group that I was working with devised a development process which we called Defect Driven Design, otherwise known as D3 (D-Cubed). We were a bit disappointed by not surprised that D3 never really caught on but just recently I saw a glimmer of hope for a revival.