Make Better SharePoint
Stuff with an Agile
Methodology
Doug Hemminger, SharePoint Saturday, Twin Cities
April 14, 2012
Agenda, about me and what to expect from this
presentation

INTRODUCTION
Agenda
•   What to Expect from this Session
•   Why Agile
•   What is Agile
•   What is Scrum
•   How to Implement Agile & Scrum
About Me
•   Developing since 1997
•   Working with SharePoint since 2005
•   Assistant Director at Crowe Horwath LLP
•   Live and work in the Chicago area
•   Contact me at:
    • Email: doug@doughemminger.com
    • Twitter: @DougHemminger
    • Blog: http://www.sharepointdoug.com
In This Session, Learn How You
Can…
• Provide more value to your customers using Agile
• Employ Agile & Scrum on your next SharePoint project
• Leverage Agile & Scrum tools and resources
In this section we will explore why you should consider
Agile as an appropriate software development
methodology for your next SharePoint project.

WHY AGILE
Why Agile
• Better
  • Agile can produce higher quality work
  • A number of studies demonstrate a lower defect rate and higher
    customer satisfaction with Agile projects
• Faster
  • Agile projects have a 36% faster time to market
  • A number of studies demonstrate that features are deployed at a
    significantly faster rate with an Agile process
• Cheaper
  • Agile projects are roughly 16% more productive and have overall
    lower costs
Why Agile
• Accelerated time to
                                                                 Happier
  market
                                                                 Customers
• Increased quality



• Better team
  collaboration                                                  Happier
                                                                 Employees
• Higher productivity


State of Agile Development Study:
http://www.versionone.com/state_of_agile_development_survey/10
Salesforce.com – A Case Study
• Founded in 1999
• Used traditional software development method – a modified
  version of the waterfall approach
Waterfall Wasn’t Working
• Time to market was too slow
  • In 2006 Salesforce.com had 1 major release
  • Salesforce.com could not respond to customer requests with
    timely feature releases
• Waterfall approach could not easily account for evolving
  customer needs
Which Led To…
• Unhappy Customers
• Low Team Morale
  • “We had huge morale problems” – Steve Green, Senior
    Director, Salesforce.com
  • Productivity declined as the team grew
There Is A Better Way
Salesforce.com Implemented Agile
• Developed a home-grown version of Agile called the Agile
  Development Methodology (ADM)
• 30 scrum teams, each with 6-10 members
• 3 one month sprints made up their first release cycle
Results Were Immediate…
• On average, customers were getting features delivered in half the
  time
• Remember, not a single feature delivered in almost a year: in the
  first 9 months of using Agile, 60+ features were delivered
High level definition of Agile and an introduction to the
various methodologies.

WHAT IS AGILE
Agile Definition
Agile Definition
• Agile is a group of software development methods based on
  iterative and incremental development, where requirements
  and solutions evolve through collaboration between self-
  organizing, cross-functional teams


 Source: http://en.wikipedia.org/wiki/Agile_software_development
The Agile Manifesto
•   Individuals and interactions over processes and tools
•   Working software over comprehensive documentation
•   Customer collaboration over contract negotiation
•   Responding to change over following a plan
Principles Behind the Agile
Manifesto
• Our highest priority is to satisfy the customer
  through early and continuous delivery
  of valuable software.
• Welcome changing requirements, even late in
  development. Agile processes harness change for
  the customer's competitive advantage




http://www.agilemanifesto.org/principles.html
Principles Behind the Agile
Manifesto
• Business people and developers must work
  together daily throughout the project.
• Build projects around motivated individuals.
  Give them the environment and support they need,
  and trust them to get the job done.




http://www.agilemanifesto.org/principles.html
Principles Behind the Agile
Manifesto
• Continuous attention to technical excellence
  and good design enhances agility
• At regular intervals, the team reflects on how
  to become more effective, then tunes and adjusts
  its behavior accordingly.




http://www.agilemanifesto.org/principles.html
Agile Methodologies




 Source: http://www.versionone.com/state_of_agile_development_survey/10/page3.asp
