Aug 17, 2015

Architecture design in Agile

"Architecture evolves" is the key word in Architect's mind while in Agile. Architecture is a set of features (Architecture Features) on which business features are developed, and its collaborative iterative design.

Architecture Design changes begin with one or more Epics. Architecture Epics are decided after an brainstorming session or architecture epic kanban system.
Next step is to decide one which first probably using WSJF, identify risks, discuss with business and architects, and define success criteria - all can be document in concise Business case document - optionally. Approved Epics go in backlog. This is done before Sprinit 0. 
After initial planning involve developers, and throught program Design is iterative.
Developers and Product owners can design too and if required get it approved from Designer.


Throughout the project, designers should be involved in Sprint planning to make decisions on product grooming.

A big move from waterfall to Agile is in Design approach where previous suggested final design and wireframes but later suggests iterative design and UX, similar discussion is on http://red-badger.com/ideas/agile-survival-guide-for-designers/


Sprint 0
In Sprint 0 we have opportunity to decide on what to be developed in Sprint 1. Get fundamentals right before a time box even - Sprint 0 - starts; therefore First brainstorming between product owner and architect must be done before Sprint 0.

Notes for Evereyone
Design is not final and do not wait for wireframes
Design is not done in vacuum.
Bootstrap - services, build, and UI - initially, if design is not ready
Designer should start talking early to everyone - Product owner, manager, UI, UX, etc.
World doesn't needs Minimum Viable Product
Talk, talk, and talk with everyone

Architecture features are implemented incrementally and implemented by Agile team. Architecture features complete the business features and they also originate from business features.

More to designers
Advance HTML, CSS, and JavaScript allows us to prepare attractive UI, which combines with business features to finally become a delighful product, which also happens to be our aim; therefore we should not wait for wireframes and start working on most delightful product.
Product owners and developers are part of Agile team and they can too design, so they must be provided with enough knowledge and tools to make changes in design if required.
UX designers should start with sketches and designers should start with tools.
Big Design Upfront, Minium Viable Product, Non technical person, etc. are gone definitions.
A light weight modeling at the start is Architect's envision to identify risks and critical points.

Question for SCM 

What are two (2) ways a Development Team can ensure a good application architecture?
The Development Team should have a set of guiding architecture principles that every Development Team member understands and follows when writing code.
The Development Team plans some time each Sprint to discuss the architecture needed for the features planned in that Sprint.
There is no specific "architect" role on a Scrum team, nor is there an architecture planning Sprint.  But, a good architecture doesn't just happen automatically.  Guiding principles and frequent conversations on the team help ensure that the most appropriate architecture is developed as it is needed by features being developed in the current Sprint.

Who is responsible for the system architecture of a product being developed using Scrum?
The Development Team.

When is a system's architecture decided?
Throughout the project, as understanding emerges and the Development Team learns more about the project.

Architecture spike?
A small development activity to learn about technical elements of a proposed solution


Big Agile Picture
(Source - http://www.scaledagileframework.com/)
On site you can click on any icon and get more details.






Share:

No comments

Post a Comment

Comment

© Shift, ShEkUP, Shape, and Surprise | All rights reserved.
Blogger Template Crafted by pipdig