Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Discussion on the Application of Agile Development in Software Development

2025-03-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

In the field of software engineering, there have been many software development models, such as waterfall model, rapid prototyping model, incremental model, spiral model, evolution model, fountain model, RAD model, agile software development model, XP extreme model. So many models have their own application scenarios and scope of application, but I think the most practical development model is agile software development.

What is the idea of Chinese-style software development? From the point of view of most of the software projects I have come into contact with, they basically have one thing in common-that is, they have to be fast, and customers are all quick-tempered. They want to set up a project today and ask you to come up with the product tomorrow.

In the face of such fast-paced requirements from the company and customers, is there anything we can do? People summed up a set of efficient and high-quality development model-agile software development from production and life.

What is agile software development?

Agile development takes the evolution of users' requirements as the core and adopts an iterative and step-by-step approach to software development. In agile development, the software project is divided into several sub-projects at the initial stage of construction, and the results of each sub-project are tested and have the characteristics of visual, integrated and runnable. In other words, a large project is divided into a number of interrelated, but can run independently of small projects, and completed separately, so as to achieve the purpose of rapid development.

Or specifically, how is agile development implemented?

1. Split the large system into sub-projects.

In the past, we accepted the idea of demand research and analysis after the establishment of the project, various research reports and requirements statements after investigation, and then outline design (UE design, UI design, interaction design, database design, framework design) after the requirements were completed, and then detailed design after completion of the outline design. Such a cycle is too long, and when the progress moves to the next stage, when there is a problem in the previous stage, it will affect all stages of the entire project process.

Agile method divides a large system into sub-projects and subsystems into sub-modules to minimize the coupling between modules and increase their cohesion, so that we can divide the team into multiple groups. each group can work at the same time. In addition, when the requirements of one module change, the impact on other modules will not be too great, in order to achieve the purpose of reducing the difficulty of development.

In the construction of the real estate information network platform mentioned earlier, we split the system into external interfaces such as self-transaction, brokerage transaction, user rights management, construction committee, bulk assets, transaction management, platform background management, front-end of the website, and so on. After the demand discussion, each module is divided into objects, and information is only transmitted between objects through public variables. Minimize relationships with external objects.

Summary: break it into pieces and break it down

2. The team stays with the customer

In order to reduce the cost of communication, all members of our team drive directly to the customer site, communicate with customers at any time, and reduce the understanding deviation through face-to-face communication. In all stages of the project, we have been keeping zero-distance contact with customers, communicating and communicating at any time. Through this method, we can obtain the demand and solve the problem in the first time, reduce the possibility of error, improve the development efficiency and ensure the development quality. Moreover, in this way, it will be easier to gain customer trust, and customers can know the work status and progress of the project at any time. When you have a relationship of trust, the rest of the work will become easier and more enjoyable.

In the real estate project, we work at the customer site and hold regular meetings to discuss requirements and design. When there are some small uncertainties, team members will go directly to the customer stakeholders to confirm. There has been no significant change in requirements throughout the project cycle.

Summary: face-to-face communication with customers to reduce communication costs and promote mutual trust.

3. Communicate by modeling.

Use the model to communicate with customers, use the model to obtain user requirements, rather than through a large number of documents, writing documents is time-consuming and laborious, and the effect is not good. In fact, most of us do not like to spend a lot of time reading various words and parameters, while models will be more intuitive and three-dimensional. The model I am talking about here does not only refer to the prototypes we usually design, but includes use case diagrams, class diagrams, deployment diagrams, state diagrams, activity diagrams, package diagrams, object diagrams, prototype diagrams, effect diagrams, E-R diagrams, etc., using different graphics to express different dimensions of the product, making the product rich and three-dimensional.

In real estate projects, we use prototypes to discuss requirements with customers, use ER diagrams to communicate database design, use class diagrams to express product objects, use deployment diagrams to determine hardware deployment environment and network structure, use activity diagrams to illustrate information interaction flows, and use timing diagrams to express interactions between objects under the timeline. Through a variety of charts to express the product, the use of this method will be more intuitive, and when errors are found to be easy to modify, unlike the use of documents, modification is not convenient, maintenance is difficult, and it is not conducive to reading and understanding.

Summary: use models to communicate instead of documents.

4. Dare to meet the change

The market environment is the weather vane of the product, we should pay attention to the market at any time. In order to cater to the market, products have to change from time to time. Changes in requirements, changes in design... All kinds of changes make us worried, but as product people, we should also accept the change. Only with the rapid change of the product can we meet the future well. We welcome change, and requirements can change as long as they are reasonable, even during the development phase. Agile development allows change to make customers more competitive through change. Agile development uses diagrams to record requirements, and all code is modular, dividing different functions as much as possible and reducing correlation. This is why it can and dare to meet change.