High level overview of Scrum

WHAT IS SCRUM
What is Scrum




 http://www.slideshare.net/sgreene/stanford-7822999
New Roles with Scrum
• ScrumMaster
  • Owns the process
  • Removes impediments to the team
• Product Manager
  • Manages the Team, providing vision and boundaries
  • Makes sure the team works well together
  • 1 product manager per team
The Developer Role with Scrum
• Collaboration
  • Become an active participant in understanding product
    requirements. Can’t sit and wait to be told what to do
  • Talk to customers and users
  • Engage coworkers. Help solve problems. Stretch your boundaries.
• SharePoint developers on a Scrum project need to be able to
  step outside their comfort zone and do what is necessary to
  help out the team. This could include:
  • Designing
  • Analyzing
  • Testing
SharePoint Developer Technical
Skills
• Eric White outlines a complete set of SharePoint developer
  building blocks in a two part series:
 http://msdn.microsoft.com/en-us/library/gg454784.aspx
 http://msdn.microsoft.com/en-us/library/gg467340.aspx

• Sometimes helpful to separate skills into server-side and
  client-side
How to bring Agile to your organization

HOW TO IMPLEMENT AGILE
How to Implement Agile
• Get buy-in from management, team members, and most
  importantly, client and users
• Successful adoption of an agile approach does not necessarily
  just mean selecting an individual method
• Do what suits your company’s culture, individual skillsets and
  talents
Meetings and Planning
• Iteration Planning
  • Iteration is time boxed – usually 1 to 3 months
  • Iteration planning can be a single meeting or a series of meetings.
    Whatever it takes to create and prioritize the product backlog
  • Prioritizing features and bugs is key
• Sprint Planning
  • Sprint is time boxed – usually 2 to 4 weeks
  • Sprint planning meeting is 1 to 2 hours depending on the length
    of the sprint and the size of the team
  • Creating and prioritizing tasks is key
Create a Product Backlog
• A product backlog consists primarily of:
  • Features – typically in the form of user stories
  • Bugs




     http://www.mountaingoatsoftware.com/scrum/product-backlog
Create a Sprint Backlog
• A sprint backlog consists primarily of developer tasks
  associated with a feature or a bug




          http://www.mountaingoatsoftware.com/scrum/sprint-backlog
The Burndown




 http://en.wikipedia.org/wiki/File:SampleBurndownChart.png
Meetings and Planning
• Sprint Review
  • Demo the features completed
  • Gather feedback
  • Adjust product backlog (if necessary)
A brief summary of some available tools

AGILE TOOLS
Agile Tools
• Microsoft Visual Studio Scrum 1.0
 http://visualstudiogallery.msdn.microsoft.com/59ac03e3-df99-4776-be39-1917cbfc5d8e/

• Microsoft Visual Studio Scrum 1.0 Videos
 http://blogs.msdn.com/b/aaronbjork/archive/2010/09/09/microsoft-visual-studio-2010-scrum-1-
 0-videos.aspx
Agile Tools
• 21 Scrum
Additional Resources
• Mike Cohn
  • Succeeding with Agile–Software Development Using
    Scrum
  • http://www.mountaingoatsoftware.com/
• Ken Schwaber
  • Agile Software Development with Scrum
  • http://kenschwaber.wordpress.com/
• Scrum.org
  • http://www.scrum.org/

