Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter Extension 16 Agile Development.

Similar presentations


Presentation on theme: "Chapter Extension 16 Agile Development."— Presentation transcript:

1 Chapter Extension 16 Agile Development

2 Study Questions Q1: Why is the SDLC losing credibility? Q2: What are the principles of agile development methodologies? Q3: What is the scrum process? Q4: How do requirements drive the scrum process?

3 Q1: Why is the SDLC Losing Credibility?
Systems requirements are fuzzy and always changing Waterfall method does not work well Very risky – users cannot see system until end Project often runs out of money or time before completion SDLC assumes requirements don’t change Fuzzy and changing system requirements. For example, every time I pull out a data table, it should show the most updated data (what do you mean by most updated data?). For example, the web data table is no longer good enough. I want the data table be accessible using my smart phone. The data table design is outdated, …, etc. Alternative system development approaches are mostly learned from software development practices.

4 Q2: What Are the Principles of Agile Development Methodologies?
Agile methods include rapid application development, prototyping, unified process, extreme programming, scrum, incremental, spiral and others. Just-in-time design means the design is constantly changing, and existing designs may need to be revised, along with substantial revision to work product produced so far. Agile development methodologies are generic and can be applied to creation of applications, information systems, and business processes. extreme programming: advocates frequent "releases" in short development cycles Incremental: A series of mini-Waterfalls are performed, where all phases of the Waterfall are completed for a small part of a system, before proceeding to the next increment Spiral: Planning, designing, analyzing and developing in a spiral model Unified process: a popular iterative and incremental software development process framework. RUP, OpenUp are typical examples. Rapid application development: including stages of specifying objectives, joint application designing and iterative prototyping as development approach.

5 Q3: What Is the Scrum Process?
The Scrum Process: an iterative and incremental agile software development framework for managing application development. Its focus is on "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach". In rugby, a scrum is a gathering of a team into a circle to restart play after a foul or other interruption. Scrum is an agile development process that follows the principles shown in this figure. Process is driven by a prioritized list of requirements created by users and business sponsors of new system. Work is divided into scrum work periods.

6 Scrum Process Scrum team members are programmers, systems analysts, business analysts, database designers, cloud-engineers, PQA testing personnel, and any other staff needed to build the work product. Scrum teams are small; five to nine team members. It’s not clear scrum works well for exceedingly large projects, but no other development process works well, either. Given a requirement, the team meets to create tasks to be accomplished to meet that requirement. In Figure CE16-3, this work is done in Choose requirements to deliver activity.

7 Key Roles Product owner Scrum master Team members
Business professional who provides requirements, clarification and testing Scrum master Coach or referee, guardian of members’ time Team members Programmers, systems analysts, business analysts, database designers, cloud engineers, PQA testing personnel, other staff needed Cloud Computing: cloud computing is a synonym for distributed computing over a network, and means the ability to run a program or application on many connected computers at the same time. The phrase also more commonly refers to network-based services, which appear to be provided by real server hardware, and are in fact served up by virtual hardware, simulated by software running on one or more real machines. Such virtual servers do not physically exist and can therefore be moved around and scaled up (or down) on the fly without affecting the end user - arguably, rather like a cloud. cloud engineers: engineers in charge of developing, operating and maintaining cloud computing systems. PQA testing: professional quality assurance software testing

8 Stand-up Meetings 15-minute meeting each team member states:
What he or she has done in past day What he or she will do in coming day Any factors blocking his or her progress/hurdles Purpose — accountability for progress and give public forum for blocking factors Often one team member will have expertise to help another, blocked team member resolve the blocking issue.

9 Paired Programming Two members share a computer and write a computer program together. One programmer provides a test, other demonstrates code passes test or changes code. Minimal documentation created

10 When Are We Done? Customer is satisfied with the product created and accepts it, even if some requirements left unsatisfied. Project runs out of time. Money runs out.

11 Q4: How Do Requirements Drive the Scrum Process?
Requirements drive planning and scheduling Answers "Who does what and why?" Product owner creates requirements and prioritizes them. Scrum is distinguished from other agile development methodologies by using requirements to drive planning and scheduling.

12 Creating Requirements Tasks
Tasks for additional requirements that might be implemented in this scrum period are created also. Tasks are created as a group, in a team meeting where the team can give feedback to one another. One team member will think of a task to be done that other members may not be aware. Or, a member may realize a particular task is incomplete, or is doable in some other way.

13 Scheduling Tasks Way tasks are scheduled makes scrum innovative
Developers terrible determining how long a task will take, good at how long something will take in comparison to something else Assign each task a difficulty score, called points (weights) Team estimation and planning poker Points form a Fibonacci sequence: {1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, and ?}. Any number larger than 144 is meaningless. Most likely 89 and 144 are meaningless as well, and should be subdivided into multiple requirements. When all tasks have received points, points are summed to a total for the requirement. Fibonacci numbers: Fibonacci sequence, a math number sequence: n = 0, 1, 2, 3, 4, 5, 6, 7, 8, …. Xn = 0, 1, 1, 2, 3, 5, 8, 13, 21, ….. Planning poker: a scrum poker game played among the team players with the numbered sides down. A consensus-based technique for estimating, mostly used to estimate effort or relative size of user stories[a user story - one or more sentences in the everyday or business language of the end user] in software development.

14 Committing to Finish Tasks
Team velocity Total number of work points team can accomplish each scrum period. Determines how many requirements team can commit to in next scrum period. Suppose five requirements on prioritized requirements list total 125 points. If a team knows its velocity is 100 points per scrum period, they know they cannot do all five. However, if the top four total, say 80 points, they can commit to doing those four, plus something else. In this case, the team would go back to product owner and ask if there is a requirement lower on the priority list that can be done for the available 20 points of capacity.

15 Summary of Scrum Estimation Technique

16 Hocus-pocus (trickery)?
Scrum incorporates team iteration and feedback for scheduling and tasking. Team can create something that far exceeds what each member can do individually. Over time, team learns to assign points more accurately, and knows its true velocity. Scrum is a good technique, but it's not magic. Second, it provides a framework for process learning. As a team works more scrum periods together, it learns how to assign points more accurately, and increasingly learns what its true velocity is.


Download ppt "Chapter Extension 16 Agile Development."

Similar presentations


Ads by Google