57
SHAREPOINT USER GROUP-MONTRÉAL By Franck Cornu 2013-12-03 Une méthodologie simple pour concevoir vos applications OOTB SharePoint de A à Z.

Réussir son analyse fonctionnelle SharePoint

Embed Size (px)

DESCRIPTION

Réussir son analyse fonctionnelle SharePoint

Citation preview

Page 1: Réussir son analyse fonctionnelle SharePoint

SHAREPOINT USER GROUP- MONTRÉAL

By Franck Cornu2013-12-03

Une méthodologie simple pour concevoir vos

applications OOTB SharePoint de A à Z.

Page 2: Réussir son analyse fonctionnelle SharePoint

| 2

• SharePoint Analyst &

Developer

[email protected]

@franckcornu

Who

AM I?

Franck Cornu

http://www.gsoft.com/fr/blogue?categorie=sharepoint

Page 3: Réussir son analyse fonctionnelle 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

Page 4: Réussir son analyse fonctionnelle SharePoint

| 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

Page 5: Réussir son analyse fonctionnelle SharePoint

| 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

Page 6: Réussir son analyse fonctionnelle SharePoint

| 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 (?!?)

Page 7: Réussir son analyse fonctionnelle SharePoint

| 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

Page 8: Réussir son analyse fonctionnelle SharePoint

| 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

Page 9: Réussir son analyse fonctionnelle SharePoint

| 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

Page 10: Réussir son analyse fonctionnelle SharePoint

| 10

User Story Mapping1

SharePoint Functionnal Analysis

Example in real life

PS: Not mandatory to use a full wall

Define requirements – Tools & Techniques

Page 11: Réussir son analyse fonctionnelle SharePoint

| 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

Page 12: Réussir son analyse fonctionnelle SharePoint

| 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

Page 13: Réussir son analyse fonctionnelle SharePoint

| 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

Page 14: Réussir son analyse fonctionnelle SharePoint

| 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

Page 15: Réussir son analyse fonctionnelle SharePoint

| 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

Page 16: Réussir son analyse fonctionnelle SharePoint

| 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

Page 17: Réussir son analyse fonctionnelle SharePoint

| 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

Page 18: Réussir son analyse fonctionnelle SharePoint

| 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

Page 19: Réussir son analyse fonctionnelle SharePoint

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

Page 20: Réussir son analyse fonctionnelle SharePoint

| 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

Page 21: Réussir son analyse fonctionnelle SharePoint

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

Page 22: Réussir son analyse fonctionnelle SharePoint

| 22

What does the requirement look like?

Visualizing the requirement1

SharePoint Functionnal Analysis

Wireframe(s)

Page 23: Réussir son analyse fonctionnelle SharePoint

| 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

Page 24: Réussir son analyse fonctionnelle SharePoint

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

Page 25: Réussir son analyse fonctionnelle SharePoint

| 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

Page 26: Réussir son analyse fonctionnelle SharePoint

| 26

With SharePoint

Define relationships between data types3

Lookup Fields

Managed Metadata

Documents Sets

Folders

Possibilities

SharePoint Functionnal Analysis

Page 27: Réussir son analyse fonctionnelle SharePoint

| 27

With SharePoint

Define relationships between data types3

Lookup Field

SharePoint Functional Analysis

Page 28: Réussir son analyse fonctionnelle SharePoint

| 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

Page 29: Réussir son analyse fonctionnelle SharePoint

| 29

With SharePoint

Define relationships between data types3

Managed Metadata

SharePoint Functional Analysis

Page 30: Réussir son analyse fonctionnelle SharePoint

| 30

With SharePoint

Define relationships between data types3

Managed Metadata

SharePoint Functional Analysis

Page 31: Réussir son analyse fonctionnelle SharePoint

CLIENT NAME | CLIENT PROJECT | 31

With SharePoint

Define relationships between data types3

Document Set

Page 32: Réussir son analyse fonctionnelle SharePoint

| 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

Page 33: Réussir son analyse fonctionnelle SharePoint

| 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

Page 34: Réussir son analyse fonctionnelle SharePoint

| 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

Page 35: Réussir son analyse fonctionnelle SharePoint

| 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

Page 36: Réussir son analyse fonctionnelle SharePoint

| 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

Page 37: Réussir son analyse fonctionnelle SharePoint

| 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

Page 38: Réussir son analyse fonctionnelle SharePoint

| 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

Page 39: Réussir son analyse fonctionnelle SharePoint

| 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

Page 40: Réussir son analyse fonctionnelle SharePoint

| 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

Page 41: Réussir son analyse fonctionnelle SharePoint

| 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

Page 42: Réussir son analyse fonctionnelle SharePoint

| 42

With SharePoint

Define data access point6

ProjectItem

TitleTitleDateDescription

List FormsTyped information

SharePoint Functionnal Analysis

Page 43: Réussir son analyse fonctionnelle SharePoint

| 43

With SharePoint

Define data access point6

Document

Project sheetPage

Title Title

Title

Publishing pageTyped information

SharePoint Functionnal Analysis

Page 44: Réussir son analyse fonctionnelle SharePoint

| 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

Page 45: Réussir son analyse fonctionnelle SharePoint

| 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

Page 46: Réussir son analyse fonctionnelle SharePoint

| 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

Page 47: Réussir son analyse fonctionnelle SharePoint

| 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

Page 48: Réussir son analyse fonctionnelle SharePoint

| 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

Page 49: Réussir son analyse fonctionnelle SharePoint

| 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

Page 50: Réussir son analyse fonctionnelle SharePoint

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

Page 51: Réussir son analyse fonctionnelle SharePoint

| 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

Page 52: Réussir son analyse fonctionnelle SharePoint

| 52

What are the relational constraints on the

information?

Define relational behaviors8

Members and documents by project

Project filter

SharePoint Functionnal Analysis

Page 53: Réussir son analyse fonctionnelle SharePoint

| 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

Page 54: Réussir son analyse fonctionnelle SharePoint

| 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

Page 55: Réussir son analyse fonctionnelle SharePoint

| 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?

Page 56: Réussir son analyse fonctionnelle SharePoint

| 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!)