Waterfall and Agile

Waterfall model

The waterfall model is a typical hardware / software development model, including requirements, design, coding, testing, operation and maintenance stages. Product flows through the "positive" development is the development of the basic steps of the path, "reverse" flow representation of the steps may be submitted to repeated changes in the product of the previous one, due to the non-deterministic in all development activities, and therefore whether changes need to be repeated, only this in the next stage or later stage to recognize. This "rework" is not only a place in the previous phases of need, but also for the ongoing work is also needed.
main feature:

  • Each stage to verify / confirm if action is completed, the aim is to eliminate as much as possible in this stage of product problems
  • In a subsequent stage, as far as possible to the front stage of the product iterate
    advantages:
  • Easy to understand, low management costs.
    The main outcome of the waterfall model is to pass through the document from one stage to the next stage, in principle, between each successive stage not overlap, so you can plan in advance to reduce the cost of program management
  • It provides tangible results of software
    documentation produced and provided sufficient progress throughout the process life cycle, allowing the baseline and configuration, early acceptance control.
    Software Configuration Item:
    software engineering process, then move the product (program documentation, data) after review or city lots are called software configuration items (SCD), the first delivery of software configuration items constitute the baseline (Base Line) Configuration item. The main software development configuration items are: operational concepts, requirements specification, design documents, source code, object code, test plans, test cases, test results and test configuration, maintenance, and development tools, user manuals, maintenance manuals, interface control documentation ...
    in order to control these entries and avoid excessive constraints early development activities, the need to establish a baseline at the appropriate point.
    Baseline:
    The baseline is formally reviewed and approved set of software configuration items (documents or other software products), after which they will only be changed through formal change control process can serve as the basis for future development work.
    The baseline is the role of the various stages of the work was divided more clearly so that the already disconnected continuous work on these points in order to verify and validate the results of development. Therefore, the baseline capacity available in three software products:
  • Regenerative capacity: the ability to "return" to the original one - time remanufactured particular version of a software system that once existed or reproduction development environment.
  • Traceability capabilities: Coming requirements, project plans, test cases and associated with a variety of software artifacts. In order to achieve traceability capabilities, not only on the system in a variety of workpiece baseline, but also to work on the project management of the baseline.
  • Reporting capabilities: the ability to query any of the - content in the baseline and content comparison of different baseline. Comparison of the results of the baseline can support and troubleshooting assistance to generate a new version of the release notes.
    These capabilities help teams to repair the defective product has been released in order to regulate the development process, to facilitate the conditions approved, the most important is the design and implementation of security requirements, the code is designed to achieve, and use the correct version of the code to build the application executable.
    Disadvantages:
  • Customers must be able to complete, correct and clearly express their needs. But in the communication system development often find there is a huge difference between users and developers, user demand has been put forward vague and open to interpretation developer and user needs over time to changing issues
  • It may take more time to build some of the less useful documents
  • In two or three phase begins, it is difficult to assess the true state of progress
  • In the early stages of a project, too much emphasis on the document at the baseline and milestones
  • When towards the end of the project, there has been a lot of integration and testing
  • Until the end of the project, can not demonstrate the ability of the system
    Scope:
  1. When a project is defined and stable product is very easy to understand technical solutions
  2. When a well-defined version for maintenance, or migrate to a new platform
  3. When developing a complex project but very easy to understand
  4. Quality requirements demand higher than the cost and schedule requirements
    idea:
    "the most ordinary person can not do ordinary things." For a large system, in order to achieve the desired goals, we need to do careful planning, to strengthen the review and supporting management in key stage, activities and tasks, by writing a large number of documents to avoid exchange of ambiguity and uncertainty . In order to ensure a high quality final submissions in support of the process and assist the work takes a lot of resources, so that the whole process is too cumbersome, so called "heavyweight process."

Agile and iterative upgrade needs to change []

Agile processes emphasize short-term delivery, close customer involvement, emphasizing adaptability surface is not predictable, the current emphasis on the need to simplify the design without considering future. Only the most essential content of the document, it is also known as "lightweight process." Agile methodology is not, nor is it specific method development software, but not the development framework or process, but a set of values ​​and principles.

The core idea:

  • Individual and interactive than processes and tools
  • Working software is higher than exhaustive documentation
  • Customer cooperation than contract negotiation
  • Higher than planned in response to changes follow
    a) our most important goal, through continuous delivery of valuable software as soon as possible so that customer satisfaction.
    b) is pleased to face changes in demand, too even late in development. For customers' competitive advantage, agile process control change.
    c) regularly deliver working software, separated by a few weeks or a month or two, they tend to take a shorter period.
    d) Business people and developers must cooperate with each other every day projects are no exception.
    e) to stimulate the morale of individuals to build their core projects. Environment and provide the required support, combined with trust, so as to achieve the goal.
    f) whether inside and outside the team, the best transmission of information is also the most efficient way is face to face conversation.
    g) working software is the primary measure of progress.
    h) Agile processes promote sustainable development. Sponsors, developers and users together to be able to maintain its steady pace continues.
    i) persistent in pursuit of technical excellence and good design, thereby enhancing agility.
    j) with simple faith, which is trying to reduce unnecessary workload of art.
    k) The best architectures, requirements, and designs emerge from self-organizing teams.
    l) team on a regular basis to reflect on how to improve the effectiveness and adjust their behavior so performance.

srcu

1331259-03da43dfbe21b3b0.png
Scrum

