Software Development
Methodologies
LESSON OBJECTIVES
Define the software development
methodologies
Explore the commonly adopted
methodologies
Software Development Methodologies
Software development methodologies are structured
approaches to designing, creating, and maintaining
software systems. They provide a framework of
processes, techniques, and best practices that guide
development teams throughout the software
development life cycle. These methodologies define how
work should be organized, executed, and controlled to
achieve specific project goals.
Importance of methodologies
Improved Project Management
Enhanced Quality
Increased Productivity
Better Risk Management
Improved Client Satisfaction
Steps or sequence
Waterfall Agile Scrum DevOps
Waterfall
• Sequential, non-iterative process
• Clearly defined phases with specific deliverables
• Heavy emphasis on planning and documentation
Waterfall
Advantages Disadvantages When to use
Clear structure and Inflexible to changes Projects with clear, unchanging
milestones requirements
Easy to understand and Late testing phase can lead to Short-term projects
manage significant issues
Works well for projects with Customer doesn't see the product Projects in regulated industries
well-defined requirements until late in the process requiring extensive documentation
Waterfall
(Source: actiTime)
Agile
• Agile is an iterative, incremental approach that emphasizes
flexibility, customer collaboration, and rapid delivery of functional
software.
• Customer satisfaction through early and continuous delivery
• Welcome changing requirements, even late in development
• Deliver working software frequently
• Close, daily cooperation between business people and
developers
Agile
Advantages Disadvantages When to use
Flexibility to change and Can be challenging to implement Projects with evolving requirements
adapt in large organizations
Continuous delivery of Less predictable than traditional When rapid delivery is prioritized
usable software approaches
Improved customer Can be difficult to maintain if not In environments where customer
satisfaction and better team managed properly collaboration is feasible and valued
collaboration
Agile
(Source: nvisia)
Scrum
• Scrum is a specific framework within Agile that structures work into small,
manageable sprints
Roles:
• Product Owner: Represents the stakeholders and voice of the customer
• Scrum Master: Ensures the team follows Scrum practices
• Development Team: Cross-functional group that delivers the product
Events:
• Sprint: Time-boxed iteration, typically 1-4 weeks
• Sprint Planning: Meeting to plan the upcoming Sprint
• Daily Scrum: 15-minute daily team synchronization
• Sprint Review: Demonstration of completed work
Scrum
Advantages Disadvantages When to use
Regular feedback and Requires experienced team Complex projects with changing
adaptation members requirements
Increased team Can be challenging to scale for When close collaboration with
accountability and autonomy large projects stakeholders is possible
Improved project visibility Risk of scope creep if not In environments that support self-
and faster delivery of managed properly organizing teams
working software
Scrum
(Source: [Link])
DevOps
• DevOps is a set of practices that combines software
development (Dev) and IT operations (Ops) to shorten the
systems development life cycle while delivering features, fixes,
and updates frequently in close alignment with business
objectives.
• Continuous Integration and Continuous Delivery (CI/CD)
• Automation of software delivery pipeline
• Monitoring and logging
• Infrastructure as Code
DevOps
Advantages Disadvantages When to use
Faster delivery of features Requires significant cultural In organizations seeking to improve
change software delivery speed and reliability
Improved collaboration Can be complex to implement When there's a need to break down
between teams initially silos between development and
operations
More stable operating Requires investment in tools and For projects requiring frequent updates
environments training and high reliability
Better quality software and
reduced time to market
DevOps
(Source: Atlassian)
Factors to consider for choosing methodology
Size and complexity of the project
Expected duration
Skill levels and experience of team members
Existing processes and tools
Urgency of product delivery