SlideShare a Scribd company logo
1 of 26
Lean-Agile Development with
        SharePoint


        Bill Ayers
Bill Ayers
   MCM SharePoint Server 2010
MCTS, MCITP, MCSD, MCAD, MCSA, MCDBA
                  etc.
Professional Scrum Master (PSM I)
Consultant currently specialising in SharePoint
    Development and Architecture for Web
             Content Management
       Blog: www.SPDoctor.net
      E-mail: BillA@flosim.com
         Twitter: @SPDoctor
Agenda:

• Lean
  – Kanban
• Agile
  – Scrum
  – XP
• Automated Testing and TDD
• Continuous Integration
What’s wrong with this picture?
                               Requirements

• Big design up-front   Design/Arch

• Write-only                 Coding
  documentation
• Analysis paralysis                   QA

• Wrong product
• Over budget/time                       Deployment


• Project failure
                         Maintenance
Time for Agile…
Lean


• Manufacturing in 1940s
  Japan
• Reduce inventory (work
  in progress - WIP)
• Just-in-time
• Counter-intuitive
• Applies just as well to
  software development
Lean Principles




•   Eliminate waste
•   Build quality in
•   Create knowledge
•   Defer commitment
•   Deliver fast
•   Respect people
•   Optimize the whole
•   Counter-intuitive
Kanban                     9         3




• Visualizing work
• Making policies explicit
  (like DoD)                     Jeff Lasovski
                                 Used under Creative Commons



• WIP limits
• Focus on flow (rather
  than goals)
• Commitment to
  continuous improvement
• Well suited to reactive
  processes
The Agile Manifesto
    We are uncovering better ways of developing
    software by doing it and helping others do it.
    Through this work we have come to value:

•   Individuals and interactions over processes and tools

•   Working software over comprehensive documentation

•   Customer collaboration over contract negotiation

•   Responding to change over following a plan



    That is, while there is value in the items
    on the right, we value the items on the left
    more.


    http://agilemanifesto.org/
Extreme Programming - XP


•   Test-first development
•   Pair programming
•   Refactoring
•   Continuous integration
•   Frequent releases
•   Coding standards
•   Sustainable pace
Scrum
                Daily Scrum
Roles:          •What I did yesterday
Product Owner   •What I am going to do today
Scrum Master    •Impediments
The Team
Scrum Components
Artefacts:
Product backlog
Sprint backlog
Remaining work
Working software
Definition of Done
Planning board/Charts (or
software)

Time-boxed Events:
Sprint Planning (1-4h)
Sprint(1-4wk)
Sprint Review (1-4h)
Sprint Retrospective (1-3h)
Daily Scrum (15m)
Shopping List Story
Stories and Estimation
Shopping List
As a team site user
I want my shopping list visible on the home page
So that I don’t forget
Acceptance Criteria:

•Doesa shopping list panel appear on the
home page?
•Doesthe panel show all items in the
shopping list?
•Are   the items sorted alphabetically?
Technical Implications

• To support changing requirements we
  require flexible emergent design and
  architecture
• To support changing design we need to be
  able to refactor and this requires
  automated test coverage, ideally TDD.
• To support demonstration and potential
  deployment at the end of each increment
  we require Continuous Integration.
SharePoint is Different


• Need up-front architecture decisions
• Complex deployment
• Difficult to unit test
Unit tests with SharePoint – the options
• Isolate SharePoint calls within a Repository
  class
• Composite design patterns e.g. MVC/MVP,
  with conventional mocks and stubs
• Proprietary Mocking frameworks (Typemock
  Isolator, JustMock, Microsoft Fakes f/w)
• Home-grown Fake SharePoint framework (!)
• SharePoint Emulators (add-on to VS2012 Ult.)
• Accept shallow integration tests (“unigration
  tests” or “dirty unit tests”)
Code Coverage (and other dubious metrics)
                                Your Custom
                                Code


               SharePoint.NET

               SharePoint
               Unmanaged Code

               ASP.NET
                         SQL
                  Windows OS
TDD

