© conchango 2006 Agile Architecture Microsoft Architect Insight Conference Howard van Rooijen

Slides:



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

Program Management School Agile & ADDIE Add-Up (AAAU) Elliott Masies Learning 2012 October 21-24, 2012.
Agile Software Development Robert Moore Senior Developer Curtin University.
Interoperability. What is testing? Where have we come from? Where are we now? Why is nFocus at MSAIC? Overview.
© conchango Scaling Agile with TFS The Architecture Forum Colin Bird December 2006.
Agile Architecture Prabhu Venkatesan for COMP-684.
Agile Project Management with Scrum
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Agile Software Development Matt Rice November 27, 2006.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
© conchango Scrum for Team System.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Managing a Project Using an Agile Approach and the PMBOK® Guide
Programming with eyes wide open. Your host today Subby Angelov Team
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
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.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 4 Agile Development
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
Tuesday, June 8 th, Agile Development-Successful Delivery & Implementing Across the Enterprise.
4/23/ :45 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
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.
K.Ingram 1 Sept 2007 Agile Software Development. K.Ingram 2 Sept 2007 Contents Agile Software Development: 1.What is it? 2.Agile’s Values, Principles,
Het einde van het beroep van tester - Wat Agile, DevOps en Scrum betekenen voor het testvak -
© conchango Scaling Agile Teams Architect Insight Conference Colin Bird & James Dawson March 2007.
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Bringing Sense, Sensibility, and Sanity to projects.
#AgileEd. Using Agile in the Classroom Cindy Royal, Associate Professor Texas State University slideshare.net/cindyroyal #AgileEd.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Cultivating Agile Requirements
10 key principles of agile software development
Using Scrum to Improve Teamwork, Communication, Quality and Speed
AGILE - IMPLEMENTATION (C) CLARION TECHNOLOGIES. ability to move quickly and easily…. AGILE MEANING (LITERALLY)
TIK 302 Rekayasa Perangkat Lunak Agile Proses. Agile View of Process Represents a reasonable compromise between conventional software engineering for.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Using Scrum to Improve Teamwork, Communication, Quality and Speed.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Skiing and Boxing Coaching Product and Enterprise Teams 黃馨誼 蘇育光 修訂.
Embedded Systems Software Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Shifting to Agile: Are University Libraries Ready?
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile Software Development Brian Moseley.
The Value of Agile Methods
Introduction to Software Engineering
How to Successfully Implement an Agile Project
Agile Process: Overview
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Introduction to Agile Blue Ocean Workshops.
Dr. Rob Hasker SE 3800 Note 2 Ch. 1, Shortcuts 1 & 2.
Adjective: Able to move quickly and easily. Principles and Values
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Scrum Science NGSS: Engineering, Technology, Applications of Science
Agile Development – a new way of software development?
Adapting Agile in Pharmaceutical Industries
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

© conchango Agile Architecture Microsoft Architect Insight Conference Howard van Rooijen Simon Evans

© conchango The Shift in Mentality ‘If I've got six months to build a system, then I'll spend six months building it. I'll also spend six months designing it, and another six months testing it. The good news is that it's the same six months.’ Ron Jeffries

© conchango Failure Rates The Methodology didn’t work The Solution didn’t work

© conchango Feature Use

© conchango Agile Adoption in 2005 Yes (37%) No (45%) Maybe (18%)

© conchango Manifesto for Agile Software Development 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.

© conchango Scrum Process

© conchango Why Do We Architect Solutions? Reduce the risk in delivering solutions that are fit for purpose

© conchango Recipe for Successful Software ‘easy to use’ ‘scalable’ ‘accessible’ ‘perform well’ ‘easy to maintain’ ‘extensible’ ‘secure’ ‘cost effective’

© conchango Facets of Design END USER PRODUCT OWNER IT SUPPORT DEVELOPER SYS ADMIN

© conchango Designing Your Solution No two solutions are exactly the same Assess how important each facet of design is to your project’s success Only make the solution as complex as it needs to be Good design always means tradeoffs

© conchango Cost of Complexity

© conchango Understanding Project Complexity Gain the vision for the project Work only at the conceptual level Set out design goals for the project Assess likely solutions to the design goals Do not focus on a single solution or technology Assist in the creation of the product backlog Propose preferred technologies Gain commercial backing and trust Scale the work to the project complexity No prototypes Sprint Zero

© conchango Breaking Down the Backlog Each item on the backlog must be a deliverable business feature that you can produce and demonstrate within one sprint The development team can add technical items to the backlog The more granular the backlog, the more accurate the estimates … … but more effort goes into estimating more granular backlogs Keep product backlog items meaningful to the business Do not be afraid of changing estimates again and again – the estimates are as much for the team as for the business

© conchango Horizontal vs. Vertical Architecture (1)

© conchango Horizontal vs. Vertical Architecture (1)

© conchango Horizontal vs. Vertical Architecture (2) Horizontal Architecture (Contract) +Design interfaces that span the breadth of the product backlog. +Devote time to selecting namespaces. +Consider component-level architectural dependencies. -Do not code any implementation until the feature is started from the sprint backlog -Writing implementation code before you start the feature will introduce waste and risk not completing the feature from the sprint backlog. Vertical Architecture (Feature) +Complete demonstrable features that will provide value to the business. +Ensure the team has a good understanding of related product backlog items in order to make informed decisions. +Assist the product owner in selecting high business impact and high technical risk features first. -Do not attempt to deliver individual features before conducting group design and agreeing contracts. -Failure to conduct enough group design sessions will cause software rewrites and force knowledge silos within the team.

© conchango Causes of Design Reworking Ineffective communication of the technical vision Not enough group design sessions Lack of clarity of requirements Lack of team experience Poor understanding of development / design standards Pretending that completed work is ‘done’

© conchango Minimise Development Complexity Reuse as much as possible Use existing frameworks Use well-documented patterns and practices Borrow other peoples’ ideas Rely on your own experiences Invest in good engineering practices to reduce friction The stub is your best friend ASP.net provider model

© conchango Group Design Timeboxed sessions for the whole team to contribute Sessions should be conducted iteratively Six minds are better than one Conducted informally Visual Studio 2005 class designer (via projector) provides stub creation Group design sessions should lead to pair programming and working alone Group design sessions avoid silos of knowledge

© conchango Consolidating Architecture Retrofit well-designed reusable components from projects with proven architectures

© conchango Pyramid of Engineering Practices

© conchango The ole of an Agile Architect Enable the team to deliver potentially shippable code. Every month. Focus on delivery of features. Communicate vision of the project. Empower the team to make architectural decisions. Be involved in the formation of the product backlog. Eliminate irreversibility in software designs. Minimise software waste.

© conchango Scrum for Team System Sprint Product Backlog Item

© conchango Scrum for Team System Sprint Backlog Item Sprint Retrospective Item

© conchango Scrum for Team System

© conchango Scrum for Team System

© conchango Feedback / Questions Find us at the conference or contact us via the methods below: