Software Engineering_Lab3
Software Engineering_Lab3
Hasan Kivrak
Some of slides are modified versions of slides by Henrik Kniberg (What is Agile?)
Agenda
● Agile software development
○ agile fundamentals/principles,
■ the outputs from the development process are decided through a process of
negotiation during the software development process
○ User interfaces are often developed using an IDE and graphical toolset.
Agile Manifesto
www.agilemanifesto.org
We are uncovering better ways of developing
software by doing it and helping others do it.
Feb 11-13, 2001
Snowbird ski resort, Utah
PREFER TO
● Welcome changing requirements, even late in ● Working software is the primary measure of
progress.
development. Agile processes harness change for
the customer's competitive advantage. ● Agile processes promote sustainable development.
The sponsors, developers, and users should be able
● Deliver working software frequently, from a couple to maintain a constant pace indefinitely.
of weeks to a couple of months, with a preference ● Continuous attention to technical excellence and
to the shorter timescale. good design enhances agility.
● Simplicity--the art of maximizing the amount of
● Business people and developers must work work not done--is essential.
together daily throughout the project.
● The best architectures, requirements, and designs
● Build projects around motivated individuals. Give emerge from self-organizing teams.
them the environment and support they need, and ● At regular intervals, the team reflects on how to
trust them to get the job done. become more effective, then tunes and adjusts its
behavior accordingly.
Customers should be closely involved throughout the development process. Their role is
Customer involvement
provide and prioritize new system requirements and to evaluate the iterations of the system.
The software is developed in increments with the customer specifying the requirements to
Incremental delivery
be included in each increment.
The skills of the development team should be recognized and exploited. Team members
People not process
should be left to develop their own ways of working without prescriptive processes.
Expect the system requirements to change and so design the system to accommodate these
Embrace/Welcome change
changes.
Focus on simplicity in both the software being developed and in the development
Maintain simplicity
process. Wherever possible, actively work to eliminate complexity from the system.
Four Key Points
1. Iterative design process
2. Continuous stakeholder engagement
3. Aims for quality and reliable software
4. Short development cycles
a. (up to a month) allows to regular delivery
of software
○ Cannon ball
Traditional Model vs. Agile
● Agile
○ The customer discovers what he wants
○ The developers discover how to build it
○ Things change along the way
○ Homing/Orienting missile
Agile vs Plan-Driven Methods
Agile Plan-driven
○ Kanban