t bunio active-architecture
Post on 19-May-2015
356 Views
Preview:
DESCRIPTION
TRANSCRIPT
When User Stories aren’t
enough
Active Architecture
@tbunio
Bornagainagilist.wordpress.com
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
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
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
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
Agile Question
• What do people think is the main shortcoming of Agile?
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Agile Review Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
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
Agile Thoughts Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
These are not the processes
you are looking for…
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
User Stories
Copyright : The Sherpa Project – www.thesherpaproject.com
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
User Stories
Copyright : The Sherpa Project – www.thesherpaproject.com
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
User Stories
Copyright : The Sherpa Project – www.thesherpaproject.com
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
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
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
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
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
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
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
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
Shared Design Vision Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
Without a Shared Vision Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
What would the Document
look like?
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Traditional Design
Documents
• Large
• Textual
• Passive State
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Agile Design Document
• Light-weight
• Graphical and textual
• Active State
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
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
Active Architecture Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
Solution Planning and
Design
Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
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
Agile Planning Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Agile Planning Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
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
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
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
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
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
Email Example Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Email Example Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Email Example Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Email Example Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
Email Example Agile Review
User Stories
What‟s missing?
Active Architecture
Examples
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
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
Courage
Courage
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?
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
Questions?
top related