Agile Software Development PDF
Document Details
Uploaded by NeatestStrength
Tags
Summary
This document outlines different software development methodologies, focusing on Agile practices including Scrum. It details the Scrum phases, terminologies, and sprint cycles for software development projects.
Full Transcript
The waterfall model 1 Agile Software Development Topics covered Agile project management Agile project management Agile project management The principal responsibility of software project managers is to manage the project so that the software is delivered on time and within the planned b...
The waterfall model 1 Agile Software Development Topics covered Agile project management Agile project management Agile project management The principal responsibility of software project managers is to manage the project so that the software is delivered on time and within the planned budget for the project. The standard approach to project management is plan-driven. Managers draw up a plan for the project showing what should be delivered, when it should be delivered and who will work on the development of the project deliverables. Agile project management requires a different approach, which is adapted to incremental development and the practices used in agile methods. Scrum Scrum is an agile method that focuses on managing iterative development rather than specific agile practices. There are three phases in Scrum. ◦ The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture. ◦ This is followed by a series of sprint cycles, where each cycle develops an increment of the system. ◦ The project closure phase wraps up the project, completes required documentation such as system help frames and user manuals and assesses the lessons learned from the project. Scrum terminology (a) Scrum term Definition Development team A self-organizing group of software developers, which should be no more than 7 people. They are responsible for developing the software and other essential project documents. Potentially shippable The software increment that is delivered from a sprint. The idea is that product increment this should be ‘potentially shippable’ which means that it is in a finished state and no further work, such as testing, is needed to incorporate it into the final product. In practice, this is not always achievable. Product backlog This is a list of ‘to do’ items which the Scrum team must tackle. They may be feature definitions for the software, software requirements, user stories or descriptions of supplementary tasks that are needed, such as architecture definition or user documentation. Product owner An individual (or possibly a small group) whose job is to identify product features or requirements, prioritize these for development and continuously review the product backlog to ensure that the project continues to meet critical business needs. The Product Owner can be a customer but might also be a product manager in a software company or other stakeholder representative. Scrum terminology (b) Scrum term Definition Scrum A daily meeting of the Scrum team that reviews progress and prioritizes work to be done that day. Ideally, this should be a short face-to-face meeting that includes the whole team. ScrumMaster The ScrumMaster is responsible for ensuring that the Scrum process is followed and guides the team in the effective use of Scrum. He or she is responsible for interfacing with the rest of the company and for ensuring that the Scrum team is not diverted by outside interference. The Scrum developers are adamant that the ScrumMaster should not be thought of as a project manager. Others, however, may not always find it easy to see the difference. Sprint A development iteration. Sprints are usually 2-4 weeks long. Velocity An estimate of how much product backlog effort that a team can cover in a single sprint. Understanding a team’s velocity helps them estimate what can be covered in a sprint and provides a basis for measuring improving performance. Scrum sprint cycle The Scrum sprint cycle Sprints are fixed length, normally 2–4 weeks. The starting point for planning is the product backlog, which is the list of work to be done on the project. The selection phase involves all of the project team who work with the customer to select the features and functionality from the product backlog to be developed during the sprint. The Sprint cycle Once these are agreed, the team organize themselves to develop the software. During this stage the team is isolated from the customer and the organization, with all communications channelled through the socalled ‘Scrum master’. The role of the Scrum master is to protect the development team from external distractions. At the end of the sprint, the work done is reviewed and presented to stakeholders. The next sprint cycle then begins. Teamwork in Scrum The ‘Scrum master’ is a facilitator who arranges daily meetings, tracks the backlog of work to be done, records decisions, measures progress against the backlog and communicates with customers and management outside of the team. The whole team attends short daily meetings (Scrums) where all team members share information, describe their progress since the last meeting, problems that have arisen and what is planned for the following day. ◦ This means that everyone on the team knows what is going on and, if problems arise, can re-plan short-term work to cope with them. Scrum benefits The product is broken down into a set of manageable and understandable chunks. Unstable requirements do not hold up progress. The whole team have visibility of everything and consequently team communication is improved. Customers see on-time delivery of increments and gain feedback on how the product works. Trust between customers and developers is established and a positive culture is created in which everyone expects the project to succeed. Distributed Scrum Key points Scrum is an agile method that provides a project management framework. ◦ It is centred round a set of sprints, which are fixed time periods when a system increment is developed. Many practical development methods are a mixture of plan-based and agile development.