Jan 27, 2015
2
GSoft Group & Me
GSoft GroupBased in MontrealAgile software development and consulting firmExpertise in Microsoft .NET and SharePoint technologies
MeVice-President of GSoft GroupWorking with SharePoint and Microsoft Technologies since 2003I’m a SharePoint trainerConsulting
Information architecture planningSharePoint governance planDevelopment team setupProduct owner of sharegate
3
Introduction
Being Agile with SharePoint
Business Case
How we estimate the project
Introduction to ScrumWhat’s a sprintSprint planningSprint reviewSprint retrospective
eXtreme Programming (XP)Unit testingIterative development
Agile SharePoint developmentPain points
4
Being Agile with SharePoint
Lack of customer understandingNew technologyPeoples knowledge (development team and client)Changing requirements
Achieve a lot using Out of the Box
Platform allows rapid deployment
Platform allows you to deploy in modular pieces
Use your solution as soon as possible
5
Business Case
Fédération des médecins omnipraticiens du QuébecProject
CMS Website using Windows SharePoint Service 3.0320 pages14 associations8000 members200 000 visits / monthEstimated time : 6 month
Team1 Product Owner1 Scrum master3 GSoft developers1 FMOQ developer1 FMOQ QA1 webmaster
6
Business Case – www.fmoq.org
Fédération des médecins omnipraticiens du Québec
7
Specifications
We break down the specifications into user story
Specifications User storyA non-technical resource can add / modify / delete content on the website
As a end user, I want to add / modify / delete content on the website.
Being able the write content with a WYSIWYG editor As a end user, I want write the website content into a WYSIWYG editor.
Being able to manage a blog to talk about specifics topics defined by the president or other member of the federation : - Notify user through email when a new comment has been added - Using a blog management tool to edit the blog content
- Adding a video to the blog directly
As a end user, I want to be able to make blog post
As a member, I want to comment on blog post
As a member, I want to be notified through email when a new comment has been added
As a end user, I want to use a blog management tool to edit blog content
As a end user, I want to add a video as a blog post
End user : Member of the FMOQ that have access to modify the website contentMember : Member of the FMOQ website
8
Sprint 0
Pass through the checklist
Build the first security grid
Defining the “Done Done”
Checklist
9
Done Done list
With a story
With a sprint
10
What’s the Scrum process?
Product backlog
Sprint planning
Daily Scrum
Sprint review meeting
Retrospective
www.mountaingoatsoftware.com
11
Sprint planning
Product owner describes the highest priority features
Define a sprint goal
Define the conditions of success
Product backlog
User story 1
User story 2
User story 3
User story 4
User story 5
User story 6
User story 7
User story 8
User story 9
Sprint backlog
User story 1
User story 2
User story 4
Sprint backlog
User story 1 -Sub task 1 -Sub task 2 -Sub task 3
User story 2 -Sub task 1 -Sub task 2
User story 4 -Sub task 1 -Sub task 2 -Sub task 3 -Sub task 4 -Sub task 5
12
FMOQ – Sprint 1 – Sprint planning
It was really important for the FMOQ to see the president’s blog
Sprint goal : post on a blog and write a comment on it
Product backlogAs a end user, I want to make a blog post
As a member of the website, I want to be notified through email when a new comment has been added
As a end user, I want to use a blog management tool to edit blog content
As a member, I want to comment on blog post
As a end user, I want to add / modify / delete content on the website
As a end user, I want write the website content into a WYSIWYG editor
Sprint backlogAs a end user, I want to write a blog post
As a member, I want to be notified through email when a new comment has been added
As a end user, I want to use a blog management tool to edit blog content
As a member, I want to add a comment on blog post
13
FMOQ – Sprint 1 – Sprint review
How does it work?
Success or not?
Live demo!
DONEAs a end user, I want to write a blog post
As a member of the website, I want to be notified through email when a new comment has been added
As a end user, I want to use a blog management tool to edit blog content
As a member, I want to add a comment on blog post
14
FMOQ – Sprint 1 – Sprint retrospective
What went well during the sprint?
What went wrong during the sprint?
Define an action plan
There should be a lot of interaction during the retro
Example of a retrospective activity :
15
FMOQ – Sprint 2 – Sprint planning
The FMOQ wanted to be able to recognized their members on the web site
Sprint goal : Login and manage online profile
Product backlogAs a member, I want to be able to register my self on the website
As a site administrator, I want to control registration on the web site
As a member, I want to be able to manage my profile online
As a end user, I want to add / modify / delete content on the website.
As a end user, I want write the website content into a WYSIWYG editor.
As a end user, I want to add a video as a blog post
Sprint backlogAs a site administrator, I want to control registration on the web site
As a member, I want to be able to register my self on the website
As a member, I want to be able to manage my profile online
16
FMOQ – Sprint 2 – Sprint review
Success or not?
Live demo!
DONEAs a site administrator, I want to control registration on the web site
As a member, I want to be able to register my self on the website
As a member, I want to be able to manage my profile online
17
FMOQ – Sprint 3
The next step was to put the content management system in place with the approval workflow
18
FMOQ – Sprint 4
We finally have a design and the navigation is working!
19
FMOQ – Sprint 5
Access to external site (authentication)
Articles
20
FMOQ – Sprint 6
Site content types
Hierarchy
21
FMOQ – Sprint 7
Union activities calendar
Admin dashboard
22
FMOQ – Sprint 8
Security
23
FMOQ – Sprint 9
Advanced search
24
FMOQ – Sprint
25
FMOQ – Sprint 7 – Unit testing
Sprint 7
Change the authentication
method to use an email
Something need to be change but how can we make sure we don’t break anything?
Answer : Unit Testing
26
TypeMock
27
Red, Green, Refactor
RED
GREEN
28
Iterative development in SharePoint
Advantages of a iterative development in SharePointPotentially Shippable pieces of codesFace tough challenge early and oftenEarly visibilityAbility to change every sprintInspect and adapt to customers needs
29
Agile SharePoint Development
When is it a good idea?You have management and customer buy inYou understand that Agile won’t magically make your project workYour team is committedStart small
Inspect and adapt
When is it a bad idea?Don’t start on high risk projectsDon’t start without management buy inDon’t start without customer engagement
Although agile can help rescue failing projectsDon’t start if the team doesn’t want to
30
Pain points
Unit testing - Impossible
Automating Integration and acceptance testing
Continuous build and automatic deployment
Deployment
Used as an excuse not to be Agile
31
References
Agile SharePoint development and unit testing
http://www.21apps.com/
Introduction to scrum
http://www.mountaingoatsoftware.com/topics/scrum
Unit testing with TypeMock
http://www.typemock.com
SharePoint development with Unit testing
http://www.sharepointdevwiki.com