SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT.

Slides:



Advertisements
Similar presentations
How to Implement Agile in Your Organization
Advertisements

Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June Marc de Oliveira, Simplify.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Archana Mehta. Spot a Failing project Costs a lot more than it should Its takes longer than anyone expected The product doesn’t do what it was supposed.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Agile Architecture Prabhu Venkatesan for COMP-684.
Building a SOA roadmap for your enterprise Presented by Sanjeev Batta Architect, Cayzen Technologies.
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
BTS530: Major Project Planning and Design Iterative Development References: Agile & Iterative Development, by Craig Larman, 2004, Addison Wesley. Agile.
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Agile Development.
NAUG NAUG Knowledge Evening – th February 2007.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile Software Engineering Frank Maurer Agile Software Engineering Lab, University of Calgary
Blue Mountain RAM Product Roadmap Jim Erickson, President and CEO Randy Paroda, Director of Product Development.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
1 Agile Methodology & Programming Ric Holt July 2009.
Agile/Scrum what’s in a name… Meet your presenter Randy Schmidt, PMI-ACP|CMS | MCP Strategic “Results” Architect.
Agile Software Development Brian Link
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Current Trends in Systems Develpment
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
SCRU M Scrum Overview - Commonly Used Terms Ali Qureshi, parorrey.com – 31 st Aug, 2015 PI Media parorrey.com.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
4/23/ :45 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
CSE Senior Design I Building a Plan Instructor: Mike O’Dell Several of the slides in this module are a modification and amplification of slides prepared.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
UI Panel: Agile User Interface Design Colin Clark.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Stand Up Comedy Project/Product Management
User Group Meeting 2/11/2010 – 6:00 p.m.. Meeting Agenda 1. Group Goal: To create a forum in our local area where we can exchange ideas related to agile.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Implementation Considerations. Agile software development is a methodology based on iterative and incremental development, where requirements.
Project success = business success TM Introduction to Agility Agility is a comprehensive response to the business challenges of profiting from rapidly.
It’s Agile …. like! A Corkman’s introduction to Agile software delivery.
2 nd Class -Business Cases – Value Proposition -Agile vs. Waterfall Development Process Bus100: Building Software Products: From Strategy to Sales John.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Agile Project Management and the yin & yang of
Agile Methodology and Scrum
Flight Software Conference 2016
SCRUM.
Agile Training – Agile Overview
Agile Software Development Brian Moseley.
CS 577b: Software Engineering II
Scaled Agile Requirements: What, When & How
Agile/Scrum what’s in a name…
Waterfall and Agile Quality Techniques
Project Management and the Agile Manifesto
How to Successfully Implement an Agile Project
Agile Fit Check Framework Outbrief
Andrew Begel, Nachiappan Nagappan Microsoft Research
Introduction to Agile Blue Ocean Workshops.
Project Lifecycle and IT Product Life Cycle
Agile Development – a new way of software development?
Extreme Programming.
Adapting Agile in Pharmaceutical Industries
Presentation transcript:

SOFTWARE ARCHITECTURE AND AGILE DEVELOPMENT AGILITY AND ARCHITECTURE:CAN THEY COEXIST? PEKKA ABRAHAMSSON, UNIVERSITY OF HELSINKI MUHAMMAD ALI BABAR, IT UNIVERSITY OF COPENHAGEN PHILIPPE KRUCHTEN, UNIVERSITY OF BRITISH COLUMBIA ALAN MESSINGER SOURCE ARTICLE :

WHAT IS AGILE?

WHAT IS AGILE?

REASONS WHY AGILE AROSE o Response to Waterfall and other traditional development methodologies. o Need for projects to respond better to change. o Created by developers in reaction to traditional top-down, management-heavy work environments. BUFD and YAGNI.

BENEFITS OF AGILE o Flexibility: Changes to requirements, even late in the project life cycle can be handled with little disruption. o Increased Productivity?: Proponents of Agile claim improvements in project success. o Developer Friendly: Developers tend to prefer working in Agile environments.

CRITICISMS OF AGILE o Not Scalable: Difficult to make Agile work across large geographically dispersed teams in complex enterprise level projects. o Not Proven: Agile is a collection of best practices based on opinion. Agile projects tend to collect few hard metrics. (working software is the primary gauge of progress) o Too Developer Friendly: Meets developer needs, not necessarily business goals. Agile is often perceived as lacking rigor or structure.

“Agile Software Development is often considered a software development process, but is actually a marketing technique developed by 3M to sell more post-it notes.” Uncyclopedia, The Content-Free Encyclopedia

“Just as a crop circle is hard to see when you’re standing in the middle of it, we believe that much of frameworks’ accidental complexity comes from their bottom-up creation intended to give programmers, not architects, more powerful, expressive forms.” Paul Clements & Mary Shaw “The Golden Age of Software Architecture” Revisited

A CLOSER LOOK: COMMON AGILE CHARACTERISTICS o Iterative and incremental life cycles, o Focus on small releases, o Collocated teams, and o A planning strategy based on a release plan driven by a feature or product backlog and an iteration plan handling a task backlog. Source: Sanjiv Augustine, Managing Agile Projects

EXAMPLE OF AN AGILE CYCLE: SCRUM Source: G3 Global

SCRUM – A DIFFERENT LOOK Source: msdn

WAYS AGILE NEEDS ARCHITECTURE o Communication: SCRUM meetings and Stakeholder feedback. High level communication can be aided by Architecture. o Decomposition/Sprint Planning: How to divide a project up into sprint sized blocks in an inherently architectural problem. o Non Functional Requirements: User stories tend to focus on functionality. You cannot handle security in a 2 week sprint.

WHAT ARCHITECTURE CAN LEARN FROM AGILE o Flexibility: It is important for architectures to evolve over the lifecycle of the project. Project control comes from the ability to respond to change o Team structure: The perception of “the ivory tower” is damaging to team morale and productivity. Architects should be part of the development team.

REALITY VS. PERCEPTION

SOFTWARE ARCHITECTUREAGILE DEVELOPMENT ANTICIPATION: Make important decisions early. ADAPTATION: Leave decisions as late as possible. QUALITY ATTRIBUTES: Architectural concerns often relate to non-functional requirements. FUNCTIONALITY: User stories relate primarily to functional requirements. MACRO PERSPECTIVE: Big picture, high level viewpoint of the project. MICRO PERSPECTIVE: Focus on small chunks, two week sprints. BUSINESS CONCERNS: Balance conflicting requirements and concerns upfront. DEVELOPER FRIENDLY: Improves team morale COMPLEXITY: The more complex a project the more of a need for architectural planning SIMPLICITY: Divide and conquer. Known domains. Reusing a basic architecture. DIFFERENT APPROACHES AND RELATIVE STRENGTHS