This blog is based on the software development life cycle and scope management of the two different aspects of the traditional software development methods and agile software development methods to analyze and compare, hope to share with the reader.
Traditional methods:
In essence, the traditional software development method is a software development architecture, and its development process is carried out through a series of stage sequence. Typically, this approach does not represent and describe the user's needs well, and there are documents that need to be perfected throughout all phases of the project's development cycle.
Agile methods:
Software industry rapid development, software technology innovation, customer expectations change rapidly, considering the need to overcome the shortcomings of traditional development methods, agile development in the past decade, with its flexibility, ease of operation has been widely concerned about the software industry. Agile methodologies enable agile development methodologies to deliver business value as quickly as possible by using iterations, early testing, and customer collaboration to address unstable requirements and evolve throughout the project's development cycle. Therefore, in the past few years, agile software development has become a very promising method of complexity, and proposed a variety of agile methods, including the widely used extreme programming (XP).
Comparison of traditional methods and agile methods based on software development life cycle method
Software Development Life cycle ( SDLC:Software Development life Cycle) is a structured framework of all the processes, activities, and tasks of software development, and its general steps include: identifying problems, feasibility analysis and development plans, gathering requirements, Analysis and design, coding development, testing, installation, maintenance.
The software development Life cycle method, also known as the structured system development method, is the tool of this concept, and the software development life cycle model is obtained. Through the software development life cycle model, the whole process of software development can be seen clearly and intuitively.
1. Traditional software development life cycle model
The traditional pattern phase is clearly defined, the detail requirements of the project requirements are given before development, and the requirements of the user are clear, and the correct next results can only be obtained with the correct requirements. Corresponding to this, each stage does not have the corresponding document, is unable to carry on the next stage work. Customers will not participate in the development process. This also often leads to a gap between the final software development and the customer's ideal software. Waterfall mode is the most typical representation of traditional methods, and its life cycle is shown in Figure 1 .
In the actual software development process, the requirements of software often change, and waterfall development model is difficult to adapt to this change. In view of this shortcoming of waterfall model, there are spiral model and unified process development model, but still can not adapt well to the fast change of demand.
2. Agile Development Life Cycle model
Unlike the traditional model, agile development takes the user's requirement evolution as the core, and uses the iterative and gradual approach to software development. All iterations (regardless of length) have the same pattern, which is part of the Agile development Law. In agile development, software projects are cut into multiple sub-projects at the beginning of the build (getting the approximate requirements and architectural models), and the results of each subproject are tested for visual, integrated, and operational use features. As a result, the life cycle of agile development is accomplished by multiple iterative processes, with repeated analysis, design, coding, and so on in each iteration of the iterativeprocess, as shown in 2 .
Agile methods allow changes to occur anywhere, anytime. Extreme Programming (XP) is the most typical and perfect method of agile development. XP , as a near-spiral agile development method, breaks down the complex development process into a relatively simple cycle, through positive communication with the customer, feedback and a series of other technical methods, This process allows developers and customers to be very aware of the development progress, changes, pending problems and potential resistance, etc., and adjust the development process according to the actual situation. XP life cycle 3 shows that it first creates a candidate architecture and then guides the entire development process through a simple description of how the entire system works, without requiring detailed architectural design in advance.
3. Comparative discussion
Traditional methods in the early stages of development and customer communication, to obtain the most clear and detailed requirements, its development software process is often the customer and the development team's interest game process, so in the development process of customer participation is not high, the main emphasis on planning, process and documentation. The agile approach to complex projects with unclear requirements requires that customers and development teams develop together to be successful in a shorter time and lower budget, focusing on teamwork, customer collaboration, and embracing change.
In conclusion, we can think that agile method is a kind of development method which combines the advantages of many traditional methods, it is a new idea, but this does not mean that it is not necessarily the best choice for all software development. There are, of course, some problems with agile methods, such as the fact that code is often used to replace documents in agile methods, which in many cases greatly reduces the readability of the system. This requires that we be able to improvise and adopt more pragmatic ideas and methods.
Ii. comparison of traditional methods and agile methods based on scope management
Scopes are used to restrict and control the work included in the project. The scope of good definition and good governance is important for project cost effectiveness and software development timelines. The scope of the project mainly involves two aspects:
① product Range Definition: Product range features and functions are included in the product or service.
② Scope of work: Project work is completed in order to deliver a product with special features and functions.
Project scope management includes procedures to ensure that the project is covered by the overall work requirements and individual work requirements, thereby facilitating the successful completion of the project work. There are many possible problems with ambiguous requirements, unavailable resources, changing environments and inflexibility in the software development process, and scope management is required in the project, which can lead to project failure if not carefully managed. Scope management mainly consists of the following five processes:
① Start-up phase: Urge the project management organization to begin the next phase of the project.
② Scope Planning Report: Write a written report as a basis for future project decisions.
③ scoping: Break down major project work breakdowns into smaller, easier-to-manage units.
④ Scope Verification: Formally recognizes the scope of this project.
⑤ Range Change Control: Control of changes in project scope.
1. Scope management of traditional methods
In traditional software development methods, the scope is defined as the complete requirements specification for a software project. It contains detailed requirements at the beginning of the project, which need to be analyzed in the later stages of the development process. However, the documentation that consumes the developer's time and effort to complete does not support the changes that may occur during the late stages of the development process. These uncontrolled changes often lead to range creep (demand-driven changes during product or project development, bring some product features that start unplanned, have an impact on product quality or software development timelines), and the processing range creep requires different tools and techniques, which can make the project overdue and out of budget.
traditional methods Create a work breakdown structure ( WBS) to break down project deliverables and project work into smaller, more manageable parts of the process. When the scope changes, traditional methods need to review the entire work breakdown structure, it is difficult to make good and fast adaptation based on the specific change, which will inevitably affect the cost, resources, quality and timetable of the project. Therefore, to avoid project failures, traditional methods need to define and manage their scope very carefully.
2. Scope management of Agile methods
Agile approaches embrace changes in the late stages of the software development process, i.e. accepting project-wide fluctuations. Therefore, the project scope of an agile approach often needs to meet high-level requirements. The scope of an agile approach is iterative and accepts incremental changes, which are validated and controlled by customers who are responsible for accepting or rejecting features that are completed during each iteration.
managing scope creep is a very important aspect of agile method scope management. In the software development process will continue to produce some changes, which may affect the entire project changes, agile methods in the scope of management technology will manage these uncontrolled changes, which to a certain extent, to ensure the stability of the software project in the development process. Unlike traditional methods, the WBS is not created in the Agile method .
3. Comparative summary
The scope defines the boundaries of the software development process. Scope management is an important factor in the success of agile methodologies and traditional approaches to complete the process. The scope management in agile methods is roughly compared to the traditional approach in 4 .
Scope Management In an agile approach allows for changes and can reduce unnecessary changes, following the iteration plan in scope, and requiring high levels of requirements to be met. With these features, the scope management of agile methods ensures that software schedules are available and software products can be delivered in a budget with good quality.
the uncontrolled changes in the scope management of traditional methods lead to range creep, which often causes projects to exceed budgets and disrupt software development timelines. At the same time, the WBS needs to be created in the traditional approach , and the scope of management needs to be defined in detail in a comprehensive document.
Based on the above comparative analysis, we can think that agile method is a better alternative to traditional methods in terms of product cost, project resources and software development schedule.
Reference documents:
[1] Zhang Zhili . Agile and tradition of software development life cycle method comparison [J]. software and hardware development , (+): 32-37.
[2] Rehman, i.u. & S.ullah & A.rauf & A.a.shahid. Scope Management in Agile Versus traditional software development Methods [C]. New york:nsec ' Proceedings of the National Software Engineering Conference, 2010.
[3] Wang Chong . the comparison and teaching of agile development and traditional waterfall model [J]. Research and discussion , (4): 61-62.
[4] shawky, d.m Traditional vs Agile development A comparison using chaos theory[C]. Software Paradigm Trends (ICSOFT-PT), 9th International Conference on,.
[5] http://baike.baidu.com/item/%E8%8C%83%E5%9B%B4%E7%AE%A1%E7%90%86
[6] http://baike.baidu.com/item/%E7%89%B9%E5%BE%81%E8%A0%95%E5%8F%98
[7] http://baike.baidu.com/view/259207.htm
[8] http://baike.baidu.com/view/47193.htm
Comparison of traditional software development with agile software development