1. The document describes a methodology for conducting functional analysis for SharePoint applications from requirements definition to implementation.
2. It discusses defining requirements through user story mapping and prioritization techniques.
3. The functional analysis process involves 9 steps including visualizing requirements, defining data types and relationships, and determining data storage and access points.
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
SHAREPOINT USER GROUP- MONTRÉAL FUNCTIONAL ANALYSIS
1. SHAREPOINT USER GROUP- MONTRÉAL
By Franck Cornu
2013-12-03
Une méthodologie simple pour concevoir vos
applications OOTB SharePoint de A à Z.
2. | 2
• SharePoint Analyst &
Developer
franck.cornu@gsoft.com
@franckcornu
Who
AM I?
Franck Cornu
http://www.gsoft.com/fr/blogue?categorie=sharepoint
3. | 3
SESSION
Plan
Requirements definitionA
1 - 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. | 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. | 5
Do you know the difference between?
Define requirements
1
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. | 6
By writing a backlog
Define requirements
1
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. | 7
User Story Mapping
Define requirements – Tools & Techniques
1
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. | 8
User Story Mapping
1
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. | 9
User Story Mapping
1
SharePoint Functionnal Analysis
Example
Improve collaboration
External access required
IT Department
Share IT projects
Add a project
Improve employee
performance
Web accessibility
standards required
Big 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. | 10
User Story Mapping
1
SharePoint Functionnal Analysis
Example in real life
PS: Not mandatory to use a full wall
Define requirements – Tools & Techniques
11. | 11
User Story Mapping
1
SharePoint Functionnal Analysis
Summary
Focus on roles and responsabilites
Who can do what in the system? This, is governance.
Reveal information flows
That they will help you in the future to design your information architecture
Live in a dream, don’t talk about SharePoint capabilities
Everything is possible here !
Focus on requirements, not solutions
No more: « I want a search engine » or « I want a SharePoint list with five columns »
Super effective but sometimes hard to assimilate
Practice, practice and practice. Dont be afraid to try. All you need is listening and rigor.
Define requirements – Tools & Techniques
12. | 12
Keep/Don’t keep
Define requirements – Tools & Techniques
1
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 design
Reservation
system
User alerts Not intuitive
Source: http://innovationgames.com
13. | 13
Speed boat
Define requirements – Tools & Techniques
1
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. | 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. | 15
Buy a feature
2
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. | 16
Summary
5
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. | 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. | 18
With SharePoint
Functional analysis
B
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
1
2
3
4
5
6
7
8
9
19. 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 analysis
B
SharePoint Functionnal Analysis
Top SharePoint analysis facts
The SharePoint trap: when the means
condition the needs
Tell me what SharePoint can do, I will tell you what you need…
2
1
Solutions are not close enough to users day
to day needs
IT department is not often the best resource to determine whole
user requirements…
3
20. | 20
Your functional analysis with SharePoint
Methodology summary
B
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
9
SharePoint Functionnal Analysis
21. SharePoint Functional Analysis | 21
How to access data in SharePoint ?
Prerequisite
0
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. | 22
What does the requirement look like?
Visualizing the requirement
1
SharePoint Functionnal Analysis
Wireframe(s)
23. | 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
24. Project
Project Member
Commercial Project
Internal Project
Volunteer Project
Project Document
Type
Document
Title
Item
Title
Name
Title
Date
Title
SharePoint
Context
Busines
Context
| 24
With SharePoint
Describe information
2
Nature of
information
(Root types)
Subtypes
Type
Metadata
Content Types and Columns
SharePoint Functionnal Analysis
25. | 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 Document
0
N
1
N
Project Project Member
1
N
1
N
Project Project Checklist
1
1
1
1
28. | 28
With SharePoint
Define relationships between data types
3
OR
Member 3
Member 2
Member 1
Projet
Project B
Project A
Project C
Title
Member 1
Member 2
Member 3
Member list
Title
Project A
Project B
Project C
Project list
Member Project Notes
Member 1
Member 2
Member 3
Project A Note 1
Project B Note 2
Project C Note 3
(lookup) (lookup) (text)
Relationship metadata Project B
Project A
Project C
Title Project
Membre 1
Member 2
Member 3
Project A; Project C
Project B; Project A
Project A
Project
Title
Project A
Project B
Project C
Project listMember list
With join table With multiple values
Lookup Field
SharePoint Functional Analysis
29. | 29
With SharePoint
Define relationships between data types
3
Managed Metadata
SharePoint Functional Analysis
30. | 30
With SharePoint
Define relationships between data types
3
Managed Metadata
SharePoint Functional Analysis
31. CLIENT NAME | CLIENT PROJECT | 31
With SharePoint
Define relationships between data types
3
Document Set
32. | 32
With SharePoint
Define relationships between data types
3
Indirect relationship aggregator
Client
Project document
Project
Client
N
1
1
1
1 N
1 1
No direct link
Titre
Document Set
SharePoint Functional Analysis
33. | 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 information
4
SharePoint Functionnal Analysis
34. | 34
With SharePoint
Effectively storing information
4
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. | 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 directions
5
SharePoint Functionnal Analysis
36. | 36
With SharePoint
Determining the data flow directions
5
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. | 37
With SharePoint
Determining the data flow directions
5
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. | 38
With SharePoint
Determining the data flow directions
5
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. | 39
Determining the data flow directions
5
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 Part
Web Application KQL
ListView Web Part Lists & Libraries CAML
With SharePoint
Components
SharePoint Functionnal Analysis
40. | 40
According to the data storage distribution and flow,
where are the data access points and what types
are exposed?
Define data access point
6
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 sheet
SharePoint Functionnal Analysis
41. | 41
With SharePoint
Define data access point
6
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. | 42
With SharePoint
Define data access point
6
Project
Item
Title
Title
Date
Description
List FormsTyped information
SharePoint Functionnal Analysis
43. | 43
With SharePoint
Define data access point
6
Document
Project sheetPage
Title Title
Title
Publishing pageTyped information
SharePoint Functionnal Analysis
44. | 44
With SharePoint
Define data access point
6
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. | 45
With SharePoint
Define data access point
6
Cross Site Publishing Model
Project sheet
Titre
Project
Titre
Date
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. | 46
Under which conditions should information should
appear in the page?
Define the conditions for information recovery
7
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. | 47
With SharePoint
Define the conditions for information recovery
7
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. | 48
With SharePoint
Define the conditions for information recovery
7
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
Title
Date
Project location
Description
Hierarchical information
SharePoint Functional Analysis
49. | 49
With SharePoint
Define the conditions for information recovery
7
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
50. With SharePoint
Define the conditions for information recovery
7
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. | 51
What are the relational constraints on the
information?
Define relational behaviors
8
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. | 52
What are the relational constraints on the
information?
Define relational behaviors
8
Members and documents
by project
Project filter
SharePoint Functionnal Analysis
53. | 53
How is information displayed?
Define the information display
9
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. | 54
With SharePoint
Define the information display
9
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. | 55
Your functional analysis with SharePoint
Methodology summary
B
1
2
3
4
5
6
7
8
9
SharePoint 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. | 56
Want to
Methodology summary
B
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 you
We
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!)