This paper discusses the virtual finite-state machine (VFSM) design and implementation paradigm and our experience in introducing VFSM on software development projects for several Lucent Technologies products. VFSM, which allows software developers to specify the control behavior of a module as a finite-state machine, is supported by a toolset that automates many tasks associated with producing an implementation, including aspects of code generation, documentation, and testing. VFSM has been used in the design of more than 75 software modules, and its application has resulted in shorter development intervals and the elimination of defects prior to testing. In this paper, we present an overview of the VFSM design and implementation paradigms and the capabilities provided by the VFSM toolset. We also discuss the technical and nontechnical issues that have had an impact on the successful introduction of VFSM.