t bunio active-architecture

57
When User Stories aren’t enough Active Architecture @tbunio Bornagainagilist.wordpress.com

Upload: sdeconf

Post on 19-May-2015

356 views

Category:

News & Politics


0 download

DESCRIPTION

Active Architecture

TRANSCRIPT

Page 1: T bunio active-architecture

When User Stories aren’t

enough

Active Architecture

@tbunio

Bornagainagilist.wordpress.com

Page 2: T bunio active-architecture

Agenda

• Me

• Agile Review

- Agile Question

• User Stories and User Story Process

• What‟s missing?

• Active Architecture

• Examples

• Questions

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 3: T bunio active-architecture

Me

• Investors Group for 12 years

- Software Developer

- DBA/Data Architect

• Protegra for 10 years

- DBA/Data Architect

- Project Manager

- Agile Team Member

• Project Manager/Application Architect/Tester

• @tbunio

• Bornagainagilist.wordpress.com

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 4: T bunio active-architecture

Agile Interests

• Agile on fixed price contacts

• Agile in large enterprises

- Government

- Private

• Agile estimating

• Agile tools

• Agile database development

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 5: T bunio active-architecture

Learning outcomes

• Describe what Active Architecture is

• Describe the benefits of Active Architecture and what

some limitations of User Stories might be

• Contrast Active Architecture to other forms of

Architecture documentation

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 6: T bunio active-architecture

Agile Question

• What do people think is the main shortcoming of Agile?

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 7: T bunio active-architecture

Agile Review Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 8: T bunio active-architecture

Traditional

• Textual Status Reports

• Detailed project plan at the start of the project

• Discrete project roles

• Serial project phases

• Large and voluminous requirements documentation

• Large testing phase

- Usually can result in manual testing

• „Big Bang‟ deployment

- Usually can result in manual deployments

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 9: T bunio active-architecture

Agile

• Visual Project Management

• Not a detailed project plan at the start of the project

• Cross-functional team members

• Iterations

• Lean requirement documentation

• Testing phase integrated in all activities

- Automated testing

• Multiple deployments

- Automated deployments and continuous integration

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 10: T bunio active-architecture

Agile Thoughts Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 11: T bunio active-architecture

Agile Thoughts

• Being quicker and doing less for the sake of being

quicker and doing less is not being Agile

- It needs to result in more value to the client and project

• We need to be careful to not throw the Baby (good

traditional processes) out with the Bathwater (bad

traditional processes)

• In particular

- All Up front Design and Architecture

- All Estimating

• Traditional and Agile are not mutually exclusive

processes

- There are opportunities for hybrid approaches

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 12: T bunio active-architecture

These are not the processes

you are looking for…

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 13: T bunio active-architecture

User Stories

Copyright : The Sherpa Project – www.thesherpaproject.com

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 14: T bunio active-architecture

User Stories

Copyright : The Sherpa Project – www.thesherpaproject.com

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 15: T bunio active-architecture

User Stories

Copyright : The Sherpa Project – www.thesherpaproject.com

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 16: T bunio active-architecture

What User Stories are…

A small piece of

functionality that

provides some value

to a user

• As a user, I want to

login with my

password, so that I

can gain access to

the site.

“A place holder for a conversation.”

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 17: T bunio active-architecture

What User Stories are…

I Independent *

N Negotiable (can be prioritized)

V Valuable (to a user)

E Estimable

S Small

T Testable

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 18: T bunio active-architecture

Formats

By the book:

As a [role],

I want to

[some action],

so that

[goal]

As a [user]

I want to

[login with my pwd]

so that

[I can gain access to

the site]

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 19: T bunio active-architecture

Formats

Who

What

Why

As a

[user]

I want to

[login with my pwd]

so that

[I can gain access to

the site]

The “by the book” format is great for learning, but at its core, it is just Who/What/Why

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 20: T bunio active-architecture

User Story Process

• Typically User Story will be compiled using a variety of

