Upload
franck-cornu
View
141
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Réussir son analyse fonctionnelle SharePoint
Citation preview
SHAREPOINT USER GROUP- MONTRÉAL
By Franck Cornu2013-12-03
Une méthodologie simple pour concevoir vos
applications OOTB SharePoint de A à Z.
| 2
• SharePoint Analyst &
Developer
@franckcornu
Who
AM I?
Franck Cornu
http://www.gsoft.com/fr/blogue?categorie=sharepoint
| 3
SESSION
Plan
Requirements definitionA1 - Define requirements
2 - Prioritize requirements
Functional analysisB
SharePoint Functionnal Analysis
1 - Prerequisite
2 – 9 steps method
1. Visualize the requirement
2. Describe information
3. Define relationships between data types
4. Effectively storing information
5. Determine the data flow directions
6. Define data access point
7. Define criteria for data recovery
8. Define relational behaviors
9. Define the information display
| 4
Part A
SharePoint Functionnal Analysis
Requirements definition
Focus first on the ''What''?
“The value of an idea lies in the using of it.”- Thomas A. Edison
| 5
Do you know the difference between?
Define requirements1
SharePoint Functionnal Analysis
AndBusiness analyst
Understand business process
Read documentation if exists
Identify super users or product
owners
Identify actual problems on process
or current solution
Animate workshops
Understand SharePoint mechanisms
Knows possibilities with SharePoint
and transcribe them to functional
questions.
Link between IT and business
Product owner(s) best friend
Functional analyst
| 6
By writing a backlog
Define requirements1
SharePoint Functionnal Analysis
Very first document
Identify what will be done in your project
Don’t neglect it
Used with agile methodologies
Sprintable and releasable (ex SCRUM)
Prioritized
Flexible
Requirements as stories
• Independent analysis on each
This document can be
A simple flat list
• Avoid TFS…
A map (?!?)
| 7
User Story Mapping
Define requirements – Tools & Techniques1
SharePoint Functionnal Analysis
Definition
Organize and prioritize user stories in a backlog(*)
make visible the workflow or value chain
show the relationships of larger stories to their child
stories
help confirm the completeness of your backlog
provide a useful context for prioritization
plan releases in complete and valuable slices of
functionality.
Workshops (maximum 4 peoples)
Identity product owners per functional domains
Tools
• Coloured post-it and whiteboard
• Electronic format (SpecLog $)
*http://www.agileproductdesign.com
| 8
User Story Mapping1
SharePoint Functionnal Analysis
Concept
Why you do it?
Who will use it?
What are their responsibilities on it?
What are their tasks within those
responsibilities?
Business goalsImpacts
Actors/Profiles
Activities
User stories
Is there any constraints (IT,
functional, human..) on?
User workflow
Define requirements – Tools & Techniques
| 9
User Story Mapping1
SharePoint Functionnal Analysis
Example
Improve collaboration
External access required
IT Department
Share IT projects
Add a project
Improve employee
performance
Web accessibility
standards requiredBig amount of data
IT Director
Search for a project
Process an IT equipment
request
Lambda user
Novice with IT
Manage user requests Submit requests
See available IT equipment
Ask for an IT equipment
Search for information
Search corporative
documents
Add an item to IT
equipment catalog
Critical information
Abstract profile
Information workflow
Define requirements – Tools & Techniques
| 10
User Story Mapping1
SharePoint Functionnal Analysis
Example in real life
PS: Not mandatory to use a full wall
Define requirements – Tools & Techniques
| 11
User Story Mapping1
SharePoint Functionnal Analysis
Summary
Focus on roles and responsabilitesWho can do what in the system? This, is governance.
Reveal information flowsThat they will help you in the future to design your information architecture
Live in a dream, don’t talk about SharePoint capabilitiesEverything is possible here !
Focus on requirements, not solutionsNo more: « I want a search engine » or « I want a SharePoint list with five columns »
Super effective but sometimes hard to assimilatePractice, practice and practice. Dont be afraid to try. All you need is listening and rigor.
Define requirements – Tools & Techniques
| 12
Keep/Don’t keep
Define requirements – Tools & Techniques1
SharePoint Functionnal Analysis
Definition
Identify what users like or don’t like in their
actual system or process
particularly suitable for a system
upgrade/revision project
result as impacts in your map (all levels)
Tools
pencils and whiteboard
post-it
focus groups by functional domain
Overall designReservation
system
User alerts Not intuitive
Source: http://innovationgames.com
| 13
Speed boat
Define requirements – Tools & Techniques1
SharePoint Functionnal Analysis
Definition
Identify what slows down user efficiency
Most problems lie deeper
Helps you to identify impact priorities
Tools
pencils and whiteboard
post-it
focus groups by functional domain
Low performance
Not user friendly
Ugly design
Source: http://innovationgames.com
| 14
Why prioritize?2
SharePoint Functionnal Analysis
You have to start with something
« I want it all » is not a valid response
Agile development guideline
First deliver features that give you the most
value
Prioritize requirements
Source: http://innovationgames.com
| 15
Buy a feature2
SharePoint Functionnal Analysis
Definition
Distribute your fake money on available
requirements
Identify priorities
Tools
fake money
product backlog
timebox
Prioritize requirements – Tools & Techniques
Source: http://innovationgames.com
| 16
Summary5
SharePoint Functionnal Analysis
Priority User Story
Priority 0 – Must have Add a project
Search a project
Search corporative documents
Priority 1 – Should have Process an IT equipment process
See available IT equipment
Ask for an IT equipment
Priority 2 – Nice to have Add an item to IT equipment catalog
Prioritized business requirements list (MoSCoW)
Prioritize requirements – Tools & Techniques
| 17
Part B
SharePoint Functionnal Analysis
Functional analysis
Focus next on the ‘How''?
“If you can't explain it simply, you don't understand it well enough.”- Albert Einstein
| 18
With SharePoint
Functional analysisB
SharePoint Functionnal Analysis
Methodology
9 simple steps
Based on functional questions
SharePoint OOTB oriented
Applies on a single story
Building little autonomous subsystem with its own
functional analysis
All steps are not mandatory
Depends on your user story
• « Read » oriented VS « Write » oriented
12
34
56
7
89
Analy…what??SharePoint is like Legos®, you can do anything, for better for worse.
It’s up to you to choose the right brick for the right use
| 19
With SharePoint
Functional analysisB
SharePoint Functionnal Analysis
Top SharePoint analysis facts
The SharePoint trap: when the means
condition the needsTell me what SharePoint can do, I will tell you what you need…
2
1
Solutions are not close enough to users day
to day needsIT department is not often the best resource to determine whole
user requirements…
3
| 20
Your functional analysis with SharePoint
Methodology summaryB
Visualize the requirement
Describe information
Define relationships between data types
Effectively storing information
Determine the data flow directions
Define data access point
Define criteria for data recovery
Define relational behaviors
Define the information display
1
2
3
4
5
6
7
8
9SharePoint Functionnal Analysis
SharePoint Functional Analysis | 21
How to access data in SharePoint ?
Prerequisite0
Structured query languages
Search languages
Database Search index
CAML
SQL
LINQ KQL FQL
Search SQL
Benefits
Represent the
SharePoint database
reality at the moment of
the query.
Retrieves linked items
quite easily.
Disadvantages
Requires defining each
field involved in the
query.
Suitable for
Access to targeted
metadata
Access to content
subject to continual
changes
Benefits
No need to know the
field names in which to
look for.
Easy query building
Disadvantages
Represents the search
index reality and not the
SharePoint content
database one.
Suitable for
Keywords based search
in "Free Text" mode
Access to relatively
static content.
Structured Query Language Search language
| 22
What does the requirement look like?
Visualizing the requirement1
SharePoint Functionnal Analysis
Wireframe(s)
| 23
What are the information types present in the
requirement?
Describe information
Static or dynamic information?
Reusability concerns
Types hierarchy?
Subtypes, specializations
Metadata?
Visible and hidden
2
SharePoint Functionnal Analysis
Project
Project Member
Commercial Project
Internal Project
Volunteer Project
Project Document
Type
Document
Title
Item
Title
Name
TitleDate
Title
SharePoint Context
Busines Context
| 24
With SharePoint
Describe information2
Nature of
information
(Root types)
Subtypes
Type
Metadata
Content Types and Columns
SharePoint Functionnal Analysis
| 25
What are the relationships between these data
items?
Define relationships between data types
Relationships possibilities
One to one
One to many
Many to many
3
SharePoint Functionnal Analysis
Project Project Document0
N
1
N
Project Project Member1
N
1
N
Project Project Checklist1
1
1
1
| 26
With SharePoint
Define relationships between data types3
Lookup Fields
Managed Metadata
Documents Sets
Folders
Possibilities
SharePoint Functionnal Analysis
| 27
With SharePoint
Define relationships between data types3
Lookup Field
SharePoint Functional Analysis
| 28
With SharePoint
Define relationships between data types3
OR
Member 3
Member 2
Member 1Projet
Project B
Project A
Project C
TitleMember 1Member 2Member 3
Member list
TitleProject AProject B
Project C
Project list
Member Project NotesMember 1Member 2Member 3
Project A Note 1Project B Note 2Project C Note 3
(lookup) (lookup) (text)
Relat ionship metadata Project B
Project A
Project C
Title ProjectMembre 1Member 2Member 3
Project A; Project CProject B; Project AProject A
Project
TitleProject AProject B
Project C
Project listMember list
With join table With multiple values
Lookup Field
SharePoint Functional Analysis
| 29
With SharePoint
Define relationships between data types3
Managed Metadata
SharePoint Functional Analysis
| 30
With SharePoint
Define relationships between data types3
Managed Metadata
SharePoint Functional Analysis
CLIENT NAME | CLIENT PROJECT | 31
With SharePoint
Define relationships between data types3
Document Set
| 32
With SharePoint
Define relationships between data types3
Indirect relationship aggregator
Client
Project documentProject
Client
N
1
1
1
1 N
1 1
No direct link
Titre
Document Set
SharePoint Functional Analysis
| 33
Data distribution criteria
Volume
• What is the amount of data?
Information security
• Who need to access these data?
Business context
• Does the structure have to follow a
business hierarchy?
How should data be stored within a requirement?
Effectively storing information4
SharePoint Functionnal Analysis
| 34
With SharePoint
Effectively storing information4
Web applications
Sites collections
Sites
Lists and libraries
List items
Example
Each type has its own library or list
Internal projects have their own permission
level /
/commercial projects
/volunteer projects
/internal projects
/project documents
/project members
http://collaboration
/project management
Commercial project
Volunteer project
Internal project
Project document
Project member
Content types
SharePoint Functionnal Analysis
| 35
Output flow (data read)
The system displays information to the user
Input flow (data write)
Users add or edit data through the system
components
Within my SharePoint data structure, how does the
data flow?
Determining the data flow directions5
SharePoint Functionnal Analysis
| 36
With SharePoint
Determining the data flow directions5
Storage in a SharePoint site.
Access from the same site.
/sites/projects
/commercial projects
/volunteer projects
/internal projects
/project documents
/project members
http://intranet
/
/project-management.aspx
Reading stream
Writing and update stream
List View Web Part
Content Query Web Part
Search Core Results Web Part
RSS Viewer
Content Search Web Part
Case #1
3 cases
SharePoint Functionnal Analysis
| 37
With SharePoint
Determining the data flow directions5
Storage in a SharePoint site.
Access from another site in
the same site collection.
/commercial projects
/volunteer projects
/internal projects
/project documents
/project members
http://intranet
/
/sites/projects
/project-management.aspx
/reports
List View Web Part
Content Query Web Part
Search Core Results Web Part
RSS Viewer
Content Search Web Part
Case #2
3 cases
SharePoint Functionnal Analysis
| 38
With SharePoint
Determining the data flow directions5
Storage in a SharePoint site.
Access from another site in a
different site collection.
/sites/projects
/commercial projects
/volunteer projects
/internal projects
/project documents
/project members
http://intranet
/
/project-management.aspx
/sites/publishing
/
List View Web Part
Content Query Web Part
Search Core Results Web Part
RSS Viewer
Content Search Web Part
Case #3
3 cases
SharePoint Functionnal Analysis
| 39
Determining the data flow directions5
SharePoint 2007 SharePoint 2010 SharePoint 2013 Maximum range Language used
ListView Web Part Lists & Libraries CAML
Content Query Web Part Site collection CAML
Search Core Results Web Part Web Application KQL
RSS Viewer Site collection -
Content Search
Web PartWeb Application KQL
ListView Web Part Lists & Libraries CAML
With SharePoint
Components
SharePoint Functionnal Analysis
| 40
According to the data storage distribution and flow,
where are the data access points and what types
are exposed?
Define data access point6
Raw data
Plain text not related to any specific type
• Ex: A welcome text
Data aggregation
Compilation of data from different data
sources
• Ex: Dashboards
Typed information
Single Item metadata view
Visualization of data corresponding to a
specific type
• Ex: A project sheetSharePoint Functionnal Analysis
| 41
With SharePoint
Define data access point6
Raw data
Wiki Pages
Data aggregation
Web Parts Pages
Typed information
List Forms
Publishing Pages
/sites/projects
/commercial projects
/volunteer projects
/internal projects
/project documents
/project members
http://intranet
/
/project-management.aspx
SharePoint Functionnal Analysis
| 42
With SharePoint
Define data access point6
ProjectItem
TitleTitleDateDescription
List FormsTyped information
SharePoint Functionnal Analysis
| 43
With SharePoint
Define data access point6
Document
Project sheetPage
Title Title
Title
Publishing pageTyped information
SharePoint Functionnal Analysis
| 44
With SharePoint
Define data access point6
Publishing page
Control Visual Style via multiple page layouts
Manage approval cycle
Familiar to an end user (display and data are
combined)
Force to link with a « Page » Content Type,
i.e. a document based type
Storage location is imposed (the famous
« Pages » library)
Cross Site Publishing as an alternative
Typed information
SharePoint Functional Analysis
| 45
With SharePoint
Define data access point6
Cross Site Publishing Model
Project sheet
Titre
Project
TitreDate
Description
Pages Web Parts Data
/project-management.aspx
/project-sheet.aspx?Name=MyProject
All projects
Project = « MyProject »
Condensed view Aggregation Manipulation Relationships
Single item view
Operationnal
Informative
Typed information
| 46
Under which conditions should information should
appear in the page?
Define the conditions for information recovery7
Are the recovered items have to correspond to reality at time T in
SharePoint?
Is there a sort needed on the elements?
Are there any hierarchical constraints between elements?
Are there any relationships between entities?
Are these items must be targeted to a specific audience?
Are there multilingual constraints?
Must queries be reused?
Are there conditional constraints on queries?
What is the Information life cycle?SharePoint Functionnal Analysis
| 47
With SharePoint
Define the conditions for information recovery7
0x01 000761ECE182A1CE4FA1C8FA2DC4B9F04C 01
Item
Project
Commercial project
The content type Id concept
Via CAML Via KQL (Search)
SharePoint 2007
SharePoint 2010
SharePoint 2013
Via CQWP option
Via Search Managed Property
Hierarchical information
SharePoint Functional Analysis
| 48
With SharePoint
Define the conditions for information recovery7
Managed Metadata hierarchy
Via CAML Via KQL (Search)
SharePoint 2010
SharePoint 2013
Via CQWP option
Via column configuration
Project
Canada
Québec
Bas-Saint-Laurent
Mauricie
Montréal
Outaouais
Ontario
Nova Scotia
TitleDate
Project locationDescription
Hierarchical information
SharePoint Functional Analysis
| 49
With SharePoint
Define the conditions for information recovery7
Managed Metadata
Via CAML Via KQL (Search)
SharePoint 2010
SharePoint 2013
Via CQWP OOTB Via search configuration trick
Canada
Québec
...
...
Nova Scotia
Canada
Québec
...
...
Nouvelle-Écosse
Multilingual constraints
With SharePoint
Define the conditions for information recovery7
Query reuse CAML
Web Part Export
Search
Search scopes and result sources (2013)
Permissions and Security
CAML
Audiences and views
Search
Search variables (User.Name, User.xxx,
etc)…
User Segments (need custom
development)
Content targeting
Conditional queries Search
Best bets, Query Rules (2013)
SharePoint Functional Analysis | 50
| 51
What are the relational constraints on the
information?
Define relational behaviors8
Notions of filtering and connections in
response to actions
Ex: An user select an item in a list an
other value is selected in a other
component.
Ex: Language on the page has changed
SharePoint Functionnal Analysis
| 52
What are the relational constraints on the
information?
Define relational behaviors8
Members and documents by project
Project filter
SharePoint Functionnal Analysis
| 53
How is information displayed?
Define the information display9
What are the display details
Metadata
Style
• Colours, fonts, etc…
Should they appear grouped or alone
Mixed types inside one container with visual
distinction
SharePoint Functionnal Analysis
| 54
With SharePoint
Define the information display9
Display management
XSL
JavaScript/HTML
Commercial projects, volunteer projects, internal projects
Project documents
Project members
Title
Date and description
Author and date
Title
First Name and Last Name
Welcome text
Dynamic elements
Static elements Limitations due to
compiler version
Standard before
SharePoint 2013 (but
still present)
Display templates
with result sources
(search)
More powerfull but
more complex
Standard with 2013
SharePoint Functionnal Analysis
| 55
Your functional analysis with SharePoint
Methodology summaryB
1
2
3
4
5
6
7
8
9SharePoint Functionnal Analysis
What does the requirement look like?
What are the information types?
What are the relationships?
Where data is stored?
What are the data flows?
What are the page types?
What are the display constraints?
What are the behaviors on pages?
How information are displayed?
| 56
Want to
Methodology summaryB
SharePoint Functionnal Analysis
Draw pretty schemas
Define your backlog as a map
Draw wireframes
Brainstorm about taxonomy
Define your backlog as a list
If you
Tools
Recommend to youWe
Microsoft Visio
Speclog http://www.speclog.net/
Excel, TFS
Balsamiq http://balsamiq.com/
Xmind http://www.xmind.net/
Get more details about this
method
GSoft website www.gsoft.com
(detailed ebook coming soon!)
| 57SharePoint Functionnal Analysis
Conclusion
Merci!
Templates & Examples on SkyDrive