the requirements are incorrect. "Although much effort is put in the requirements phase to ensure that requirements are complete and consistent, rarely that is the case; leaving the software design phase as the most influential one when it comes to minimizing the effects of new or changing requirements. Requirements volatility is challenging because they impact future or already going development efforts." Software developer A software developer is a person or company engaged in a software development process, including research, design, programming, testing, and other facets of creating computer software. Other job titles for individuals with similar meanings include programmer, software analyst, or software engineer. Companies specializing in software may be called software houses. In a large company, there may be employees whose sole responsibility consists of only one of the disciplines. In smaller development environments, a few people or even a single individual might handle the complete process. Collaborative environments, such as open-source software, can bring together many developers. Subtopics View model A view model is a framework that provides the viewpoints on the system and its environment, to be used in the software development process. It is a graphical representation of the underlying semantics of a view. The purpose of viewpoints and views is to enable human engineers to comprehend very complex systems and to organize the elements of the problem around domains of expertise. In the engineering of physically intensive systems, viewpoints often correspond to capabilities and responsibilities within the engineering organization. Business process and data modelling Graphical representation of the current state of information provides a very effective means for presenting information to both users and system developers. A business model illustrates the functions associated with the business process being modeled and the organizations that perform these functions. By depicting activities and information flows, a foundation is created to visualize, define, understand, and validate the nature of a process. A data model provides the details of information to be stored and is of primary use when the final product is the generation of computer software code for an application or the preparation of a functional specification to aid a computer software make-or-buy decision. See the figure on the right for an example of the interaction between business process and data models. Usually, a model is created after conducting an interview, referred to as business analysis. The interview consists of a facilitator asking a series of questions designed