In general, choosing a software development approach is more like joining a cult than making a technical decision. Many companies have never even tried to evaluate these methods, but simply blindly adopt the most popular methods, creating a variety of agile methods today. Therefore, we will use some standard metrics including function point, defect removal rate (DRE), quality cost (COQ) and total cost of ownership (TCO) to compare the samples of modern software development methods.
There are currently about 55 named software development methods in use and a larger number of hybrid methods. These development methods include the traditional waterfall method, agile, Rational Unified Process (RUP), Team Software Process (TSP), V-Model development, Microsoft Solution Framework, structured analysis and Design technology (SADT), Continuous Evolution Development (EVO), Extreme Programming (XP), PRINCE2, Merise and model-based development, and more other development methodologies.
The data itself comes from research on a number of customers who collectively use a wide variety of development methods. The prediction section uses the author's proprietary tools software Risk Master, a tool that creates a theoretical model of all 55 software development methodologies.
Introduction
The fact that more than 55 software development methodologies exist and that each has its followers is a strong message: None of the 55 software development methodologies are capable of handling software applications of all sizes and types.
Some of these methods are best for small applications and small teams, while others apply to large systems and large teams, some for complex embedded applications, some for high-speed web development, and some for highly secure military applications. Is it possible to choose the best way to apply to a variety of specific projects? is one method enough? Or should the enterprise use several methods based on the type of project they need to develop?
Unfortunately, because of the lack of quantitative data and comparisons between methodologies, choosing a software development approach is more like joining a cult than a technical decision. Many companies have never even tried to evaluate alternatives, just the most popular method at the time, regardless of whether this approach is applicable to the type of software they build.
When these software methods were evaluated, the results reminded me of the ancient Buddhist fables: Elephant. Different development methods have the fastest speed, the highest quality and the lowest total cost of ownership.
(In the original fable, The Blind man who touched the elephant's nose thought the elephant was like a snake.) The blind man who touched the elephant's side thought the elephant was like a wall. The blind man who felt the ivory thought the elephant was like a spear. The blind man who felt the tail thought the elephant was like a rope. )
Factor combinations that affect software projects
The ideal solution would be to traverse various sizes and types of software to evaluate a wide variety of approaches. However, because of the complexity of the combination, this is very difficult. So we only consider the main factors that are known to have an impact on software project results:
Because consideration of each factor can lead to too many combinations, this article will make some simplified assumptions so that we focus primarily on software development methodology rather than all other factors.
The basic assumptions in this article are: