Agile Software Development vs. traditional Software engineering

Source: Internet
Author: User

The concept of software engineering has been put forward in the past 1968 years, and it has evolved into a discipline, and the methods are endless. Here, we discuss the similarities and differences between agile software development and traditional software engineering. When it comes to agile software development, this kind of method is used in practice very early, but in 2001, some cattle people made an "agile manifesto", and then clarified the method of agile software development.

Individuals and interactions: higher than processes and tools. Working software: above exhaustive documentation. Client cooperation: above contract negotiation. Response change: higher than following plan.

For us, the most important thing is to meet customer needs through early and continuous delivery of valuable software. We welcome changes in demand, even in the late stages of development. Agile processes can harness change and maintain a competitive edge for customers. Often deliver software that works, from weeks to months, the shorter the time scale the better. Business people and developers should always work together during the entire project. Software development revolves around high-spirited people, providing developers with the right environment to meet their needs and believing they can accomplish their tasks. The most efficient and effective way to communicate in a development team is to talk to each other in person. The software that can work is the primary measure of progress. Agile processes promote sustainable development. Funders, developers and users should always maintain a constant rhythm. Continuous pursuit of superior technology and good design will help improve agility. Simple-the art of minimizing the amount of work is essential. The best architectures, requirements, and designs come from self-organizing teams. Every once in a while, the team summarizes how to be more efficient and then adjusts its behavior accordingly.

In what context does agile software development occur?

With the development of software industry, the scale of software system is more and more large, the complexity is more and more high, development cycle and development cost will face great challenges, at the same time, the reliability of software can not be very good guarantee. To solve this series of problems, the software industry began to learn from traditional engineering, management methods.

The traditional software development models represented by the "waterfall model" are emerging, and they provide a set of specifications for each phase of the software life cycle in order to make the project progress to the desired goal. The core stresses that in software development activities, all activity plans, schedules, and deliverables are aligned directly or indirectly with requirements, while stressing that software requirements must form "documentation". The original software (60-70 years of 20th century) were large research institutes, military, and NASA, and they needed software systems for scientific computing, military projects, and lunar missions, which were quite large and demanding in terms of accuracy. From the 1980s to 90, software entered the era of desktop software, the cycle of development was shortened significantly, and various new methods began to enter the practical stage. But the medium of software release is floppy disk, Cd,dvd, do a release need big economic investment, can't update version frequently. In the internet age, most of the services are implemented through the network server side, there are various convenient push channels in the client. Due to the speed and breadth of network retransmission, knowledge acquisition is easier, and many software services can be implemented by a small team. At the same time, the pace of technology updates is accelerating, and the era of a large team developing 2-3 of years ago with a fixed technology has passed. Changes in user requirements are also accelerating, and the development process must keep pace with these fast-changing rhythms.

This program-based lifecycle software development approach has greatly contributed to the development of the software industry, but today it is not well adapted to society. In order to adapt to the modern business environment, the corresponding agile software development methods are presented.

And how does agile software development work?

Individuals and interactions outweigh processes and tools

In fact, it is more attention to people's communication, rather than document constraints. Agile Development emphasizes the position of attention to "people", and the philosophical thought behind it can be traced back to Kant's "man is purpose". At the same time, advocate face-to-head communication and customer participation in development, make up for lack of documentation and create the problem of information flow, think that developers, developers and customers, mutual cooperation, mutual trust, respect each other is to ensure the success of communication requirements.

Seemingly an esoteric algorithm can save a lot of hardware pressure and expense, but in today's more human-resource-intensive environment, easy-to-read and easy-to-expand procedures to save manpower will bring more benefits to the company. Many smart programmers may find a fantastic way to save 20% of the hardware overhead, but they make the source program difficult and difficult to maintain, ostensibly they save a lot of hardware overhead. But the financial facts tell us that if the program is simple and easy to scale, we will save at least 10% of the manpower overhead, which would be a much greater savings. At the same time, the career of software development also determines the number of small but capable team's efficiency and output greater than the bloated, chaotic large team. Agile development generally applies to 20-40 people, or even less.

Work-ready software trumps all-encompassing documentation

Unlike traditional software development models, customers can only truly experience the system after it has been developed. Agile programming improves customer feedback by requiring continuous delivery of available software, and the shorter the cycle, the longer the development cycle, and the time it takes to change functionality and gain user acceptance.

Available software allows customers to more intuitively put forward more suggestions and requirements, different from the industrial society of the use of pipelining, large-scale production model, the information Age more emphasis on the rapid response to user needs. The low cost and high reliability of standardized production can not directly guarantee the high market share. On the contrary, the user needs of the delicate grasp and rapid response is user-oriented service company Lifeline.

Customer cooperation is better than contract negotiation

Agile development requires that during the project, business people and developers must work together, participate in development, interact with efficient information platforms, and support them in ways that reduce ambiguity and communication. The agile approach completes the transformation from attaching importance to text to emphasizing dialogue, from attaching importance to writing to valuing understanding.

The simple truth is that users cannot effectively describe their own needs. Just like the iphone, before Steve Jobs did not launch the iphone, users didn't know they needed a smart machine, and more accurately they couldn't describe the needs of their smartphones, they didn't know what they wanted to touch, what they wanted to do on the phone, in other words, the user didn't know what was going to happen, What can not be achieved, how the implementation will have a good chemical reaction. That is one of the reasons why companies such as Nokia and Motorola have failed. They are not without the market sector, not without market research, user needs analysis, the problem is that the general user in the absence of relevant knowledge and guidance of the situation is unable to effectively describe their own needs. This flaw in the market competition with the pace of the acceleration appears to be more deadly.

Responding to change is better than following plan

The slogan for Agile development is embracing change, which is to welcome changes in demand, even in the late stages of project development. Be good at leveraging changes in demand to help customers gain a competitive advantage.

The information world is developing so fast, the start-up company is countless, an idea of success, will lead a craze, occupy the opportunity to get more benefits. The most important feature of modern society is diversification, with the so-called "internet thinking" is "to center", specific to the individual should be open mind. This social reality response in software development is the cost of turning ideas into actual costs becoming quite low. But at the same time, the fast-changing business environment also puts high demands on executive power, and the key indicator of execution is the rapid response to change.

After all, agile software development is a software engineering method adapted to the real world, I think we can not focus on the documentation, confined to the individual, we should also learn from Agile software development How we as a part of society how to better integrate into the real world.

[1] https://zh.wikipedia.org/wiki/%E6%95%8F%E6%8D%B7%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91 Wikipedia

[2] http://www.cnblogs.com/xinz/archive/2011/04/27/2031118.html Blog Park Bowen

[3] Workshop tips

Agile Software Development vs. traditional Software engineering

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.