posted by: Houssam
Today, choosing a software development method is more like joining a cult than making an appropriate technological choice. Many companies do not even try to evaluate methods but choose the most popular, which these days are one of many agile variants. This paper uses several standardized metrics such as function points, cost of quality (COQ), the total cost of ownership (TCO), to compare some contemporary software development methods.
There are some 55 software development methods/Frameworks identified and used today and a greater number of hybrid methods. For example, the traditional cascade approach, different agile flavors, Rational Unified Process (RUP), Team Software Process (TSP), V-method, Microsoft Solutions Framework (MSF), Structured Analysis and Technical Design (SADT), Evolutionary Development (EVO), Extreme Programming (XP), PRINCE2, Merise, development through modeling, and many others.
The fact that there are 55 software development methods, each with its own set of faithful practitioners, attests to the fact that none of them is suitable for all types of applications.
Some frameworks/methods are best suited for small applications and small teams, others work for large systems and large teams, others are better for complex embedded applications, while some are suitable for hyper-fast web development, While others apply to highly secure military applications. How is it possible to choose the best method for a given project? Is a method sufficient or does it require firms to use several methods depending on the nature of the projects they develop?
Unfortunately, due to the lack of quantified data and comparisons of methods, the choice of a method of development is more akin to adherence to a cult than to a technological choice. Many companies do not even try to evaluate alternative methods, but rather adopt the most popular method of the moment regardless of whether or not it is suitable for the types of software they develop. The evaluation of software development methods recalls the ancient Buddhist parable of the blind elderly and the elephant. Some methods are the fastest, others have the best quality and others the lowest total cost of ownership.
It is easier to examine the impact of the methods by keeping constant size, language, complexity and team maturity. There are unfortunately too many methods to include them all, so I will present the results for 10 of the most used in the United States
PRINCE2 brings a true vision method, with a typical organization of control, a distribution of the roles in the control of a project and a division of project in phases with formal milestones of validation. On the other hand, PRINCE2 does not provide any details on the knowledge that the project managers must possess, and therefore does not validate this knowledge and will have all its usefulness in an organization that has adopted or wished to deploy PRINCE2 as its method of project management. (Wideman.R, 2002)
PMBok (Project Management Book of Knowledge), as its name suggests, is a collection of knowledge about project management, in general. The PMP not only validates the knowledge of the processes described in PMBok but also the mastery of knowledge constituting the state of the art in the project management, irrespective of the method that will be chosen.
The two frameworks, PRINCE2 and PMP, therefore address very different contents but, as a result, are relatively complementary. The choice must, therefore, be made individually for each person according to several criteria. (Siegelaub.J, 2004)
The term “agile” is ambiguous and there are many variants of agility. the term designates projects that adopted the Agile Manifest in its 1997 version, made use of end users as a source of requirements, used user stories, segmented the project into separate, individually developed iterations, and Have used the Scrum concepts and daily report meetings. Minimizing the production of paper documents and accelerating development are the primary goals of agility.
(smart sheet, 2016) (Moe.N, 2010)
Capability Maturity Model Integrated (CMMI) of The Software Engineering Institute’s is a recognized method for assessing the level of sophistication of software development. CMMI 1 is the first of the 5 CMMI levels and means a chaotic development. The sequential term refers to traditional software development practices beginning with a specification of requirements and proceeding sequentially by steps completing each step completely before the start of the next.
The third level of the CMMI is referred to as “adjusted” and refers to a fairly regular and well understood set of development activities. The iterative term precedes agile methods but also means the division of applications into distinct pieces that can be built individually.
CMMI level 5 is the highest level and is referred to as “optimization”. The teams that reach this level are very sophisticated and rarely make serious mistakes. The spiral method was introduced by Dr. Barry Boehm. It shares similar concepts with agile methods such as segments that can be developed separately. The segments recommended by the spiral method often last longer than the agile iterations and are preceded by prototypes.
This method is part of agile methods but has some unique features. The most notable of the features is to wait until the unit tests have been developed before beginning to encode the features. The XP method also makes use of reviews or inspections. Sometimes programming in pairs is used in XP but not always, so it is a special case. The quality of the software is a primary goal of XP.
The object-oriented method is one of the oldest methods presented here and has been very successful. It has also led to the creation of programming languages such as Objective C. This article uses analysis and object-oriented design with use cases. The C ++ language is also an object-oriented language. Analysis and object-oriented design are somewhat different from conventional methods and require a learning curve.
The concept of binomial programming comes from agile methods but is not limited to them. In this article, binomial programming is used with iterative development. The basic idea of programming in pairs is that two people code each one in turn. When one code, the other observes and suggests improvements. Sometimes, the pair only uses one computer in the middle.
Proof of adequacy: The concept of proof of adequacy is the application of mathematical proofs to the algorithms that will be included in a software. Obviously, the algorithms must be formally expressed in such a way that they can be proved. It is also evident that the person performing the proof has a great mathematical expertise so that he can work with complex equations and algorithms.
The RUP method comes from Rational Corporation which was acquired by IBM in 2003 and is, therefore, an IBM technology. The RUP method contains aspects of both the iterative method and the object-oriented method. Since the RUP method belongs to IBM there are many tools that support it. Usage cases and other visual representations are present in most RUP tools, but the author’s clients also add other tools such as decision tables.
The TSP method was developed by the late Watts Humphrey who was the development director at IBM and who subsequently created the evaluation method used by the Software Engineering Institute (SEI) in his Capability Maturity Model. TSP is very focused on the quality of the software. All bugs are documented, one makes use of inspections and quality is the main goal of bugs slow development. The TSP method has some unusual aspects such as self-managed teams and a coach acting as a manager. TSP is now approved by UTE.
It is used for large-scale projects, such as database migrations, it is vital to have a cohesive and structured project framework in place. This foundation ensures that projects are carefully planned, roles and tasks are clearly identified and defined, and that the thousands of crucial details are addressed for a successful migration. It has been used successfully on numerous IT projects. This adaptable and robust project framework provides a comprehensive structure that assists in guiding the project from the initial planning stages until after the project has been completed
There are many results to be evaluated. However, for working with hundreds of clients, the most important topics for development and executive directors are:
- Speed metrics
- The Endowment
- The effort
- The cost
- Quality metrics
- The potential for anomalies
- Efficiency in repairing anomalies (ERD)
- Anomalies presented during delivery
- Major anomalies
- Economic metrics
- Total cost of ownership (TCO)
- Cost of Quality (COQ)
For small applications where the speed of delivery is the most critical factor, XP, agile and TSP are very good choices.
For complex applications requiring FDA approval, handling sensitive armaments systems or financial data, a very high level of quality is mandatory. In these cases, TSP, CMMI 5 and RUP are the best choices and XP is a possible alternative. Agile was used for this type of applications but with so many contortions that the method is no longer recognizable. Quality is not the strong point of agile.
For applications that can last more than 10 years or require frequent improvements and therefore a well-designed internal structure, TSP is the best choice while CMMI 5 RUP and XP are good alternatives. Agile has not been successful in terms of maintenance and improvement over the long-term
Project management skills are divided into nine sets of knowledge described in the Project Management Body of Knowledge (PMBOK) published by the Project Management Institute (Reference Document 3). The basic human resources management skills assigned to a project were discussed in Section 3.
The following table summarizes the nine sets of knowledge and related objectives.
|Project Integration||Coordinate the various components of a project by assuming project planning, execution, and change control functions in accordance with quality standards to balance the time, cost and Quality of the project.|
|The scope of the project||Creates a quality product by allocating the required amount of work and controlling changes within the scope of the project.|
|Duration of the project||Ensures that the project is completed within the prescribed timeframe.|
|Cost of the project||Ensures that the project is carried out within the budget allocated.|
|Quality of the project||Ensures that the product meets the needs.|
|Project Human Resources||Demonstrate quality leadership to ensure quality teamwork.|
according to PMBOK
|Disseminate quality information about the project.|
|Project Risk||Identify and control the risks associated with the project|
|Procurement||Ensure quality services or products.|
Permanent organizations should promote the concentration of Decision makers on what to do and the efforts of project managers on how to do it. To master this process, it is necessary to define the objectives of the projects, to allocate the right resources and to choose the persons responsible for achieving these objectives. He Time and costs must also be defined. Without the implementation of this process, the costs will be exceeded, the actors will not know what specific tasks they have to realize when they have to do it, and at the end of the day the organization Plus what are the true finalities of the projects and what is the meaning. Over the past two decades, the job of project manager has been Certification systems. 40 countries have established a common frame of reference comprising 46 criteria for assessing the knowledge and experience of Project managers. This recognition ensures that constituents Resources to professionals who have demonstrated their ability to Projects and to achieve the objectives.
|Rehman, A. (2007, July). Software Project Management Methodologies/Frameworks Dynamics” A Comparative Approach”. In Information and Emerging Technologies, 2007. ICIET 2007. International Conference on (pp. 1-5). IEEE.|
Siegelaub, J. M. (2004, January). How PRINCE2 can complement PMBOK and your PMP. In PMI global congress proceedings.
Wideman, R. M. (2002). Comparing PRINCE2® with PMBoK®. AEW Services, Vancouver, BC, Canada.
Duncan, W. R. (1996). A guide to the project management body of knowledge.
Moe, N. B., Dingsøyr, T., & Dybå, T. (2010). A teamwork model for understanding an agile team: A case study of a Scrum project. Information and Software Technology, 52(5), 480-491.
T.H. Davenport, Process Innovation: Reengineering Work through Information Technology, Harvard Business School Press, 1993.
Irene Astuti Lazarusli, S.Kom, INFORMATION SYSTEM DEVELOPMENT METHODOLOGIES: AN OVERVIEW.
Eastham, J., Tucker, D. J., Varma, S., & Sutton, S. M. (2014). PLM software selection model for project management using hierarchical decision modeling with criteria from PMBOK® knowledge areas. Engineering Management Journal, 26(3), 13-24.