Adding Formalism to Methods or Where and When Will Industry Use Formal Reasoning?

Twenty years and more after the term ‘formal methods’ was introduced, their use in industrial software engineering is still so limited that it raises the question: is there indeed a ‘method’ to the use of formal theories in solving practical problems? In comparison, the practice of large-scale software development abounds in methods, some requiring no more than the systematic use of paperwork, some based on graphical notations with annotations and some tightly wired into project management tools. None of these is a ‘formal’ method; equally, no application of formal reasoning into the development process resembles a ‘method’ as known in software engineering.