requirements

                          make test
                          pass




               write a
               failing
               test             refactor
Demo: TDD – Shopping List Story

Shopping List
As a team site user
I want my shopping list visible on the home page
So that I don’t forget

Acceptance Criteria:
•Does   a shopping list panel appear on the home page?
•Does   the panel show all items in the shopping list?
•Are   the items sorted alphabetically?
Continuous Integration
• Automated building and testing of merged
  developer code (at least daily)
• PowerShell script everything!
• New site collection on initial deployment
• Restore a base-lined content database
  (per release)
• Once live, maintain two environments –
  one for test data and one using live
  content database
Path to Production (DTAP Street)
Developers   Integration    UAT   Production
             Test




TFS          Build Server
CI Hints and Tips

• Build a library of PowerShell functions
• Design your functions so that they can be
  re-run – detect if data already exists or
  delete it
• Use XML file to define configuration
  properties for each environment
• Make sure everything is in source control!
Summary: It’s Time for Agile…
• Agile is mainstream
• Kanban and Scrum are popular frameworks
  that can be applied to SharePoint projects
• SharePoint challenges us to find new ways
  of testing and deploying
• Easy to explain, difficult to implement – get a
  coach, if you can
• Lean and Agile approach is replacing
  Waterfall for most software projects for good
  reason – it works! (and it’s more fun)
Recommended Reading:
• “The Scrum Guide”, Schwaber and Sutherland (free
  download from scrum.org)
• “The Art of Unit Testing”, Roy Osherove
• http://www.extremeprogramming.org/
• “Clean Code – A Handbook of Agile Software
  Craftsmanship”, Robert C Martin
• Chris O’Brien http://sharepointnutsandbolts.com – series of articles
  on Continuous Integration
• “Automating SharePoint 2010 with Windows PowerShell
  2.0”, Gary Lapointe and Shannon Bray
• http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/26/intr
Bill Ayers

Lean-Agile SharePoint Development

      Blog: www.SPDoctor.net
     E-mail: BillA@flosim.com
        Twitter: @SPDoctor


    Thank you for listening!

More Related Content

What's hot

Post-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failurePost-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failureYuval Yeret
 
Introduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in betweenIntroduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in betweenPravin Kumar Singh, PMP, PSM
 
Introduction to Agile-Scrum
Introduction to Agile-ScrumIntroduction to Agile-Scrum
Introduction to Agile-ScrumPraveen Nair
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Alan Hood
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMichael J Geiser
 
Agile tools for everyone (slideshare)
Agile tools for everyone (slideshare)Agile tools for everyone (slideshare)
Agile tools for everyone (slideshare)Don Bolen
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneDashlane
 
Creating High Performance teams by using a DevOps culture (FUG presentation)
Creating High Performance teams by using a DevOps culture (FUG presentation)Creating High Performance teams by using a DevOps culture (FUG presentation)
Creating High Performance teams by using a DevOps culture (FUG presentation)Serena Software
 
Agile Training March 2015
Agile Training March 2015Agile Training March 2015
Agile Training March 2015David Phipps
 
Scaling Atlassian for the Enterprise
Scaling Atlassian for the EnterpriseScaling Atlassian for the Enterprise
Scaling Atlassian for the EnterpriseCprime
 
Agile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем БыковецAgile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем БыковецSigma Software
 
Gerard beckerleg scrum and tfs 2012
Gerard beckerleg scrum and tfs 2012Gerard beckerleg scrum and tfs 2012
Gerard beckerleg scrum and tfs 2012gerardbeckerleg
 
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Simon Storm
 
Big rewrites without big risks
Big rewrites without big risksBig rewrites without big risks
Big rewrites without big risksFlavius Stef
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanGiulio Roggero
 
ALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_worldALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_worldRoland Leibundgut
 
Scaling Atlassian - What's New in Data Center
Scaling Atlassian - What's New in Data CenterScaling Atlassian - What's New in Data Center
Scaling Atlassian - What's New in Data CenterAtlassian
 