Make better share point stuff with an agile methodology

  • 1.
    Make Better SharePoint Stuffwith an Agile Methodology Doug Hemminger, SharePoint Saturday, Twin Cities April 14, 2012
  • 2.
    Agenda, about meand what to expect from this presentation INTRODUCTION
  • 3.
    Agenda • What to Expect from this Session • Why Agile • What is Agile • What is Scrum • How to Implement Agile & Scrum
  • 4.
    About Me • Developing since 1997 • Working with SharePoint since 2005 • Assistant Director at Crowe Horwath LLP • Live and work in the Chicago area • Contact me at: • Email: doug@doughemminger.com • Twitter: @DougHemminger • Blog: http://www.sharepointdoug.com
  • 5.
    In This Session,Learn How You Can… • Provide more value to your customers using Agile • Employ Agile & Scrum on your next SharePoint project • Leverage Agile & Scrum tools and resources
  • 6.
    In this sectionwe will explore why you should consider Agile as an appropriate software development methodology for your next SharePoint project. WHY AGILE
  • 7.
    Why Agile • Better • Agile can produce higher quality work • A number of studies demonstrate a lower defect rate and higher customer satisfaction with Agile projects • Faster • Agile projects have a 36% faster time to market • A number of studies demonstrate that features are deployed at a significantly faster rate with an Agile process • Cheaper • Agile projects are roughly 16% more productive and have overall lower costs
  • 8.
    Why Agile • Acceleratedtime to Happier market Customers • Increased quality • Better team collaboration Happier Employees • Higher productivity State of Agile Development Study: http://www.versionone.com/state_of_agile_development_survey/10
  • 9.
    Salesforce.com – ACase Study • Founded in 1999 • Used traditional software development method – a modified version of the waterfall approach
  • 10.
    Waterfall Wasn’t Working •Time to market was too slow • In 2006 Salesforce.com had 1 major release • Salesforce.com could not respond to customer requests with timely feature releases • Waterfall approach could not easily account for evolving customer needs
  • 11.
    Which Led To… •Unhappy Customers • Low Team Morale • “We had huge morale problems” – Steve Green, Senior Director, Salesforce.com • Productivity declined as the team grew
  • 12.
    There Is ABetter Way
  • 13.
    Salesforce.com Implemented Agile •Developed a home-grown version of Agile called the Agile Development Methodology (ADM) • 30 scrum teams, each with 6-10 members • 3 one month sprints made up their first release cycle
  • 14.
    Results Were Immediate… •On average, customers were getting features delivered in half the time • Remember, not a single feature delivered in almost a year: in the first 9 months of using Agile, 60+ features were delivered
  • 15.
    High level definitionof Agile and an introduction to the various methodologies. WHAT IS AGILE
  • 16.
  • 17.
    Agile Definition • Agileis a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self- organizing, cross-functional teams Source: http://en.wikipedia.org/wiki/Agile_software_development
  • 18.
    The Agile Manifesto • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
  • 19.
    Principles Behind theAgile Manifesto • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage http://www.agilemanifesto.org/principles.html
  • 20.
    Principles Behind theAgile Manifesto • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. http://www.agilemanifesto.org/principles.html
  • 21.
    Principles Behind theAgile Manifesto • Continuous attention to technical excellence and good design enhances agility • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. http://www.agilemanifesto.org/principles.html
  • 22.
    Agile Methodologies Source:http://www.versionone.com/state_of_agile_development_survey/10/page3.asp
  • 23.
    High level overviewof Scrum WHAT IS SCRUM
  • 24.
    What is Scrum http://www.slideshare.net/sgreene/stanford-7822999
  • 25.
    New Roles withScrum • ScrumMaster • Owns the process • Removes impediments to the team • Product Manager • Manages the Team, providing vision and boundaries • Makes sure the team works well together • 1 product manager per team
  • 26.
    The Developer Rolewith Scrum • Collaboration • Become an active participant in understanding product requirements. Can’t sit and wait to be told what to do • Talk to customers and users • Engage coworkers. Help solve problems. Stretch your boundaries. • SharePoint developers on a Scrum project need to be able to step outside their comfort zone and do what is necessary to help out the team. This could include: • Designing • Analyzing • Testing
  • 27.
    SharePoint Developer Technical Skills •Eric White outlines a complete set of SharePoint developer building blocks in a two part series: http://msdn.microsoft.com/en-us/library/gg454784.aspx http://msdn.microsoft.com/en-us/library/gg467340.aspx • Sometimes helpful to separate skills into server-side and client-side
  • 28.
    How to bringAgile to your organization HOW TO IMPLEMENT AGILE
  • 29.
    How to ImplementAgile • Get buy-in from management, team members, and most importantly, client and users • Successful adoption of an agile approach does not necessarily just mean selecting an individual method • Do what suits your company’s culture, individual skillsets and talents
  • 30.
    Meetings and Planning •Iteration Planning • Iteration is time boxed – usually 1 to 3 months • Iteration planning can be a single meeting or a series of meetings. Whatever it takes to create and prioritize the product backlog • Prioritizing features and bugs is key • Sprint Planning • Sprint is time boxed – usually 2 to 4 weeks • Sprint planning meeting is 1 to 2 hours depending on the length of the sprint and the size of the team • Creating and prioritizing tasks is key
  • 31.
    Create a ProductBacklog • A product backlog consists primarily of: • Features – typically in the form of user stories • Bugs http://www.mountaingoatsoftware.com/scrum/product-backlog
  • 32.
    Create a SprintBacklog • A sprint backlog consists primarily of developer tasks associated with a feature or a bug http://www.mountaingoatsoftware.com/scrum/sprint-backlog
  • 33.
  • 34.
    Meetings and Planning •Sprint Review • Demo the features completed • Gather feedback • Adjust product backlog (if necessary)
  • 35.
    A brief summaryof some available tools AGILE TOOLS
  • 36.
    Agile Tools • MicrosoftVisual Studio Scrum 1.0 http://visualstudiogallery.msdn.microsoft.com/59ac03e3-df99-4776-be39-1917cbfc5d8e/ • Microsoft Visual Studio Scrum 1.0 Videos http://blogs.msdn.com/b/aaronbjork/archive/2010/09/09/microsoft-visual-studio-2010-scrum-1- 0-videos.aspx
  • 37.
  • 38.
    Additional Resources • MikeCohn • Succeeding with Agile–Software Development Using Scrum • http://www.mountaingoatsoftware.com/ • Ken Schwaber • Agile Software Development with Scrum • http://kenschwaber.wordpress.com/ • Scrum.org • http://www.scrum.org/

