A developer who believes that the formalized structure espoused in SoftwareProcess, ObjectOrientedAnalysisAndDesign and other formal methods is beneficial to the development of software, and who strives, but does not always succeed in using these methods in developing software. Could be compared to an InformalDeveloper. ''"a developer who prefers to use FormalMethods to develop software"''? ''"a developer who insists that FormalMethods are the best way to develop software"''? ---- I don't think the distinction is nearly this simple. Formal developers seem to me to follow the ProgrammingIsMathematics metaphor. There are a host of other MetaphorsForProgramming. --KentBeck I don't think the distinction exists, unless you re-frame it thusly: ''A developer skilled in the use of formal methods in software development.'' Software process and OOAD are not formal methods according to encumbent terminology, but they might be characterized as semi-formal or informal-formal. Formality is a skill, not a chronic set of mind or body. And a guy hacking perl in a tux is not doing formal development. -- WaldenMathews ---- Could be called an UnscientificDeveloper as well, in that preconceived notions of how to proceed take precedence over experience or experimental results. ---- Comment about TowardsEmpiricalComputerScience moved to there. ---- I learned this non-mathematical perspective on programming in the early 80's from KarlFant, founder of Theseus Logic. [1]. Interesting things happen when you revisit the somewhat ad-hoc foundations Von Neumann left for us computer scientists. Here is Karl's latest writeup on the subject: ''Notion of the Algorithm in CS'' - http://www.theseus.com/Downloads/Algorithm.pdf --ScottJohnston ---- CategoryFormalMethods