Agile Software Development II

Slides:



Advertisements
Similar presentations
Agile Development Primer – Using Roundtable TSMS in an Agile Shop Michael G. Solomon Solomon Consulting Inc.
Advertisements

Steve Collins Richland County IT Manager Agile.  Have Fun  Learn About Agile  Tell Some Stories.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Scrum introduction XP Days Agenda Introduction The Scrum process – roles, ceremonies and artifacts Backlog management Conclusions and questions.
Morning – 9am Getting Started Agile Manifesto Values & Principles Scrum Framework ~~ 10:40 to 11:00 Break ~~ Scrum Roles Backlog Grooming Estimation.
Agile development By Sam Chamberlain. First a bit of history..
Introduction to Agile.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Copyright BSPIN Agile Practices Benchmarking Case Study by Cosmonet Solutions Pvt. Ltd.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Software Development Brian Link
What is Scrum Process? Where is it used? How is it better?
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
When is Agile the Best Project Management Method? Lana Tylka.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. Software Design Process.
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
Het einde van het beroep van tester - Wat Agile, DevOps en Scrum betekenen voor het testvak -
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Copyright © by Mark J. Sebern Software Engineering Process I SE 2800.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Geoff Davis Software Development Leader Software Development at eWater.
Introduction to Agile. Introduction Who is this guy?
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta.
Skiing and Boxing Coaching Product and Enterprise Teams 黃馨誼 蘇育光 修訂.
Project Workflow.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
Agile Methods SENG 301.
Agile Project Management and the yin & yang of
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Project Management
The Strategic Role of Information Development in Continuous Delivery
Agile Project Management Methodology Scrum Overview
Scrum.
Agile Training Day 2 November 17, 2015.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Agile Training – Agile Overview
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Where Agile Business Meets Agile Development
Agile Software Development Brian Moseley.
Information Technology Project Management – Fifth Edition
By: By: Agile Scrum Master Online Training.
Navigating an Agile Transformation
Creating User Documentation in an Agile World
Product Backlog List of things that needs to be done to make the product come into existence 
Approaches to Systems Development
Rapid software development
Steven Costa, Cassidy Farrar, Alex Duree-Ferriss , Tingting Zheng
AGILE METHODOLOGY MANAGE PROJECT USING AGILE SCRUM.
Project Management and the Agile Manifesto
Johanna Rothman Agile Team Measurements Chapter 12
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Summarizing Our Models to Date
Tools and Techniques for Agile Project Management
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Scrum in Action.
Agile Development.
A quick intro to SCRUM and KANBAN By John Voris.
Agile, Scrum and CMMI Methodologies
Presentation transcript:

Agile Software Development II One philosophy, many incarnations Lere Williams

Overview What’s agile again? Agile management methods Organizing code for agility Last lecture we talked a bit about the history of software development processes, focusing on the waterfall model (the previous dominant development process). I suggested that with software, particularly software that delivers a service (a very common paradigm in modern software), change is inevitable. In the face of change, agility -- namely the ability to move quickly and adapt to change -- is a great concept around which to center your development philosophy. This lecture, we’ll talk about the breadth of the agile philosophy, but also, specific coding practices that we’ve found help to increase agility.

The agile model [Can someone summarize for me the basic ideas behind an agile development process?] Embrace change by moving fast. Perform all the same steps, but use aggressive scope management to shorten the timeframe to delivering working software. [Why is this a better model in common software development contexts?] Easier to plan over shorter time periods, more concrete tasks, therefore easier to ensure progress. Short, release-driven iterations forces us to architect code such that it can change often, along with the world. Customer feedback. Change in underlying technologies. Change to market/product environment. Human/social/organizational advantages? Perhaps, as we’ll see.

What are the different incarnations of this model? Many common coding practices TDD/BDD Code review Continuous integration Continuous deployment Plethora of management and collaboration strategies Scrum, Kanban, Extreme Programming, etc. The readings for this lecture illustrate how broad agile philosophy is: Notice that the agile manifesto says almost nothing about code, and only the most general things about management. Spotify remains dedicated to agility, even though all of its teams self-organize however they see fit.

Common agile coding practices TDD/BDD Use the tests to develop your thinking about interfaces, and as lightweight spec to guide the development of the actual code. Code review Improve your own skills, improve code quality, share knowledge. Continuous integration and delivery Ensure that new code is always up to standard. Keep the path to release clear; make releasing easy. Good tests give you confidence to make changes or refactor while maintaining development speed. Docs rot, tests do not.

We'll do it live!

Example: Scrum Roles: Product Owner, Dev Team, (Scrum master) Sprint Planning Retrospective (to encourage continuous improvement) User stories from the backlog are prioritized and estimated The actual sprint Daily standup meetings to review progress, remove blockers Demo day

Recommended resources Task management: Pivotal Tracker, Asana Version control: Github (workflow basics, CLI basics) Test frameworks: googletest (C++), nosetest (Python), rspec (Ruby), jasmine (Javascript) Continuous integration: TravisCI, CircleCI Deployment/Hosting: Heroku

Recap Agile process defines certain priorities, but leaves a lot of room for specific workflows Some coding practices are increasingly common in the quest for agility