methods.

• These include User Story Mapping and other traditional

methods

- Interviewing

- Workshops

- Focus groups

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 21: T bunio active-architecture

User Story Estimation

• All the User Stories are then typically estimated relatively

• Planning Poker is then done either on:

- An iteration by iteration basis

- A few iterations in advance

• Planning Poker will typically confirm the Requirements

and enhance aspects of the design

• In addition, Planning Poker usually also touches on

aspects of detailed design and architecture.

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 22: T bunio active-architecture

What is missing?

• Since we are doing design iteratively…

- How do we minimize rework?

• Could designs in later iterations cause rework?

- How do we know our designs are consistent across iterations?

• What if different team members are responsible for different aspects?

• What if team composition changes?

- How do we know they are no gaps in our design?

• Are there user stories that we are missing?

• And since User Stories are from a user event

perspective, are we missing „System‟ stories that define

background details?

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 23: T bunio active-architecture

What are we missing?

• User Stories and Planning Poker sessions will answer

these questions eventually

• But is there a light-weight process that can answer these

questions earlier to minimize rework?

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 24: T bunio active-architecture

Shared Design Vision Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 25: T bunio active-architecture

Shared Design Vision

• After we have compiled and estimated the User Stories,

do we have a shared vision of the design and ultimate

solution?

- At a high level?

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 26: T bunio active-architecture

Without a Shared Vision Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 27: T bunio active-architecture

User Experience Visioning

• In David Alpert‟s talk yesterday on User Experience

Design, he mentioned the process of „thinking through‟

the User Experience

- After this development went very smoothly

• This provided the awareness of context of the bigger

picture for all that were involved.

• I am essentially proposing a Lean/Agile „thinking through‟

process for design or architecture

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 28: T bunio active-architecture

What would the Document

look like?

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 29: T bunio active-architecture

Traditional Design

Documents

• Large

• Textual

• Passive State

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 30: T bunio active-architecture

Agile Design Document

• Light-weight

• Graphical and textual

• Active State

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 31: T bunio active-architecture

Agile Design Document

• Active versus Passive

• Traditional design document is passive like a road map

• Active Architecture is active like trip directions

• They don‟t describe the road, they describe how the road

is to be travelled or used.

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 32: T bunio active-architecture

Three types of Agile

Requirements

• User Stories – Stories of how the User interacts with

the application or manual processes

• Component Conversations – Conversations between

components of the application

• Technical Tasks – Technical tasks that the applications

needs to perform within a component

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 33: T bunio active-architecture

Active Architecture Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 34: T bunio active-architecture

Agile Requirements

• It is thought that User Stories and Tests can be all the

documentation you require on an Agile project

• But we know we can‟t create tests for everything

• How can we create complete user stories for:

- Portfolio Rebalancing Engine

- Payroll Engine

- Scheduling or Matching Engines

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 35: T bunio active-architecture

Solution Planning and

Design

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 36: T bunio active-architecture

Component Conversations

• Ensures User Stories are consistent in how functionality

is handled across components

• Ensures User Stories do not create an undue amount of

rework when an original story is encountered in a later

iteration

• Ensures that the entire solution has been thought

through at a high level

• Reduces the chance that a story will be discovered late

that will require earlier stories to be revisited

• Ensures technical tasks are implemented consistently

across components

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 37: T bunio active-architecture

Component Conversation

• Ensures the creation of complex back-end high level

requirements that would be inefficient and possibly

inconsistent to define on a story by story basis

• Ensures the creation of complex back-end high level

requirements that may not be covered easily by user

stories

• Components conversations can be reviewed to ensure

we have all the system functionality covered and there

are no gaps.

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 38: T bunio active-architecture

Agile Planning Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 39: T bunio active-architecture

Agile Planning Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 40: T bunio active-architecture

Solution Driven Development

• “I believe in what I like to term Solution Driven

Development. If you can‟t or haven‟t envisioned the

solution, how can you start executing the project? Some

