Agile Architecture Prabhu Venkatesan for COMP-684.

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Are Parametric Techniques Relevant for Agile Development Projects?
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Delivering Enterprise Projects Using Agile Methods Brent Barton May 23, 2006.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
3 Traditional Development Methods Of (SDLC) -Prototype -Waterfall -Agile Group9 Q2 Heng shujia 0823.
© conchango Agile Architecture Microsoft Architect Insight Conference Howard van Rooijen
Agile Project Management with Scrum
Agile development By Sam Chamberlain. First a bit of history..
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.
Agile Software Development Matt Rice November 27, 2006.
Agile Methods.
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
SEG4911 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Thoughts about Agile Design and Release Management Timothy C. Lethbridge.
Get quality results faster: Agile Projects and your team Presenters: Laurie Barnas and Wendy Taylor, Associate Registrars, University of Victoria.
Scrum Fundamentals: Analyst to ‘Agilist’ By Louis Molnar (C) IAG Consulting 2009 The Agile Business Analyst By: Louis Molnar.
CPSC 871 John D. McGregor Processes – a first iteration Module 1 Session 1.
Rally: One Writer’s Perspective. Background 28 years in technical communications including Symantec, Autodesk, and Cisco. Participated in Rally-based.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
CompSci 230 Software Design and Construction
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Chapter 4 Agile Development
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Current Trends in Systems Develpment
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
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.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Software Engineering (CSI 321) An Agile View of Process 1.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agile Development Implementation Considerations. Agile software development is a methodology based on iterative and incremental development, where requirements.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Agile. Introduction Who is this guy?
TIK 302 Rekayasa Perangkat Lunak Agile Proses. Agile View of Process Represents a reasonable compromise between conventional software engineering for.
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.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Agile Software Development
Agile Software Development Brian Moseley.
COMP 350: Object Oriented Analysis and Design Lecture 2
How to Successfully Implement an Agile Project
Introduction to Agile Blue Ocean Workshops.
Adjective: Able to move quickly and easily. Principles and Values
Adapting Agile in Pharmaceutical Industries
Presentation transcript:

Agile Architecture Prabhu Venkatesan for COMP-684

Agile and Architecture : Do they get along ? Oxymoron Compatible ?

Architecture In the beginning … 1970’s thro 2000 “The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.“ Software architecture is not only concerned with structure and behavior, but also with usage, functionality, performance, resilience, reuse, comprehensibility, economic and technological constraints and tradeoffs, and aesthetics. … There was Architecture.

Architecture Process start with a business goal work out what needs to change (people, process, technology, application, data …) Spell what the changed scenario will look like. followed by an implementation plan execution of the plan with proper governance. The approach is top-down, structured and planned.

Agile In February 2001, 17 software developers met at the Snowbird, Utah resort, to discuss lightweight development methods. and was born … Agile Manifesto: “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.”

Agile Process Customer satisfaction by rapid delivery of useful software Working software is delivered frequently (weeks rather than months) Close, daily co-operation between business people and developers Self-organizing teams Regular adaptation to changing circumstances Welcome changing requirements, even late in development

Anticipation vs. Adaptation “…the mission, scope, tools, mentality, culture, and personality types of enterprise architects and agilists are so radically different …. not only is the nature of their work different, but the management styles, employment incentives, and career path options that work with one group don’t work with the other …” Architecture = Big Up-Front Design - BUFD Architecture = massive documentation, YAGNI – You ain’t gonna need it Role of architect(s) Low perceived or visible value of architecture Agile lacks any scientifically-based evidence to support its proponents agile methodologies are too extreme

To Summarize

Is the a middle path What would be a model that combines the benefits of Agile methodology with the predictability offered by conventional architecture ? Can it be applied to projects of various sizes ? Does it involve an architect ? What is the role of the architect ?

Agile Architecture - Objectives Deliver working solutions Maximize stakeholder value Find solutions which meet the goals of all stakeholders Enable the next effort Manage change and complexity

Agile Architecture - Principles Value people Communicate Less is More – Don’t overbuild Embrace Change – Plan it, Manage it Choose right solution for enterprise Deliver Quality Model and document in a agile fashion

Agile Architecture - Lifecycle

Agile Architecture – Interactions – Upfront Planning Understand business objectives. Get input from the technical team. Communicate the general direction to everyone. Set approximate target ranges for attributes and trade-offs Choose important design patterns. Outline general interactions among significant patterns. Reuse the corporate stack. Prototype early to verify assumptions. hardware and software changes are inherently non agile.

Agile Architecture – Interactions – Storyboard Actively facilitate story- boarding sessions. Work architectural user stories into the backlog Add stories to improve specific attributes, refactoring. Add stories to build design patterns Add stories designed to validate hardware and software

Agile Architecture – Interactions – Sprint Attend daily stand-ups. Build functionality as a means of gaining understanding. Mentor and assist as expertise allows. Build attributes into code, explicitly Assist in designing to build/improve attributes. Solve for detailed design patterns. Assist in building the most critical design patterns Validate hardware and software selection in early sprints. Change early and quickly if stack needs adjusting.

Agile Architecture – Interactions – Sprint Attend the sprint review. Review documentation. Advocate refactoring for architectural value with team/owner. Verify that the delivered solution meets target ranges. Adjust target ranges if build indicates a need for adjustment. Verify that the delivered design patterns are valid. Adjust design patterns as build work indicates. Verify hardware / software by continually through code release Deploy to other environments

Agile Architect– Skills Decomposition of Stories. Business Centric vs. Architecture Centric decomposition Product Owner Buy in. Quality Attribute trade-off Architecture Backlog – Out-of-scope, wishlist Incremental Architecture - Hardware / Software stack - Design Patterns - Quality Attributes - Communication

Conclusion … a triumph equaled only by its monumental failure … I have since come to understand that the answer eluded me because it required a lesser mind, or perhaps a mind less bound by the parameters of perfection.

Questions ?