It is mentioned that one of the important ideas of Agile is "the courage to meet change". Someone said, you must not have a technical background. Those who do the technology will discuss the change, and the last thing that is not allowed is to modify the identified requirements. When the product manager communicates with the technical staff, when talking about a complex operation, he often says, "are you sure you won't change it? if you're sure the requirements remain the same, I'll do it!" If you say yes, if you look for a technical modification, you will be blocking your way back. In fact, how can there be a need not to modify it? Don't we always meet the test of the market when we make products? Sailing on the sea, when the wind changes, our ship must always be ready to turn around and be ready to adjust. Change itself is to adapt. No change means no progress. But as product managers, what we can do is to use our wisdom and keen market insight to perceive the wind direction as much as possible, control the demand as much as possible, and do sufficient research at the initial stage of demand discovery. It is not a way to be afraid of change. It is necessary to make a flexible and adjustable plan at the beginning of the project. If the demand really changes, what should we do? this is the agile way of thinking. Who can stop the change of demand?

5. Deliver operational phased results as soon as possible and continuously

As I have said before, the failure of a project is usually not due to technical reasons, but mostly because customers have lost trust in us. We need to continue to give customers a sense of trust, one is our constant communication at the customer site, communication, so that customers feel our heat. Similarly, we also need to provide customers with corresponding results (runnable products) as soon as possible and continuously, so that customers can see our capabilities. Of course, another advantage of this is that the problem can be exposed early, do not be shy like a little woman, do not dare to see others, only early exposure, can be solved earlier, the later the problem is exposed, the more difficult to solve.

In the real estate project, after the content completed on the same day is compiled, the modified functions will be deployed to the platform server, so that customers can see the changes at any time and understand the progress of the project. If there is a problem, it can be exposed as soon as possible.

Summary: to reduce project risk, deliver runnable programs as soon as possible

6. face-to-face communication

The fastest way to communicate is face-to-face communication, in agile development, the most advocated way is to reduce which redundant, inefficient way of communication, with the fastest way to communicate directly. Let technicians, designers, customers and other team members work together to reduce the disconnection of information exchange and make communication smooth.

In the real estate project, when there are problems do not understand, need to communicate, are directly to me, I do not know directly to the customer. When I am away, my colleagues will also communicate directly with the customer, and anyone can get the demand directly.

Summary: direct communication, reduce intermediate links

7. Working software is the most important measure

No matter how many documents, no matter how many intermediates, there are no real results. What the customer cares about most is not the intermediate, but the fruit. For agile software development, working software is the most important measure of development progress. No matter how well you sing, it is better to do well, do things to the ground, real, down-to-earth is the core of agile development, do not play fancy fists.

Summary: making deliverable software is the core of the project

8. Maintain a constant development speed

Project development is a long-distance run, rapid acceleration in a short period of time, not a way of long-distance running, we should run continuously and at a uniform speed, so as to ensure that team members can persist until the end. Agile development provides sustainable development speed, so that not only team members will not be tired, but also help to set the project development schedule and control the development cycle.

Conclusion: the project development process is a long-distance run, don't sprint at the beginning.

9. Regular team optimization

We will carry out team building at regular intervals, criticize and self-criticize, and identify problems at work and bottlenecks that affect individual and team development. We find out the problems between the team and its members through communication and communication, and then make self-adjustment, through continuous optimization and upgrading of our own team, to create a team that can fight.

10. Use agile development tools together

CORNERSTONE is an one-stop collaboration platform for project management, which is suitable for major agile development teams. It aims to help enterprises manage intelligently and solve the pain points of R & D project management. It supports continuous delivery and integration, tracks project progress through various dimensions, and helps teams easily cooperate to achieve their goals.

It provides the team with agile, tasks, requirements, defects, test management, WIKI, shared files and calendars and other functional modules to help enterprises complete team collaboration and agile development of project management requirements; more Gantt chart, Kanban, mind map, burnout map and other multi-dimensional views to help enterprises to fully control the project situation.

At the same time, CORNERSTONE also has its own file storage and sharing, document collaboration functions, and can achieve real-time communication between teams. In other words, by choosing CORNERSTONE, you don't have to pick document collaboration tools, file storage and sharing tools, and intra-team communication tools.

In addition, not only product research and development, but also sales, operation and administrative examination and approval can be managed by CORNERSTONE. The use of a unified management platform is undoubtedly a great reduction in management costs for enterprises.

Summary:

If project managers can make good use of agile development ideas, it is equivalent to having magic tools in the game world and mastering the art of cooking in the food world. There are many other ideas in agile development, but some ideas I do not quite agree with, such as using "test-driven development", which is different from abroad, there is CMMI in foreign countries, which has very high requirements for testing. In fact, testing is the quality inspection department and quality control department, with high authority and more respect and recognition for testers. In China, the company's multiple development and light testing, from the salary of your company's testers and developers, you can see who is more valued. It is difficult to get testers to drive development in the current situation. Sometimes I think that our predecessors have summed up so many good ideas that we should really learn more, see more, and use more, but the ideas we have brought are not necessarily applicable. Each kind of thinking has its own growth soil. It is not as long as more fertilizer, more watering can grow good crops. Sometimes, it is necessary to see whether the habits of plants are more suitable for our environment. CORNERSTONE can now be used for free if you apply for teams with less than 20 people.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report