This kind of methodology is identified as the set of procedures, techniques and documentary support used for the design of information systems. In software engineering when referring to software development, it is talking about the development of programs, which must meet a series of stages or phases, in order to function with other methods already established in other engineering disciplines.
Its main objective is to expose a set of classic and modern systems modeling techniques that make it possible to develop quality software, including construction heuristics and system model comparison criteria.
Each software development methodology has its own approach and what are commonly called traditional approaches do not usually take into account aspects such as quality, competitiveness, satisfaction and benefits; rather they are laden with ambiguities, bureaucracy, etc. Since methodologies were created in the decade of the 70s and 80s, thinking in business 50s.
The truth is that the world is changing very quickly, only smart businesses and smart software survive. Today, communications are instantaneous, information flows in real time. This is why classical methodologies are already obsolete, and do not work from every point of view. Only some have been adapted, but their functionality is limited to not very innovative projects.
Among the software development methodologies used today are:
Scrum methodology: it is an agile and flexible methodology that allows you to manage software development and whose objective is to maximize the return on investment for your company. It is basically based on building the functionality of the highest value for the client and on the principles of continuous supervision, self-management, adaptation and innovation. Among the advantages offered by this methodology are:
Fulfillment of expectations, flexibility to changes, reduction of time, higher productivity, maximizes return on investment, reduction of risks
XP Methodology (Extreme Programming): it is one of the most prominent methodologies in agile software development processes, since it places more emphasis on adaptability than on predictability. Its main characteristics are:
- Iterative and incremental development refers to reduced but continuous improvement.
- Constant, frequently repeated and automated unit tests.
- Integration of the programming team with the client continues.
- Programming in pairs, it is best that the development work be carried out by two people in the same position.
- Correction of all the errors, before adding new functionalities.
- Simplicity in the code, it is the best way for things to work well, it is better to do something simple that can be modified without much work, than to do something complex that may never be used.