The attention to the choice of software development methodology has increased recently: experience has shown that even small projects can hardly be successful without the right methodology, and today more and more developers, analysts and project managers are beginning to realize this. There are many methodologies, but everywhere we hear, read about Scrum, Kanban and Agile. And let's talk about their frames and the methods we hear less often, but they are also actively being introduced into projects and it is important to know about them. We’ve listed relevant methodologies, each of them may be useful to you. Let’s start:
Design thinking - a method of developing user-oriented products, services. The main object in this method is the user request. and only then the possibilities of technical implementation and economic opportunities. The same method in which creativity is superior to analytics.
Lean - another branch of a flexible methodology, which presumes the preservation of a high moral and functional state of developers. It’s expressed in:
Six Sigma - a more structured version of Lean than Kanban. The ultimate goal of the project is the satisfied with the product quality customer and this quality can be achieved through a continuous process of improving all aspects of the project, based on a thorough analysis of the indicators. Sigma’s concept focuses on troubleshooting. For this there is a 5-step process, known as DMEDI:
Six Sigma is very similar to Kanban, only with established stages of the task implementation planning, setting goals and quality testing.
PDCA - Deming cycle - Edward Deming laid down two options for the management cycle: PDCA (plan / Plan - do / Do - check / Check - correct / Act) and PDSA (plan / Plan - do / Do - study / Study - correct / Act). Since the cycle has no end PDCA actions must be repeated again and again in order to ensure continuous improvement of the process.
Crystal Clear - a methodology created for small teams of 6-10 employees. It also supports the principles of agile development, but has a little more specificity. The main idea, which is contained in the name, is that each team is a set of people with different levels of knowledge, different skills and experience.
That is why there is no universal approach for software development, it should be determined in the process of communication within the group. Roles, tools, standards are also assigned there. Then the group is taken as a unit and the same issues are resolved one level higher until the hierarchy reaches the customer.
DSDM (Dynamic Systems Development Model) - the dynamic systems development model was developed in the UK in the mid-1990s and is an evolutionary development of rapid application development (RAD). The basic idea is standard: when planning it is impossible to understand all the intricacies of development at the very beginning, so the whole process is a research work.
DSDM also has a division into teams, in each of which there is an authorized person for making strategic decisions. All interested parties can participate in the process: users, developers, customers, managers. Testing is carried out throughout the life cycle.
FDD (Feature Driven Development) - a process for scalability and repeatability that encourages creativity and innovation. Here are its basic principles:
Short iterative development cycles are preferred. This reduces the number of errors and allows you to quickly increase functionality.
FDD regulates the time that should be spent on each of the processes. Organizational activities in the cycle should occupy no more than 23–25%, while 75–77% of the time should be spent on the direct development, assembly, and testing of functions.
JAD (Joint Application Development) - a methodology aimed at maximizing employment in end-user development. This happens through meetings and joint workshops. JAD was invented in the 1970s by IBM employees and is aimed at the business as a whole. However, over time, this concept began to be successfully applied to software development.
Unlike the Waterfall approach, JAD leads to reduced development time, greater customer satisfaction and cost savings in market research. On the other hand, this requires a large client sample and the need for developers to work not with the strict requirements of the TOR, but with a constantly changing opinion.
XP - Extreme programming - the ability to conduct development in an ever-changing environment. Here are a few signs: