Over the past decade, new ideas for software development have been presented in the form of a manifest called the “flexible manifest for software engineering.” The latter represents four meanings and twelve principles. The aim of our study is to analyze a flexible manifest and extract from it principles that really were principles in accordance with the identification criteria, which will be presented in detail on a new page.
This analysis is based on analytical research based on the fundamental principles of software development presented in Normand Segin’s dissertation. Segin developed a framework for comparing the principles proposed by various authors, and subsequently evaluated them using this framework.
Flexible development is a new school of thought. It has not been fully and objectively investigated in the literature. Most of the articles and books on agile software have been written by authors of the agile manifesto, who also promote their own agile methods. As a result, their work does not allow an objective analysis of the strengths and weaknesses of agile software development. Most agile methods were originally developed for small teams. In this study, we seek to analyze value-based software and the agile manifesto in theory, more specifically at the level of fundamental principles.
Software engineering provides the foundation for all so-called flexible methods, such as eXtreme (XP) programming and Serum. We analyzed the principles of a flexible manifest and later found that the principles related to each flexible method are also presented in the literature. So, we decided to analyze them.
Our approach to identifying flexible systems requires a careful definition of several terms. There is confusion regarding the terms “concept”, “software”, “value”, “practical” and “method”. A large number of definitions stand out in the literature. We have taken some of these definitions and will present them in this part of the text.
At the beginning of a software engineering study, it is important to identify the elements that make up the conceptual framework. In our study, the term “principle” is the main component. We will use the following definition of the term principle: “A fundamental judgment of discipline, formulated in a prescriptive form (rule), in the source of actions that can be verified by its consequences and experience. As Seguin points out, at first the principle will be a sentence consisting of concepts. One concept cannot be considered a principle. The first sentence means that a principle cannot be deduced from another principle. The principle is essential to the practice.
In this chapter, we have defined what we mean by the terms “concept,” “principle,” “value,” “practice,” and “method.” Then, we briefly introduced the two main elements of our conceptual framework, namely the areas of knowledge and software development activities. These elements will be used in the description of our research methodology, presented in the third chapter. But before, in the second chapter, we will provide a brief overview of agile development.
The purpose of this chapter is to present the course of flexible thought, its origin, and various methods. In our work, we focused on the three most common agile methods in recent years: eXtreme Programming, Serum, and Dynamic Software Development Method. In addition, we want to point out that the roots of agile methods come from traditional software development, to which new methods or methods have been added. Let’s start by explaining the term “agile.” Subsequently, based on our review of the literature, we emphasize the origin of the flow of flexible thought.
Certain flexible values, principles and practices have already been implemented by a large number of development groups without their complaints. Indeed, flexible methods uniquely combine values, principles and practices that support a flexible philosophy and by adding new ideas. A fundamental element of a flexible approach is the return of the individual to the center of the process so that the process becomes an instrument, not an end. Man is the most important variable in the success of a software project. This is one of the most important paradigms that the agile approach is trying to promote.