Agile SW
Agile SW
13.02.2025 2
Rapid Software Development
13.02.2025 3
Agile Development
13.02.2025 4
Plan-driven and Agile Development
13.02.2025 5
Plan-driven and Agile Development
Plan-driven Development
A plan-driven approach to software engineering is based on
separate development phases, with the outputs to be produced
in each of these phases planned in advance.
Waterfall model not mandatory – plan-driven, gradual
development possible
Iteration occurs within activities.
Agile Development
Specification, design, implementation and testing are dropped
one after the other, and the outputs from the development
process are determined through a process of negotiation
throughout the software development process.
6
Agile Methods
13.02.2025 7
Agile Methods
13.02.2025 8
Agile Manifesto
13.02.2025 9
Principles Of Agile Methods
Principles Descriptions
Customer Customers should be closely involved throughout the
Engagement development process. Their role is to ensure and prioritize new
system requirements and evaluate iterations of the system.
Incremental The software is developed in increments with the customer
Delivery specifying the requirements to be included in each increment.
People Not The skills of the development team should be recognized and
Transactions leveraged. Team members should be left to develop their own
working methods without cover letter processes.
Embrace Change Expect system requirements to change and thus design the
system to accommodate these changes.
Keep It Simple Focus on simplicity, both in the software being developed and
in the development process. It works effectively to remove
complexity from the system wherever possible..
13.02.2025 10
Agile Method Applicability
13.02.2025 11
Agile Development Techniques
13.02.2025 12
Ekstreme Programming (XP)
13.02.2025 13
Extreme Programming Broadcast Cycle
13.02.2025 14
Extreme Programming Practices (A)
13.02.2025 15
Extreme Programming Practices (B)
Pair Programming Developers work in pairs, checking each other's work and providing
support to always do a good job.
Collective Ownership Pairs of developers work on all areas of the system, so that no
islands of expertise are created and all developers take
responsibility for the entire code. Anyone can change everything.
Continuous Integration As soon as work on a task is completed, it is integrated into the
entire system. After such integration, all unit tests in the system
should pass.
Sustainable Tempo Large amounts of overtime are unacceptable as the net effect is
often to reduce code quality and medium-term productivity.
Onsite Customer A representative of the end user (customer) of the system must be
available full time for use by the XP team. In the extreme
programming process, the customer is a member of the
development team and is responsible for bringing the system
requirements to the team for implementation.
13.02.2025 16
XP and Agile Principles
13.02.2025 17
Influential XP practices
13.02.2025 18
User Stories for Requirements
13.02.2025 19
A ‘Prescribing Medication’ Story
13.02.2025 20
Examples of task cards for prescribing
medication
13.02.2025 21
Refactoring
13.02.2025 22
Refactoring
13.02.2025 23
Examples of Refactoring
13.02.2025 24
Test-first Development
13.02.2025 25
Test-Driven Development
13.02.2025 26
Customer Involvement
13.02.2025 27
Test Case Description For Dose
Checking
13.02.2025 28
Test Automation
13.02.2025 29
Problems With Test-First Development
13.02.2025 30
Pair Programming
13.02.2025 31
Pair Programming
13.02.2025 33
Agile Project Management
13.02.2025 34
Scrum
13.02.2025 35
Scrum Terminology (a)
Potentially shippable Software increment from a sprint. The idea is that it should be “potentially
product increase shippable”; This means it is finished and no further work, such as testing, is
required to incorporate it into the final product. In practice, this is not always
achievable.
Product Backlog This is a list of 'to do' items that the Scrum team must tackle. They can be
feature descriptions for the software, software requirements, user stories, or
descriptions of complementary tasks needed, such as architecture definition
or user documentation.
Product Owner An individual (or possibly a small group) whose job it is to identify product
features or requirements, prioritize them for development, and continually
review the product backlog to ensure that the project continues to meet
critical business needs. The Product Owner may be a customer, but may also
be a product manager or other stakeholder representative in a software
company.
13.02.2025 36
Scrum Terminology (b)
Velocity - An estimate of how much product backlog effort a team can handle in a
Hız single sprint. Understanding a team's velocity helps them estimate what
can be addressed in a sprint and provides a basis for measuring
performance improvement.
13.02.2025 37
Scrum Sprint Cycle
13.02.2025 38
Scrum Sprint Cycle
13.02.2025 39
Sprint Cycle
13.02.2025 40
Scrum’da Team Work
13.02.2025 41
Scrum Advantages
13.02.2025 42
Distributed Scrum
13.02.2025 43
Scaling Agile Methods
13.02.2025 44
Scaling Agile Methods
13.02.2025 45
Scaling and Enlarging
13.02.2025 46
Problems Encountered In Practice With
Agile Methods
The informality of agile development is incompatible with
the legal approach to contract definition commonly used
in large companies.
Agile methods are best suited for new software
development rather than software maintenance.
However, in large companies, the majority of software
costs come from the maintenance of existing software
systems.
Agile methods were designed for teams with small
partners, but now distributed teams around the world are
also developing a lot of software development software.
13.02.2025 47
Contract Issues
13.02.2025 48
Agile Methods and Software Maintenance
Most organizations spend more maintaining existing
software than they do developing new software. So if agile
methods are to be successful, they need to support
maintenance as well as original development.
Two main problems:
Given the emphasis in the development process on minimizing
formal documentation, are systems developed using an agile
approach sustainable?
Can agile methods be used effectively to improve a system in
response to customer demands for change?
Problems may arise if the original development team is not
maintained.
13.02.2025 49
Agile Maintenance
13.02.2025 50
Agile and Plan-Oriented Methods
13.02.2025 51
Agile principles and organizational
practice
Principle Application
customer engagement This depends on having a client who is willing and able to spend
time with the development team and represent all system
stakeholders. Often, customer representatives have other
demands on their time and cannot play a full role in software
development.
Where there are external stakeholders, such as regulators, it is
difficult to present their views to the Agile team.
embracing change Prioritizing changes can be extremely difficult, especially in
systems with many stakeholders. Often, each stakeholder gives
different priorities to different changes.
incremental delivery Short-term planning for rapid iterations and development does
not always mesh with the long-term planning cycles of business
planning and marketing. Marketing managers may need to know
the product's features several months in advance to prepare an
effective marketing campaign.
13.02.2025 52
Agile principles and organizational
practice
Principle Application
Keep it simple Under the pressure of delivery schedules, team members may not
have time to implement desired system simplifications.
People not transactions Individual team members may not have the appropriate personalities
for the intense involvement typical of agile methods and therefore may
not interact well with other team members.
13.02.2025 53
Agile and plan-based factors
13.02.2025 54
System problems
How big is the system developed?
Agile methods are most effective in a relatively small team that can
communicate informally.
What kind of system is being developed?
Systems that require a lot of analysis before implementation need a
fairly detailed design to perform this analysis.
What is the expected system lifespan?
Long-lived systems need documentation to communicate the system
developers' intentions to the support team.
Is the system subject to external regulation?
If a system is regulated, you will probably need to prepare detailed
documentation as part of the system security posture.
13.02.2025 55
People and teams
13.02.2025 56
Organizasyonel sorunlar
13.02.2025 57
Agile methods for large systems
13.02.2025 59
Factors in large systems
13.02.2025 60
IBM's agility in scale model
13.02.2025 61
Scaling up to large systems
13.02.2025 62
Multi-team Scrum
Role duplication
Each team has a Product Owner for the business component
and a ScrumMaster.
Product architects
Each team selects a product architect, and these architects
collaborate to design and develop the overall system
architecture.
free alignment
Product release dates from each team are aligned to produce a
provable and complete system.
Scrum of Scrums
There are daily Scrum scrums where representatives from each
13.02.2025 team meet to discuss progress and plan work to be done. 63
Agile methods across organizations
13.02.2025 65
Key notes
13.02.2025 66