Scrum agile as one landing method, using the framework of the continuous iterative method to manage the development of complex products, become the hottest agile management methods. Project members will be 1-2 weeks iteration (sprint) continues to yield new version of the software, but after each iteration is complete, the project members and stakeholders to meet again to confirm the direction and objectives of the next iteration.

Scrum have a unique and fixed management, from the character, the workpiece and various forms of meeting three dimensions departing to ensure more efficient execution. For example, before each sprint will begin to establish the whole process: iteration planning, daily stand will be iterative presentation and review. And confirm progress and collect customer feedback during the sprint with a visual chemical elements.

Scrum of three roles:

Product Manager:
responsible for product planning and development of this product vision communicated to the team. Product Owner need to sort the list of product demand (backlog), changes in market demand attention to the adjustment of product demand priority, verify the functionality required to deliver the next iteration of. With the team, customers, stakeholders continue to maintain communication and feedback, to ensure that each project members understand the significance of the project and vision.

Master Scrum:
Scrum Master helps teams do our best to complete the work. For example: organizing meetings, deal with obstacles and challenges, in cooperation with the product managers, prepared before the next iteration good backlog, ensure that the team follow the Scrum process. Scrum Master team members do not have authority in the matter, but this process has the power --Scrum Master can not tell someone what to do, but can introduce new sprint.

Team Scrum:
Scrum team consists of five to seven members. Different from traditional development team, the members have no fixed roles, such as research and development will be done by the testers. Among team members help each other and share the results, aimed at completing all the work. Scrum teams need to do overall planning and appropriate division of the workload for each iteration.

Scrum meeting:

  • Finishing Products Requirements List (Product backlog): Product Manager and Scrum teams meet to determine the priority demand for products based on user feedback and demand story. Backlog is not a to-do list, but a list of all the product's features. Then in each iteration stage R & D team to complete the list of part of the final completion of the entire project.

  • OK iteration planning (Sprint planning): Before the beginning of each iteration, product managers will discuss the functional requirements of a higher priority in the iteration planning meetings and team. Then confirm what function will be completed in the next iteration, iteration and task list to move these functions (Sprint backlog) from the list of products in demand.

  • Sort the list of products demand: the end of the iteration, the product manager and team need to meet to confirm the list of tasks the next iteration. Teams can take advantage of this stage eliminate low correlation of user stories, put forward a new user story, and then re-evaluate the priority of the story, or user stories into smaller tasks. The purpose of this meeting is to sort out a list of demands to ensure that the contents of the product in sufficient detail, and and project objectives.

  • Daily station will: spend 15 minutes a day will open a station, each member of the team will be discussed during the current progress and problems. This process helps the team to maintain daily contact.
    Iteration Demo: at the end of each iteration, the team needs a product manager reporting to the completed work, and do a live demonstration of the product.

  • Iteration Review: At the end of each iteration, the team needs to conduct regular meetings Summary Using Scrum affect your R & D and to explore whether there could do better in the next iteration place.

Scrum common workpiece:

  • Scrum task board: We can visualize the task list with Sprint Scrum task board. Task board can be presented in different forms, more traditional practices have index cards, sticky notes or whiteboard. Scrum board is usually divided into three tasks: to-do, in progress and completed . Team Sprint need to constantly update the entire process. For example, if someone came up with a new mission, he will write a new card and add it to the appropriate location.
  • User Story: user story is presented describing the function of the software from the customer perspective. It includes the type of user segmentation, what they want and why they need it. They follow a similar structure: a <type of user>, I want <to perform a task> so that I can <a target to achieve> . R & D team based on these user stories to meet customer needs.
  • Burndown (Burndown chart): The vertical axis represents an iterative task list, the horizontal axis represents the time remaining. The remaining work can be expressed through different points or other indicators. When things are not carried out according to plan and influence subsequent decisions, burndown chart can give the team reminder at this time.

Signboard

  • Visualization process framework
    such visualization framework to clearly show the progress of the entire project to project members (what to do / when to do / do much) . We will advise you when the system needs a slight modification, the Kanban method can be used to lightweight solve this problem, because the signage itself does not need to develop additional processes, we can add signage on any workflow.

  • Limit progress (WIP)
    WIP to determine the maximum, minimum effort on billboards map each column. By WIP limit, we are able to adjust the speed, flexibility, according to their wishes, to enhance efficiency to address high-priority needs. In this case, the development work (WIP) inventory in place, to join a new job just over a billboard in the future. Disaggregated software development projects may include a charge d'affaires, preparation, development, testing, approval and has been completed.

  • Manage and improve processes
    we need to process the kanban chart summarizes the regular monitoring and improvement, resulting in a smooth and efficient workflow, fast creation of value.

  • Develop a clear implementation strategy
    in order to prevent changes during billboards collaboration, we need to have a clear implementation strategy, each member needs to know how to complete tasks and "Finish" really means.

  • Continuous improvement
    Kanban method to encourage sustainable small margin improvements. Once the kanban system in place, the team will be able to identify, understand the issues and make recommendations for improvement. Team reviewed by workflow and measurement cycle time to assess its effectiveness and improve the quality of output.

1331259-1336205570e3df37.png
Compared
Reference: Software Engineering Fundamentals course materials

Reproduced in: https: //www.jianshu.com/p/f201c18907fe

Guess you like

Origin blog.csdn.net/weixin_34014277/article/details/91325120