Agile Scrum Training, Day 1 (1/2)
Agile Scrum Training, Day 1 (1/2)Agile Scrum Training, Day 1 (1/2)
Agile Scrum Training, Day 1 (1/2)Jens Wilke
 

What's hot (20)

Post-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failurePost-agile approaches - agile for the real world and how to avoid agile failure
Post-agile approaches - agile for the real world and how to avoid agile failure
 
Agile & Wakanda
Agile & WakandaAgile & Wakanda
Agile & Wakanda
 
Introduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in betweenIntroduction to Agile - Scrum, Kanban, and everything in between
Introduction to Agile - Scrum, Kanban, and everything in between
 
Introduction to Agile-Scrum
Introduction to Agile-ScrumIntroduction to Agile-Scrum
Introduction to Agile-Scrum
 
Is Being Agile a Good Thing?
Is Being Agile a Good Thing?Is Being Agile a Good Thing?
Is Being Agile a Good Thing?
 
Maturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvementsMaturing Agile SDLC & workflow improvements
Maturing Agile SDLC & workflow improvements
 
Scrum and TFS
Scrum and TFSScrum and TFS
Scrum and TFS
 
Agile tools for everyone (slideshare)
Agile tools for everyone (slideshare)Agile tools for everyone (slideshare)
Agile tools for everyone (slideshare)
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
Creating High Performance teams by using a DevOps culture (FUG presentation)
Creating High Performance teams by using a DevOps culture (FUG presentation)Creating High Performance teams by using a DevOps culture (FUG presentation)
Creating High Performance teams by using a DevOps culture (FUG presentation)
 
Agile Training March 2015
Agile Training March 2015Agile Training March 2015
Agile Training March 2015
 
Scaling Atlassian for the Enterprise
Scaling Atlassian for the EnterpriseScaling Atlassian for the Enterprise
Scaling Atlassian for the Enterprise
 
Agile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем БыковецAgile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
Agile scrum как не угробить ваш продукт простым инструментом, Артем Быковец
 
Gerard beckerleg scrum and tfs 2012
Gerard beckerleg scrum and tfs 2012Gerard beckerleg scrum and tfs 2012
Gerard beckerleg scrum and tfs 2012
 
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
Agile and Continuous Delivery for Audits and Exams - DC Continuous Delivery M...
 
Big rewrites without big risks
Big rewrites without big risksBig rewrites without big risks
Big rewrites without big risks
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, Milan
 
ALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_worldALN_Nepal-Agile_for_the_real_world
ALN_Nepal-Agile_for_the_real_world
 
Scaling Atlassian - What's New in Data Center
Scaling Atlassian - What's New in Data CenterScaling Atlassian - What's New in Data Center
Scaling Atlassian - What's New in Data Center
 
Agile Scrum Training, Day 1 (1/2)
Agile Scrum Training, Day 1 (1/2)Agile Scrum Training, Day 1 (1/2)
Agile Scrum Training, Day 1 (1/2)
 

Viewers also liked

Khái niệm giáo dục
Khái niệm giáo dụcKhái niệm giáo dục
Khái niệm giáo dụcNh Lionheart
 
SharePoint Governance Slide Deck 1.16.2014
SharePoint Governance Slide Deck 1.16.2014SharePoint Governance Slide Deck 1.16.2014
SharePoint Governance Slide Deck 1.16.2014McOWLMarketing
 
Chính sách giáo dục và đào tạo
Chính sách giáo dục và đào tạoChính sách giáo dục và đào tạo
Chính sách giáo dục và đào tạoLinh Trần
 
Different types of infrastructures
Different types of infrastructuresDifferent types of infrastructures
Different types of infrastructuresSomerco Research
 
Agile Development using HP Agile Manager and HP Quality Center / ALM
Agile Development using HP Agile Manager and HP Quality Center / ALMAgile Development using HP Agile Manager and HP Quality Center / ALM
Agile Development using HP Agile Manager and HP Quality Center / ALMpd7.group
 
How to implement SharePoint in your organization
How to implement SharePoint in your organizationHow to implement SharePoint in your organization
How to implement SharePoint in your organizationSPC Adriatics
 

