Methodology - a system of principles, as well as a set of ideas, concepts, methods, techniques and tools that define the style of software development.
Methodology - is the implementation of the standard. Standards themselves are only talking about what should be, leaving freedom of choice and adaptation.
Specific items sold through selected methodology. It determines how the development will be carried out. There are a lot of successful methodologies for creating software. The particular methodology depends on the size of the team, on the specifics and complexity of the project, the stability and maturity of the processes in the company and the personal qualities of employees.
Methodology is the core of management theory in software development. For existing classification depending on the model it life cycle (waterfall and iterative methodology) Add more general classification for predictable and adaptive methodology.
Projected methodology focused on the detailed planning for the future. There are scheduled tasks and resources for the entire duration of the project. The team barely reacts to possible changes. The plan is optimized based on the composition and work of the existing requirements. Changing requirements may lead to a substantial change in the plan and design of the project. Often, a special committee on the "change management" to the project were taken into account only the most important requirements.
Adaptive methodology aimed at overcoming the incompleteness of the expected requirements and their constant change. When changing requirements, the development team is also changing. Team participating in the development of adaptive, can hardly predict the future of the project. There is a precise plan for the near future. More distant in time plans exist only as a declaration of the project objectives, the expected costs and benefits.
SCRUM - methodology for small teams (10 people). The whole project is divided into iterations (sprints) of 30 days each. Selected list of system functions to be implemented during the next sprint. The most important condition - the immutability of selected functions during the execution of one iteration and strict adherence to the timing of the next release, even if his release will not be able to implement all planned functionality. Development Manager conducts daily 20 minute meeting, which is called - scrum, the result of which is to determine the function of the system implemented by the previous day, the difficulties encountered, and plan for the next day. These meetings allow to constantly monitor the progress of the project, quickly identify problems and respond to them promptly.
KANBAN - Agile software development-oriented tasks.
division of work into tasks;
use of the marks on the position of the tasks in the development;
restriction works performed simultaneously at each stage of development;
measuring cycle time (average time to complete a task) and process optimization.
decrease in the number of concurrent tasks significantly reduces execution time of each entry;
rapid identification of problematic tasks;
calculation of the average time to complete the task.
DYNAMIC SYSTEM DEVELOPMENT METHOD appeared as a result of a consortium of 17 British companies. The whole organization is engaged in the development benefits of this methodology, the organization of training courses, accreditation programs, etc. In addition, the value of DSDM has cash equivalent.
It all starts with a study of the feasibility of the program and its field of application. In the first case, you try to understand the suitability of DSDM for this project. To study the scope of the program is expected on a short series of workshops where programmers learn about that business, for which they will be working. It also discusses the main provisions relating to the future system architecture and project plan.
Then the process is divided into three interconnected cycles: the functional model cycle is responsible for the creation of analytical documentation and prototypes, the cycle of design and construction - for bringing the system into operation, and finally, the last cycle - a cycle of implementation - enables the deployment of a software system.
The basic principles on which the DSDM, it is an active interaction with users, frequent releases of versions, developers independence in decision-making and testing throughout the cycle works. Like most other agile methodologies, DSDM iteration uses short, lasting from two to six weeks each. Particular emphasis is placed on the high quality of work and adaptability to changes in requirements.
MICROSOFT SOLUTIONS FRAMEWORK - software development methodology proposed by Microsoft. MSF is based on the practical experience of Microsoft and describes the management of people and work processes in the development of solutions.
Basic concepts and principles of process models MSF:
a common vision of the project - all stakeholders and project participants just have to visualize the end result, everyone should be clear to the project purpose;
management of trade-offs - find compromises between project resources, calendar, and implemented features;
flexibility - a willingness to changing project requirements;
focus on business priorities - focus on the impact and benefits expected to receive consumer decisions;
promotion of free communication within the project;
creating basic version - fixing the status of any project artifacts, including program code, project plan, user manual, configure the servers and the subsequent change management, project analyst.
MSF provides proven practices for planning, designing, developing and deploying successful IT-solutions. Due to its flexibility, scalability and lack of strict instructions MSF is able to meet the needs of the organization or project team of any size. MSF guidance consists of principles, models, and disciplines for managing people, processes, technology elements, and with their tradeoffs, that most projects.
RATIONAL UNIFIED PROCESS - software development methodology, created by Rational Software.
The methodology are 6 basic principles:
component architecture, implemented and tested for the early stages of the project;
work on the project in close-knit team, a key role is held by architects;
early identification and continuous elimination of possible risks;
focus on meeting the requirements of customers to an executable program;
anticipation of changes in the requirements, design, and implementation of a development process;
continuous quality assurance at all stages of project development.
Using RUP methodology aims to iterative development model. Feature methodology is that the formalization degree may vary depending on the project needs. Can be at the end of each phase and each iteration to create all the necessary documents and to achieve the maximum level of formalization, but you can only create documents necessary for work, up to their complete absence. Due to this approach to the formalization process methodology is sufficiently flexible and widely popular. This methodology is applicable to both small and quick projects that due to the lack of formalization is required to reduce project time and costs, as well as in large and complex projects that require a high level of formalism, for example, with the aim of further certification of the product. This advantage enables the use of the same development team for implementation of different size and requirements.
Thus, there are many different software development methodology, they are not universal and describes different principles. The choice of methodology development for a specific project depends on the requirements.