Upload
muhammad-nabeel-arif
View
48
Download
0
Tags:
Embed Size (px)
Citation preview
Software Development Life Cycle
We are going to follow a 3 step process to develop a complete software application
Design: Requirement gathering and estimates and approval
JIRA Confluence & Google Docs
Develop: Code, Test and DemoJIRA, JIRA Agile & Git to manage source code
Deploy: Final testing and DeploymentJIRA, Play Store, App Store
PlanPlanning phase is the first and very important phase in our SDLC Plan.
Requirements are obtained from the Product Owner
Active involvement of Product Owner is required during this phase to clarify the ambiguities in the requirements.
Estimates are finalized against Work Breakdown Structure (WBS)
Requirements
Product Owner provides information in the form of User story, a sample app to replicate, a website to convert into mobile format or mock-ups.
Requirements are evaluated by the Project Manager who further assigns them to relative developer (iOS or Android)
In case of any ambiguity or clash in requirements clarification is requested from project owner
In case of technical limitations, alternatives are suggested.
According to final requirements, design elements for applications are requested in the form of PSDs
Estimates
Based on the requirements a WBS is created to estimate the time on different platforms (iOS or Android)
Estimate sheets display complete picture of the app on a specific platform listing time required by each item, assumptions made, limitations, server interaction
Feedback and Approval
Based upon the Product Owner’s feedback, necessary changes are made in estimate document.
Tools and technologies are agreed for the app.
Discussion continues until we get approval from the Product owner.
From here onwards starts the develop phase
JIRA Confluencehttps://www.atlassian.com/software/confluence
DevelopHere we start the implementation of the actual application. This phase includes coding, managing source code, testing, demo. We will use following process and technique during this phase.
Agile
ScrumJIRA , JIRA Agile & Git for managing code
AGILEIterative
AdaptableRapid
Cooperative
Quality-driven
Not a process, it's a philosophy or
set of values
ScrumScrum is an iterative and incremental Agile software development framework for managing software projects and product or 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".
• Scrum Overview
• Roles
• Sprint
• Meetings
• Artifacts
• Scrum Summary
The Product OwnerResponsible for the product backlog
and maximizing the product ROI.• Represents the users• Clearly expresses backlog items• Orders them by value• Ensures visibility
The Scrum MasterResponsible for the scrum process
• Removes impediments• Facilitates scrum events• Facilitates communication
The Development TeamResponsible for delivering a potentially shippable
increment of working software.• Self-organized• Cross functional• Developer as title• Defines practices• 4 to 9 persons
SprintA sprint is the basic unit of development in Scrum.
The sprint is a "timeboxed" effort; that is, it is restricted to a specific duration.
The duration is fixed in advance for each sprint and is normally between one week and one month, although two weeks is typical
The Product BacklogSingle source of requirements for any changes to bemade to the product.
• Living list that is never complete
• Ordered: value, risk, priority & necessity
• Estimated by the team
Sprint BacklogConsists of committed PBIs negotiated between the team and the Product Owner during the Sprint Planning Meeting
IncrementThe increment is the sum of all the Product Backlog Items completed during a sprint and all previous sprints.
Burn DownIndicates total remaining team task hours within one Sprint
MeetingsSprint Planning Meeting
Daily Scrum
Sprint Review Meeting
Sprint Retrospective Meeting
Backlog Refinement Meeting
The Sprint PlanningTwo part time boxed meeting: 8h/1m sprint.
1. Defines what will be delivered in the increment• Team selects items from the product backlog and defines a sprint goal
2. Defines how the increment will be achieved• Items are converted into tasks & estimated
The Daily Scrum15 minute time-boxed event for the Team
to synchronize activities.
• What has been accomplished since last meeting?• What will be done before the next meeting?• What obstacles are in the way?
The Sprint Review4 hour time-boxed meeting
• Product owner identifies what has been done• Team discusses what went well, what problems it ran into & those that were solved• Team demonstrates what it has done in a demo• Product owner discusses the backlog as it stands• Entire group collaborates on what to do next
The Sprint RetrospectiveImproves the process.
• Inspect how the last Sprint went• Identify and order the major items that went well and potential improvements; and,• Create a plan for implementing improvements
Backlog Refinement
Refine the requirements, technical limitations and estimates
• It is common to write Product Backlog Items in User Story form. In this approach, oversized PBIs are called epics. Break the complex epics into small user stories
• The team considers the effort they would expend to complete items in the Product Backlog and provides other technical information to help the Product Owner prioritize them.
• Most customers don’t use most features of most products, it’s wise to split epics to deliver the most valuable stories first.
• The Backlog Refinement Meeting lacks an official name and has also been called “Backlog Grooming,” “Backlog Maintenance,” or “Story Time.”
The Definition of DoneUsed to assess when work is complete on the
product increment.
• Defined by the product owner• Unique for the whole team• Must allow immediate release• Quality increases with maturity
JIRA & JIRA Agilehttps://www.atlassian.com/software/jira/
https://www.atlassian.com/software/jira/agile
Deployment
Complete testing of the application
Fill the test sheets for the app
Fill the Release checklist for the app
Deploy the app
Install and update the deployed app