Viewers also liked (6)

Khái niệm giáo dục
Khái niệm giáo dụcKhái niệm giáo dục
Khái niệm giáo dục
 
SharePoint Governance Slide Deck 1.16.2014
SharePoint Governance Slide Deck 1.16.2014SharePoint Governance Slide Deck 1.16.2014
SharePoint Governance Slide Deck 1.16.2014
 
Chính sách giáo dục và đào tạo
Chính sách giáo dục và đào tạoChính sách giáo dục và đào tạo
Chính sách giáo dục và đào tạo
 
Different types of infrastructures
Different types of infrastructuresDifferent types of infrastructures
Different types of infrastructures
 
Agile Development using HP Agile Manager and HP Quality Center / ALM
Agile Development using HP Agile Manager and HP Quality Center / ALMAgile Development using HP Agile Manager and HP Quality Center / ALM
Agile Development using HP Agile Manager and HP Quality Center / ALM
 
How to implement SharePoint in your organization
How to implement SharePoint in your organizationHow to implement SharePoint in your organization
How to implement SharePoint in your organization
 

Similar to Lean-Agile SharePoint Development

Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012Imaginet
 
Vs11 overview
Vs11 overviewVs11 overview
Vs11 overviewravclarke
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Phil Leggetter
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudJeremy Likness
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsRajnish Chauhan
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?Rob Brown
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Den Delimarsky
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...DevConFu
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devopsVincent Biret
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareDevOps for Enterprise Systems
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...Wilco Turnhout
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013Sam Larko
 

Similar to Lean-Agile SharePoint Development (20)

Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012A Day in the Life: Developer Enhancements with Visual Studio 2012
A Day in the Life: Developer Enhancements with Visual Studio 2012
 
Key alias dev standard final
Key alias   dev standard finalKey alias   dev standard final
Key alias dev standard final
 
Vs11 overview
Vs11 overviewVs11 overview
Vs11 overview
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the Cloud
 
Building environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOpsBuilding environment of #UserDevOps and not only DevOps
Building environment of #UserDevOps and not only DevOps
 
The Agile Mindset
The Agile MindsetThe Agile Mindset
The Agile Mindset
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
Wilko Nienhaus - continuous delivery release the right thing, done right, at ...
 
Agile engineering practices
Agile engineering practicesAgile engineering practices
Agile engineering practices
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
SharePoint Connections Conference Amsterdam - Pitfalls and success factors of...
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013SharePoint Saturday San Antonio: Workflow 2013
SharePoint Saturday San Antonio: Workflow 2013
 