Editor's Notes

  • #4 Introduction and What to Expect from this SessionI will layout what I hope you will get out of this sessionThis is an interactive session. Please let me know if you have additional expectations or questions along the way.What is AgileDefinitionOverview of the most popular methodologiesDiscussion of the Agile ManifestoWhy AgileWe are going to discuss the general concepts behind the software development process. What must be part of every software development project.Then we are going to analyze a well known case study of Salesforce.com’s transition from traditional software development methodologies to Agile.Then we are going to talk about the benefits of Agile and what you can expect from a successful implementationWhat is ScrumWe are going to discuss the most popular Agile methodology – ScrumHow to Implement AgileWe are going to discuss what is necessary to implement an Agile methodology in your organization.This disucssion will include common pitfalls and ways to get buy-in from leadership and your team
  • #8 BetterVersionOne Survey: The State of Agile DevelopmentDr. Dobb’s Journal 2008 Agile Project SurveyMichael Mah (Cutter Consortium)FasterMichael Mah, in a 2008 study comparing 26 Agile Projects to roughly 7,500 traditional projects found that Agile projects have a 36% faster time to marketCheaperMichael Mah, in a 2008 study comparing 26 Agile Projects to roughly 7,500 traditional projects found that Agile projects have are 16% more productive
  • #9 Michael Mah, in a 2008 study comparing 26 Agile Projects to roughly 7,500 traditional projects found that:Agile projects have a 36% faster time to marketAgile projects are 16% more productiveCaveat: Developers and business users have to have the ability and desire to collaborate effectivelyVersionOne Survey: The State of Agile DevelopmentDr. Dobb’s Journal 2008 Agile Project SurveyMichael Mah (Cutter Consortium)
  • #10 http://www.slideshare.net/sgreene/stanford-7822999http://www.slideshare.net/sgreene/salesforcecom-agile-transformation-agile-2007-conferenceRequirementsLet the meetings begin. For month after month there are hours of meetings each day--meetings with business sponsors, Architects, Analysts, Administrators, and sometimes (occasionally) there are meetings with the users. There is bickering and arguing. Everything is top priority. Everything has to be included. We HAVE to HAVE every feature imaginable. The analysts tell you how the process has to be programmed. The developers say that's a dumb process, "why don't you do it this way" (in the back of their mind, they are thinking how easy it would be to code the process if it were this way). It finally concludes with a 500 printed page document that lands on the System Analysts desk with a thud.DevelopmentThe developers retreat to an undisclosed location. It is said that they are set up in a shanty on Lake Superior in the winter so that they can get food from ice fishing and water from melted ice and never have to leave their computers. But no one knows for sure. Rumor has it that their computers are powered by generators. There is no internet access. They aren't to be distracted from their job of writing code.
  • #18 This definition just comes from Wikipedia. It’s a pretty good definition, though. It’s important to understand what some of the terms mean though.IterativeWe are going to be talking about the Salesforce.com case study throughout this presentation. I will introduce it a bit later. But for now, I want to mention the analogy they use in the case study to explain the iterative approach. They describe it like a Train. The train leaves the station at a scheduled time and it is always on time. There are no exceptions. The train leaving the station is your deployment. The passengers getting on the train are your features. Your features pile on to the train while it is in the station, but once it leaves the station at its scheduled time, and it always leaves at its scheduled time, there are no more features allowed to get on the train. This is the essence of an iterative development process. Deployments are scheduled. Features are added in priority order as they are developed. Once it’s time to deploy, the code base is frozen and deployed. Whatever didn’t make it in has to wait to the next deployment.CollaborationCollaboration sounds good, but what does it mean? Even if you have the most detailed requirements in the world, developers will make thousands of decisions throughout the life of the project. We will talk about some of the more traditional approaches later in this presentation, but keep in mind, for now, that one of the purposes of a requirements document in a traditional software development approach is to reduce or eliminate the decision making that a developer has to make. This is becoming increasingly impossible as software development evolves. Why? Because with things like SharePoint and the .Net framework, there are literally millions of lines of code that are already written. You are leveraging those lines of code to create a unique solution and, in so doing, you are choosing to work within a specific framework. Let’s talk about a form as an example. Someone wants you to create a form on SharePoint. They give you a mock-up and give you the basic requirements. The mock-up includes buttons with rounded-corners and special color schemes. Creating a button with rounded corners and a special color scheme can be solved in a variety of ways. But is it even necessary? Rather than make that evaluation yourself, you decide to mock up a simple button without rounded corners but as much of the color scheme as you can easily manage. Then you show it to the user. What do you think. Will this suffice? The user then makes the evaluation. You help them understand the impact of their decision. If there is no cost to the rounded corners and that is what they originally wanted, then of course, that is what they will prefer. But there is a cost. Time. Maybe, with the exception of the rounded corners, the form could be built more easily using a specific platform (maybe InfoPath). But with rounded corners, you are going to have to either do some fancy CSS or use a specific jQuery library. You tell them, if you want rounded corners, it’s going to take longer and we are going to miss the next iteration. I can get it in this iteration if you don’t mind not having rounded corners. This is collaboration.
  • #23 VersionOne is a software company that specializes in developing Agile software. They do an annual survey to assess the state of Agile development. The survey is publicly available on their website at http://www.versionone.com. Portions of the survey results will be used throughout this presentation. I have no affiliation with or interest in VersionOne.Who has used an Agile approach to development in your workplace?ScrumXPLean/KanbanFeature Driven Development
  • #27 Study in the Global Journal of Engineering Educationhttp://www.scribd.com/doc/65343070/Personality-Types-of-Cuban-Software-DevelopersHuman Interactions in Programminghttp://research.microsoft.com/en-us/groups/hip/
  • #28 Eric White (Microsoft)http://msdn.microsoft.com/en-us/library/gg454784.aspx