Agile software development

Slides:



Advertisements
Similar presentations
Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
Agile
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Methods.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
Software engineering Process models Pavel Agejkin.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
Chapter 4 Agile Development
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Extreme Programming Based on and
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
AGILE SOFTWARE DEVELOPMENT. Agile software development : Agile software development refers to a group of software development methodologies that promotes.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Project Workflow.
Rob Gleasure IS3320 Developing and Using Management Information Systems Lecture 16: Agile Project Management Rob.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
CS223: Software Engineering
Agile Project Management and the yin & yang of
Agile Methodology and Scrum
Shifting to Agile: Are University Libraries Ready?
Introduction to Agile Software Development
Principles for Agile Development
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Software Development
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
Extreme Programming.
Rapid software development
Project Management and the Agile Manifesto
What do you need to know about XP?
How to Successfully Implement an Agile Project
Rosa María Torres de Paz
The Agile Manifesto is based on 12 principles
Chapter 3 – Agile Software Development
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Refactoring.
Projects, Assignments, and other Assessments
Introduction to XP.
Agile Development.
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Agile software development

Agile software development From Wikipedia Agile software development Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. There are many agile development methods; most attempt to minimize risk by developing software in short time frames, called iterations, from one to four weeks. Each iteration is a small software project of its own: including planning, requirements analysis, design, coding, testing, and documentation. …the goal is to have an available release (without bugs) at the end of each iteration. ... At the end of each iteration, the team re-evaluates project priorities. Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 2

Agile software development continues… From Wikipedia Agile software development continues… Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office. At a minimum, this includes programmers and their "customers" (customers are the people who define the product; they may be product managers, business analysts, or actual customers). The office may include testers, interaction designers, technical writers, and managers. Agile methods also emphasize working software as the primary measure of progress. Combined with the preference for face-to-face communication, agile methods produce very little written documentation relative to other methods. This has resulted in criticism of agile methods as being undisciplined… The modern definition of agile software development evolved in the mid 1990s as part of a reaction against "heavyweight" methods, as typified by a heavily regulated, regimented, micro-managed use of the waterfall model of development. …Initially, agile methods were called "lightweight methods." In 2001, prominent members… adopted the name "agile methods.“… Early agile method … include Extreme Programming (1996)... While it was not the first agile method, Extreme Programming (usually abbreviated as "XP") established the popularity of agile methods. Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 3

Some of the principles behind the Agile Manifesto are: From Wikipedia Some of the principles behind the Agile Manifesto are: Customer satisfaction by rapid, continuous delivery of useful software Working software is delivered frequently (weeks rather than months) Working software is the principal measure of progress Even late changes in requirements are welcomed Close, daily, cooperation between business people and developers Face-to-face conversation is the best form of communication Projects are built around motivated individuals, who should be trusted Continuous attention to technical excellence and good design Simplicity Self-organizing teams Regular adaptation to changing circumstances Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 4

Four values [1] Communication –“problems with projects can invariably be traced to somebody not talking to somebody else about something important” Simplicity –“what is the simplest thing that could possibly work?” Feedback –Put system in production ASAP –“Have you written a test case for that yet?” Courage –Always proceed with courage. Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 5

Extreme Programming (XP) Basic ideas [2] Was put together as a response to the increasing difficulty of practicing heavyweight methodologies, especially in medium and small projects Has very few rules and practices Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 6

Fundamentals of XP [1] The customer is always available, as part of the development team. On site, face-to-face communication with the customer in all phases. Simplistic: Keep the design as simple as possible, design for today-not tomorrow. Code the unit test first before writing production code and keep all tests running. Pair programming Very short iterations (of fixed length). Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 7

A few terms [1] User stories serve the same purpose as use cases but are not the same. They are used to create time estimates for the release planning meeting. User Stories are written by the customer. An architectural spike solution is a very simple program to explore potential solutions. Choose a system metaphor to keep the team on the same page by naming classes and methods consistently. Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 8

Life cycle of an XP project Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 9

Organizational aspects [1] Pair programming: All code is created by two people working together at a single computer. Person 1: writes the code. Person 2: thinks about the test cases, improvements etc. Move people around and change pairs. Training on the job, everybody knows about everything. Collective code ownership: Any developer can change any line of code to add functionality, fix bugs or refactor. A daily stand-up meeting starts each day. Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 10

Some References [1] Parastoo Mohagheghi [2] http://www.sensi.org/~ak/impit/studies/xp-presentation-complete.ppt Agile software development, UiA, Jan Pettersen Nytun, 23 May, 2019, page 11