Scrum
Scrum is a framework for agile development. It refers to the role, activities, and outputs that need to be involved in an agile development process.
There are three roles:
- Team leader: As a customer representative, determines the product direction and vision, defines the content, priority, and delivery time of the product release, and is responsible for the product ROI. Without Ba, you can act as a BA to avoid the waste caused by excessive production and rework due to demand issues.
- Scrum master: mainly responsible for removing team barriers. I think he can develop public components to solve complicated problems and avoid unnecessary actions. Through the establishment of communication mechanisms, the development process avoids waste caused by improper processes. By coordinating the development plan, we can avoid the waste caused by waiting.
- Team: a complete software development team should include sales, pre-sales, users, R & D, testing, after-sales and other related personnel, because any role may lead to software development failure. The most important thing for the team is to strengthen communication so that information can be accurately transmitted to everyone in the team.
I think the core of scrum is to continuously improve through agile review to eliminate waste. Because there are a lot of small problems encountered in software development, resulting in a lot of waste, so we must review agile and constantly summarize the habits and problems encountered by the team, solve these problems in the next iteration of development.
XP
XP is a good practice for agile development.
- User story: describe business requirements from the user's perspective and application scenarios. The format is as... I can... to facilitate... for example, as a network administrator, I can check the CPU utilization of each device in real time so that I can detect faulty devices in real time.
- TDD: Test-driven development. By first writing test code and then writing program code, we can clarify coding ideas and write effective code. The reason for effective code is that sometimes the writing method is used, you will find that no other method will call it, such as extra modifiers (getter) and accessors (setter ). I strongly recommend that you use TDD for business service layer code development.
- Continuous integration: continuous integration of versions through automated build tools (CC) to quickly feedback integration issues.
- Pair Programming: two programmers use one computer for programming. One person is responsible for coding, the other is responsible for thinking, and the students who need to pair before writing express their own programming ideas, so as to spread the excellent habits of every programmer to the entire team, but unfortunately, Pair programming has a high requirement on programmers. It is better that two programmers have a certain level of ability, and the ability is similar, if a competent programmer and a low-performing programmer pair, the efficiency may be very low.