2. Software Development Life Cycle (SDLC)
• Developed in the 1960s
• SDLC manages large software development projects
• Phases:
1. Preliminary Analysis
2. Systems Analysis
3. Systems Design
4. Programming/Development
5. Testing
6. Implementation
7. Maintenance
March 23, 2024 2
3. Software Development Models
• Agile Software Development
• Waterfall Development
• DevOps Methodology
• Collaboration between developers and operations professionals
• Rapid Application Development (RAD)
• Spiral Development and
• More …
March 23, 2024 3
4. Plan Driven Process
• A plan-driven process is the development style of attempting
to anticipate all features the user will request at the beginning
• These processes, including the “Waterfall” technique, are
centred around having a high upfront business analysis cost
• Teams will work very hard to map out every possible
requirement before sending them to the developers to
implement and test
March 23, 2024 4
5. March 23, 2024 5
Waterfall Development
https://www.seowebsitedesign.com/the-waterfall-model-of-software-development/
6. The Benefits of a Waterfall
• Waterfall approaches work great if you are working in a highly
predictable environment
• If, for example, you are working in an enterprise where the
information flow between departments is excellent and the
rules rarely change
• In that case, it is quite possible to create an excellent plan
and implement it
March 23, 2024 6
8. Agile Software Development, cont.….
March 23, 2024 8
https://www.soldevelo.com/blog/is-agile-always-the-best-solution-for-software-development-projects/
9. Agile Development
• Agile is a strategy that focuses on rapid, iterative development
• The starting point here is not a lengthy planning phase; instead,
you may have a short initial stage to get the basic concept of the
application
• The whole application is then built iteratively through tiny steps
• You might start with a basic framework of the app, present it to
your manager, get feedback, and continue
March 23, 2024 9
10. The Benefits of Agile
• Agile development works far better in a chaotic environment
where requirements change frequently
• It is much better at avoiding common Waterfall problems,
such as: spending a hundred thousand human hours only to
hear that the users hate the app
• With Agile, you are constantly pushing out working
applications, so it is easier to get running feedback
• Because of this, Agile is built for adaptation
March 23, 2024 10
11. March 23, 2024 11
https://selleo.com/blog/agile-software-development-process-everything-you-need-to-know
13. Scrum
Framework
March 23, 2024 13
Roles
• Product Owner
• Scrum Master
• Development Team
Events
• Sprint
• Sprint Planning
• Daily Scrum
• Sprint Review
• Sprint Retrospective
Artifacts
• Project Charter
• Product Backlog
• Sprint Backlog
• Burn down chart
14. Scrum is Agile
• Scrum is a design approach heavily influenced by the Agile
paradigm
• Scrum begins with a backlog which is a prioritized list of
development requirements
• You perform the work in short iterations of constant duration
called Sprints
• The team will always work on the most important tasks in the
backlog first
March 23, 2024 14
15. Agile Software Development
March 23, 2024 15
https://www.synopsys.com/blogs/software-security/top-4-software-development-methodologies/
16. Completed Iterations
• It is almost impossible to complete all of the work in a single
iteration
• When the predefined time ends, the team will review what it
has completed with any stakeholders
• The stakeholders are free to decide if they are happy with
what they see or if they need any other features
• It is essential that at the end of every cycle, the team has
something "potentially shippable,” maybe a base product that
could be released (even if it is missing much functionality)
March 23, 2024 16
17. What are the key benefits of Scrum?
• As you will see, Scrum is designed to make team members
accountable
• It can help mitigate risk and is better suited to development
which may require rapid adaptation to new problems
• A "waterfall" often has so much overhead that a failure in the
middle of a project is very costly
• The focus on deliverables can allow a company to spot
potential failure points earlier in the cycle
March 23, 2024 17
18. When can Scrum fail?
• What happens if a significant, extremely costly bug is
discovered at 3 am on a Friday?
• In this case, the approach of setting up Scrums will take too
much time; you’ll need your best coders to change gears and
fix the problem quickly
• What if you work in an environment where some weeks, you
have much work, others minimal, such as some customer
service jobs?
• In this case, Scrums will end up being unproductive
March 23, 2024 18
19. The Scrum Framework
• Scrum development begins by creating a team where each
member has one of three defined roles
• Product Owner: The centralized leader who is responsible for
deciding the scope of the program as well as the main priorities
• ScrumMaster: The "coach or Servant Leader “ who is there to
help teams resolve issues and improve team productivity.
• The ScrumMaster is not a manager and has no authority over the
project; however, can provide technical assistance by answering
questions
March 23, 2024 19
20. The Scrum Framework Cont. ..
• Developers: The members of the team should self-organize,
and every member should be capable of taking on multiple
roles
• The product owner gives them the goal, and the developers
will design and implement it
• Unlike traditional teams, Scrums make no mention of a
team "DBA,” a tester, or any other job roles
March 23, 2024 20
21. Scrum Roles: Product Owner
• The product owner's key role is to determine the needs of the
critical stakeholders and articulate them to the development
team
• They need to participate in all activities relating to planning
the sprint
• They oversee the sprint "grooming" process by providing the
critical details required for the team to decide the priority
• Product Owners communicate with the team every single day
March 23, 2024 21
22. ScrumMaster: What exactly do they do?
• The ScrumMaster's key day-to-day responsibility is setting up
the Scrum activities and overseeing them
• They will evaluate the team's effectiveness in carrying them
out and provide suggestions during daily scrums
• They also work with product owners to ensure that the
product backlog is reasonable and fair for developers
• Each day, they should devote some time to "putting out fires"
by removing barriers
March 23, 2024 22
23. Scrum Roles: Development Team
• The development team will execute the sprint and perform the
development, planning, and testing of software solutions
• They are expected to self-organize and “inspect and adapt”; when
difficulties arise, the team should be able to handle many of them
by themselves
• The team should be diverse and knowledgeable
• If your team has a database expert, they will, of course, focus
most of their attention there, but they are expected to contribute to
other areas, such as front-end or testing
March 23, 2024 23
24. Product Backlog
• The product owner is responsible for choosing what the
highest priority tasks are
• This list is called the "Product Backlog," and it can contain
anything from bug fixes to new features to the core
functionality
• The product backlog can frequently change, a process known
as “Grooming."
• A final important consideration is relative time; how much time
will a backlog item take compared to the others?
March 23, 2024 24
25. Creating a Good Backlog
• Detailed Appropriately: The items that are near the top of the
priority list should contain a lot of details and requirements so
everyone knows precisely what is expected
• Emergent: The product backlog never finishes; it will constantly
be updated as new information from stakeholders comes in
• Estimated: Every item in the backlog must contain an estimated
time/effort required for development
• Prioritized: Prioritize as many items as you can, focus on their
importance to stakeholders, and project success
March 23, 2024 25
26. Backlog Grooming
• The product backlog is constantly changing, requiring what
scrum experts call "Grooming."
• Once every sprint cycle, the developers and product owners
should sit down and modify the backlog
• You will want to take into consideration any new high-priority
features or issues that come up with items that are currently
being worked on in the sprint
• This ensures that when you start the next sprint, the backlog
does not need to be heavily updated
March 23, 2024 26
27. From the Backlog to the Sprint
• It is essential to note that items in the backlog are NOT being
worked on currently (because they are not in the sprint yet)
• Before an item gets worked on, you need to fill out a
checklist
• Is there clear business value? Does the team have the
resources to perform the task? Does the team clearly
understand the task? Does the product owner know precisely
what they are looking for from the task?
March 23, 2024 27
28. Sprints
• The sprint is an iterative cycle between 2 weeks and a month in
duration
• You may already see a problem here... What if the collection of
items in the backlog takes years?
• This is where the teams agree upon a "sprint goal,” in which the
expected output for the sprint is mutually agreed upon
• Before any development begins, the team will perform a few
hours’ worth of planning and break down the highest-priority
backlog items into smaller tasks
March 23, 2024 28
29. Sprints: Timeboxing
• A timebox is a clearly defined start and end date
• A core philosophy of the sprint is that each "timebox" is the
same length, so each sprint should be the same duration
• The team should only start items they believe they can finish
within a single sprint
• For example, if your set sprint duration is two/three weeks...
then you must carefully plan the sprint so all scheduled goals
can be completed in that time
March 23, 2024 29
30. Sprints: The Goal
• It is essential that no attempts to change the goal are allowed
once the sprint has begun
• The team and the product owner must agree on the sprint
goal to prevent any misunderstandings
• It might seem harsh, but changing goals is one of the biggest
causes of economic waste in software development
• Of course, this isn't a law... if something critical to the
business comes up, you can change the goals
March 23, 2024 30
31. Daily Scrum
• For every day of the sprint, a "daily scrum" meeting will be
held
• The standard approach consists of the ScrumMaster asking
each team member the same three questions:
• What did I accomplish since the last meeting?
• What do I plan to work on now?
• What are the obstacles preventing my progress?
• The scrum meeting should help the development team to self-
organize and plan on day-to-day operations
March 23, 2024 31
32. Sprint Execution: Organization
• After the team has started the sprint, you have the list of
product backlog items to be completed during the sprint
duration
• The team must then break these items into smaller tasks and
decide who does what
• The ideal Scrum team has overlapping skillsets; there should
not be many defined roles
• If one task is proving difficult, any other member should be
able to step in and help with it
March 23, 2024 32
33. Sprint Execution: Task Board
• The Daily Scrum is used to quickly discover areas where the
"flow" leading towards a ready product is blocked
• Another tool used for this is the "Task Board,” something
which is also heavily relied upon in Kanban
• The task board shows all product backlog items contained in
the current sprint
• It breaks them down into smaller tasks with an estimated time
• The team members will move the items into the “In Progress”
or “Completed” column, depending on the status
March 23, 2024 33
34. Sprint Execution: Sprint Burndown
• During each day of the sprint, team members update a
burndown chart which shows how much time is required to
complete each task
• The chart is broken down into rows of tasks and columns of
days
• As the days’ progress, the number in each task must decrease
• The goal is to reach 0 total hours remaining by the final day; if
you do not get that, i.e., you did not break the product backlog
down well enough
March 23, 2024 34
35. Sprint Review
• At the end of each sprint, the key stakeholders and the Scrum
team will review the completed features from the sprint
• The development team will update the key stakeholders on
the progress and alert them to any problems
• A functional product should always be demoed at this point
• The stakeholders will provide feedback and signal whether
they are looking for improvements or are happy with the
results
March 23, 2024 35
36. Sprint Retrospective
• The Sprint Retrospective is focused on process as opposed
to the product
• Perhaps some of the members of the development team
struggled with their tasks
• Or maybe the Product Manager did not communicate the
goals effectively
• Anything that got in the way of the Sprint process itself being
successful should be analyzed
March 23, 2024 36
Editor's Notes
Agile means moving forward fast and easily
Artifacts mean the investigative procedure
retrospective
(adjective)
looking back on or dealing with past events or situations:
Scrum was developed in the early 1990s by Ken Schwaber and Jeff Sutherland