Use XP (extreme development) in messy small projects)

Source: Internet
Author: User

Assume that a project has the following conditions:
(1) The requirement is unclear and there is no complete and detailed Requirement Description. The user does not provide standard requirement documents.
(2) The technical architecture clearly requires J2EE, and struts, tile, EJB, Dao, OJB are required. The database is Oracle 8i/9i, and the integrated development tool must be wsad, the system has a large amount of computing and has clear performance requirements.
(3) The team has 6 members and three are new students who have just graduated from college. They are not familiar with the above technical architecture and development tools. The other three cannot participate in full time. Project SA can only participate in the first week (5 days ).
(4) the delivery time must be completed within three weeks. However, deliverables only need to: SRS (Software Requirement Description ),Source code/Installation package, installation documentation, no need to outline the design, detailed design and other documents.
(5) The project scale is small, and the business needs are about 12, of which 5 are very simple requirements (add, delete, modify, without special computing)

Based on the above situation, you cannot directly reject the attack based on the approximate judgment. First, the risk is identified (the actual risk management plan is not shown ):
(1) The scope of the project is unclear, especially the requirements of end users.
(2) No change mechanism or sow (Statement of Work)
(3) No clear acceptance conditions
(4) There is no suitable standard software process, development model, and life cycle suitable for this project.
(5) the above technical architecture has not been verified and tested, especially OJB.
(6) The project team does not have sufficient development experience for the above technical (J2EE) requirements, and the experienced SA time cannot be guaranteed.
(7) The project team is unfamiliar with the wsad specified by the customer
(8) testing server performance may not meet testing requirements
(9) key resources (SA and the other two) cannot confirm the time for participation
(10) The team is brand new and has not been developed in parallel with each other.
After identifying risks, a response plan is developed for each of them.
Here, we can report to the manager that it is impossible...

Then, based on the project requirement decomposition WBS (work breakdown structure), the SA is used to estimate the duration, and the development time for each usecase is estimated. Of course, it is estimated by people with relevant development experience. Get the total effort and price.
A schedule is listed based on the final delivery time and multiple important milestone are set.

Come back to review your project plan and take a closer look at schedule. Is it possible? Don't forget, we can't work overtime on Saturday or Sunday ,-_-.

In any case, this is a messy project, with great progress, resources, risks, and problems in all aspects. if you complain that the problem cannot be solved, do it on your own.

Looking back, we have to continue to do the following:
Step 1, Control requirements (scope ). Does the customer have no requirement description? We write the original document based on the requirements provided by Alibaba Cloud, and make the UI prototype at the same time. What we don't know about is assumption. Submitted to the user for review. Unnecessary features are cut off through negotiation: The time is so short, the architecture and performance requirements are high, how can we make so many demands? Soon the demand was under control, and our functions were very clear.
TIPS: There are two reasons for this project to be able to control the demand: (1) Use the requirement prototype development and quickly organize the UI based on your understanding of the demand. (2) carefully write SRS and write some assumptions clearly to avoid future problems.

Now it's time to go back to the topic: XP (eXtreme Programming.
(1)No plan, then plan every day.Now I have written a project plan, but how can I track it in three weeks? Therefore, create a activities list every week, plan every day, and track every day! Assign tasks to individuals and define related interface personnel.
TIPS: (a) assigning and tracking new tasks every day is too intense and stressful for team members, so it is not suitable for long-term project use. Generally, I will talk about the time period in advance. This method is used only in key phases in a long project.
(B) Daily plans require PM to be very familiar with work tasks and technical aspects; otherwise, it will be a blind command! The danger is very high. You may all be scolded for being behind team members, and you think you have made a very good arrangement. Therefore, the SA or senior enginneers should be consulted first, and the approval of related members should also be obtained during planning and allocation. Do not run commands directly.
(C) rationally treat delay. There are two days of delay in the process. Don't try to work overtime or other preliminary means to catch up. Generally, it will get slower and slower. Think about other solutions.

(2)Continintegration: UsedSmoke TestingThat is, the smoke test ensures that there is a runable version from the initial stage of the project to the final delivery. Designate a configuration administrator to deploy the latest version on the test server every day to ensure that the configuration can be compiled and run.
TIPS: the configuration management skills cannot be run in the initial stage before it can be run.

(3)Simple Design: Actually, I don't want to design in detail, because Sa only takes one week to participate. How can I do this? For example, create a table: product in the database, and run the table from the front-end JSP, tile-> Struts-> EJB-> OJB-> dB. You can add the table on the page, delete and update. Well, Dao is missing in the middle. You can add it later. This example is used as an example to help other team members learn and familiarize themselves with it.
Experience: The method is mandatory, but it does have a good effect. During the SA's example, other people are nervous about the environment preparation and technical preparation, you can familiarize yourself with development tools, development environments, and necessary skills. There is a realistic example:ProgramDevelopers are more at the bottom of their minds, and there will be problems with their own design. Isn't it possible to follow the instructions?

(4)Pair ProgrammingOf course, there are some changes. Pair programming means that two programmers develop on one machine.Code. My approach is to assign the front-end functions (from JSP, tile, Struts to EJB) to three entry Se (entry-level software engineer) based on different features ). This part of the work is heavy, and there are many defects, but through mutual check and sharing, the effect is very good. People with fast progress can integrate functions into the system faster.
Experience: If horizontal assignment is adopted, some people may be able to make progress ahead of schedule, but if any one has a problem, the entire system does not have a function to run, at the same time, the communication cost on the interface will be very high.

(5)40-hours workIn the early stage of the project, we agreed that we do not need to work overtime during the first two weeks of development. We only need to work overtime at night during the last week of integration testing.
Experience: for such highly risky projects, if they can only be completed through overtime, it must be a major problem in the early stage. Another sentence: The progress is not coming out, but planned.

Instead of fully using a set of processes of cmme, we adopted some of the best practice of XP, and finally submitted the project on time and by quality. It seems that the impossible tasks were completed, but when SQA came to audit, the report is ugly. Therefore, using this method has the following defects:
(1)Knowledge storage: All the project management experience is in PM's mind. The design concept is in SA, and the good implementation is in the developer's mind and between lines of code. After the project is completed, many members of the project team will go to other projects, and the subsequent projects (the project has a large list) will not be able to inherit the previous knowledge.
Only results are left.
(2)Tracking: Only PM understands the real situation of the project, and no one else can know it. SQA cannot be checked either (SQA is not found in XP ).

Because it has always been a lead project under cmme, some work is still using the process of cmme, such as configuration management (CM), requirement Management (requirement management), PMR (Project Management Review ), risk mangement, Issue Management, defecttracking, and so on.

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.