Lean-Agile SharePoint Development

  • 1. Lean-Agile Development with SharePoint Bill Ayers
  • 2. Bill Ayers MCM SharePoint Server 2010 MCTS, MCITP, MCSD, MCAD, MCSA, MCDBA etc. Professional Scrum Master (PSM I) Consultant currently specialising in SharePoint Development and Architecture for Web Content Management Blog: www.SPDoctor.net E-mail: BillA@flosim.com Twitter: @SPDoctor
  • 3. Agenda: • Lean – Kanban • Agile – Scrum – XP • Automated Testing and TDD • Continuous Integration
  • 4. What’s wrong with this picture? Requirements • Big design up-front Design/Arch • Write-only Coding documentation • Analysis paralysis QA • Wrong product • Over budget/time Deployment • Project failure Maintenance
  • 6. Lean • Manufacturing in 1940s Japan • Reduce inventory (work in progress - WIP) • Just-in-time • Counter-intuitive • Applies just as well to software development
  • 7. Lean Principles • Eliminate waste • Build quality in • Create knowledge • Defer commitment • Deliver fast • Respect people • Optimize the whole • Counter-intuitive
  • 8. Kanban 9 3 • Visualizing work • Making policies explicit (like DoD) Jeff Lasovski Used under Creative Commons • WIP limits • Focus on flow (rather than goals) • Commitment to continuous improvement • Well suited to reactive processes
  • 9. The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. http://agilemanifesto.org/
  • 10. Extreme Programming - XP • Test-first development • Pair programming • Refactoring • Continuous integration • Frequent releases • Coding standards • Sustainable pace
  • 11. Scrum Daily Scrum Roles: •What I did yesterday Product Owner •What I am going to do today Scrum Master •Impediments The Team
  • 12. Scrum Components Artefacts: Product backlog Sprint backlog Remaining work Working software Definition of Done Planning board/Charts (or software) Time-boxed Events: Sprint Planning (1-4h) Sprint(1-4wk) Sprint Review (1-4h) Sprint Retrospective (1-3h) Daily Scrum (15m)
  • 14. Stories and Estimation Shopping List As a team site user I want my shopping list visible on the home page So that I don’t forget Acceptance Criteria: •Doesa shopping list panel appear on the home page? •Doesthe panel show all items in the shopping list? •Are the items sorted alphabetically?
  • 15. Technical Implications • To support changing requirements we require flexible emergent design and architecture • To support changing design we need to be able to refactor and this requires automated test coverage, ideally TDD. • To support demonstration and potential deployment at the end of each increment we require Continuous Integration.
  • 16. SharePoint is Different • Need up-front architecture decisions • Complex deployment • Difficult to unit test
  • 17. Unit tests with SharePoint – the options • Isolate SharePoint calls within a Repository class • Composite design patterns e.g. MVC/MVP, with conventional mocks and stubs • Proprietary Mocking frameworks (Typemock Isolator, JustMock, Microsoft Fakes f/w) • Home-grown Fake SharePoint framework (!) • SharePoint Emulators (add-on to VS2012 Ult.) • Accept shallow integration tests (“unigration tests” or “dirty unit tests”)
  • 18. Code Coverage (and other dubious metrics) Your Custom Code SharePoint.NET SharePoint Unmanaged Code ASP.NET SQL Windows OS
  • 19. TDD requirements make test pass write a failing test refactor
  • 20. Demo: TDD – Shopping List Story Shopping List As a team site user I want my shopping list visible on the home page So that I don’t forget Acceptance Criteria: •Does a shopping list panel appear on the home page? •Does the panel show all items in the shopping list? •Are the items sorted alphabetically?
  • 21. Continuous Integration • Automated building and testing of merged developer code (at least daily) • PowerShell script everything! • New site collection on initial deployment • Restore a base-lined content database (per release) • Once live, maintain two environments – one for test data and one using live content database
  • 22. Path to Production (DTAP Street) Developers Integration UAT Production Test TFS Build Server
  • 23. CI Hints and Tips • Build a library of PowerShell functions • Design your functions so that they can be re-run – detect if data already exists or delete it • Use XML file to define configuration properties for each environment • Make sure everything is in source control!
  • 24. Summary: It’s Time for Agile… • Agile is mainstream • Kanban and Scrum are popular frameworks that can be applied to SharePoint projects • SharePoint challenges us to find new ways of testing and deploying • Easy to explain, difficult to implement – get a coach, if you can • Lean and Agile approach is replacing Waterfall for most software projects for good reason – it works! (and it’s more fun)
  • 25. Recommended Reading: • “The Scrum Guide”, Schwaber and Sutherland (free download from scrum.org) • “The Art of Unit Testing”, Roy Osherove • http://www.extremeprogramming.org/ • “Clean Code – A Handbook of Agile Software Craftsmanship”, Robert C Martin • Chris O’Brien http://sharepointnutsandbolts.com – series of articles on Continuous Integration • “Automating SharePoint 2010 with Windows PowerShell 2.0”, Gary Lapointe and Shannon Bray • http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/26/intr
  • 26. Bill Ayers Lean-Agile SharePoint Development Blog: www.SPDoctor.net E-mail: BillA@flosim.com Twitter: @SPDoctor Thank you for listening!

Editor's Notes

  1. SharePoint Live! Orlando 2012 © 2012 SharePoint Live! All rights reserved.
  2. SharePoint Live! Orlando 2012 © 2012 SharePoint Live! All rights reserved.