people would say that not having to envision the total

solution is Agile. I believe it is unprofessional. Some

would say that the solution will change anyway so why

spend the effort envisioning and planning when it is likely

to change? I believe that we can’t proceed unless we

have a shared vision on what we are creating.”

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 41: T bunio active-architecture

Welcome Changing

Requirements

• “welcome changes to the requirements in response to

evolving business needs”.

• Two assumptions:

- “Changes are welcome to the requirements” – This means we

know what the baseline of the requirements are. Otherwise, how

could we know what a change is?

- “Respond to evolving business needs” - We are responding to

evolving business needs. This assumes that we have a baseline

of current business needs.

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 42: T bunio active-architecture

Active Architecture

Objectives

• To think things through from a requirements and design

perspective

• To envision and design the solution to ensure that the

solution is complete, consistent, and cohesive

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 43: T bunio active-architecture

Potential Format

• [#][Component A] does

[primary action].[object].[additional action] by

[Action].[Component B] when [event]

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 44: T bunio active-architecture

Facebook example –

Browsing Friends

- [1][SuggestedFriends] does [create].[SuggestedFriendList] by [filtering

common connections across all friends].[Connection-DB] when [user

logs on]

- [2][FacebookUser] does

[Sends].[FriendInvitation] by

[selectingconnectioninvitebutton].[SuggestedFriendList] when

[User clicks on send friend request]

- [3][FacebookUser] does

[Updates].[SuggestedFriendList] by

[selectingconnectionhidebutton].[SuggestedFriendList][HideFriendList]

when

[User clicks on hide friend]

- [4][FacebookUser] does

[Accept].[FriendInvitation] by

[selecting accept invitation].[PendingInvitations] when

[User clicks on accept invitation]

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 45: T bunio active-architecture

FaceBook example –

Learnings

• There is a process that creates these

SuggestedFriendLists separate from the User

interactions

• There is a Connection-DB that is used to create this

SuggestedFriendList and possibly the HideFriendList

• There is an object that contains the Pending Invitations.

(And possibly a similar concept for other pending

objects)

• There is the concept of a persisted HideFriendList to

ensure suggestions that have been selected to be

hidden will not appear again.

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 46: T bunio active-architecture

Email Example Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 47: T bunio active-architecture

Email Example Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 48: T bunio active-architecture

Email Example Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 49: T bunio active-architecture

Email Example Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 50: T bunio active-architecture

Email Example Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 51: T bunio active-architecture

Email Example

• Although the User Story map will help to flesh out the

functionality in Iterations, what about the following items?

- Message delivery and transmission (and confirmation)

- How and when will messages be stored?

• How can they be recovered?

- Junk mail and approved sender functionality

- Encryption/Decryption functionality

• For novel solutions, it usually isn‟t enough to just

document the user interactions requirements

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 52: T bunio active-architecture

Active Architecture

Guidelines

• Maximum of 2-3 days for a 3-6 month project

• Accompanied by a solution design diagram on a white

board

- Take pictures after review with team to gain consensus

- You can‟t make me use Visio… not gonna do it..

• These two deliverables can be all that is required for

Agile design documentation

Agile Review

User Stories

What‟s missing?

Active Architecture

Examples

Page 53: T bunio active-architecture

Courage

Page 54: T bunio active-architecture

Courage

Page 55: T bunio active-architecture

Courage

• Most of what I‟ve presented are other thoughts and

guidelines with my thoughts and guidelines

• I encourage you to try them out and tailor them to your

own situation

• How else can we make Agile processes even better?

Page 56: T bunio active-architecture

References

• Blog Posts :

- http://bornagainagilist.wordpress.com/2011/06/13/active-

architecture-user-stories-for-architecture/

- http://bornagainagilist.wordpress.com/2011/07/14/solution-

driven-development/

• InfoQ article:

- http://www.infoq.com/articles/active-architecture-agile

Page 57: T bunio active-architecture

Questions?