Make Better SharePoint Stuff with an Agile MethodologyDoug Hemminger, SharePoint Saturday, Twin CitiesApril 14, 2012
INTRODUCTION
Agenda, about me and what to expect from this presentation
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: [email protected]• 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
WHY AGILE
In this section we will explore why you should consider Agile as an appropriate software development methodology for your next SharePoint project.
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
market• Increased quality
• Better team collaboration• Higher productivity
Happier Customers
Happier Employees
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
WHAT IS AGILE
High level definition of Agile and an introduction to the various methodologies.
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 customerthrough early and continuous deliveryof 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
WHAT IS SCRUMHigh level overview of 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:
• Sometimes helpful to separate skills into server-side and client-side
http://msdn.microsoft.com/en-us/library/gg454784.aspx
http://msdn.microsoft.com/en-us/library/gg467340.aspx
HOW TO IMPLEMENT AGILEHow to bring Agile to your organization
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)
AGILE TOOLSA brief summary of some available 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 Videoshttp://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/