SHAREPOINT REQUIREMENTS ANALYSIS 15 Tips for Bulletproof Requirements Analysis And Documentation About Hershey Technologies… • Founded in 1991 • Microsoft Partner • Specialists in • Document Imaging / Scanning • OCR (data and document capture) • ECM • BPM / workflow • End to End SharePoint Consulting Services • Follow us on Twitter: @HersheyTech About Tom Castiglia… • Principal at Hershey Technologies • Twitter: @tomcastiglia • Email: tcastiglia@hersheytech.com • Joined Hershey Tech in 1998 • Director of Hershey’s professional services team since 2001 • Passionate about ECM and Workflow solutions for SharePoint • Founding Member of San Diego SharePoint User Group (@sanspug) Agenda • Provide specific, field tested techniques to ensure accurate and complete project requirements • Geared more for “waterfall” lifecycle, rather than Agile projects, however… • Some techniques borrow from Agile • Some techniques are useful in Agile projects What types of projects does this apply to? • Best for medium - large custom solutions, such as: • Workflow projects • Application integration • Content Migration / Upgrades • Projects… • That are Mission Critical • That require an ROI justification before they can be started Why? • To accurately estimate project costs, precise requirements are needed. • Even small changes in requirements can sometimes cause a large impact to project costs • A changes in requirements are more expensive the later they occur in the project lifecycle • Getting requirements right saves time, money and usually ensures a project’s success Cost of changes Cost of Change of Project Life Cycle 60 50 Axis Title 40 30 Cost of Change 20 10 0 Analysis Design Implementation Axis Title Testing Support Before you start… • The customer must establish baseline technology platform demanded by the business • Example 1 – • Customer says, “We need to display some financial transaction data from SAP within the Marketing Team site in SharePoint 2010.” • In this case, use of SAP and SharePoint become business requirements (not technical requirements) • Example 2 – • Customer says, “We need to share some financial data with some users that are outside of the finance department.” • In this case, the consultant can propose appropriate technologies (such as SAP and SharePoint) but these become technical requirements, not business requirements. Tip #1 – Decide upfront how flexible your requirements can be… Solution Type Typical Time Frame Comments Out of box (OOB) Hours to Days • Features that can be implemented by well trained end users, directly from the browser. • Incredibly broad set of features, but not very deep InfoPath Hours to Weeks • Generally requires SP Enterprise CAL • Very powerful form design and integration tool • Decent re-usability story SharePoint Designer Hours to Weeks • Heavily customizable, but not infinitely • Requires a developer or well trained IT Pro or business analyst. • Not ideal for re-usability Custom Code Hours to Months Anything you can think of can be implemented 3rd Party Hours to Days • Can be deployed by an IT Pro. • If costs for product licensing + maintenance < custom development costs, then this option should be considered. Tip #1 – Consider Out of the Box Solutions for… • Users that have widely adopted SharePoint already • Basic Document approval workflows • List management (Excel replacement) • Changing UI themes, colors and logos • Ad-hoc taxonomy changes • Projects with low ROI expectations • Note – Does not support re-use or formal testing Tip #1 – Consider InfoPath for … • Customizing UI for OOB list forms • Straight up Data Capture tasks, like a survey • Custom approval forms for workflow projects • Application integration via Data connections to SQL Server and web services • Rich user interfaces using configurable rules Tip #1 – Consider SharePoint Designer for… • Serial workflows process (reasonably simple) • Branding / Custom Master Pages and Page Layouts • Creating External Content Types with BCS Tip #1 – Consider 3 rd Party solutions if … • You require re-use across multiple environments • You require formal QA Procedures (DEVQASTAGINGPROD) • You have strict requirements that cannot be satisfied with OOB, InfoPath or SPD • You prefer to buy rather than build • You identify a vendor/product that meets your needs at an appropriate price. Tip #1 – Consider Custom Code if… • You require re-use across multiple environments • You require formal QA Procedures (DEVQASTAGINGPROD) • You have strict requirements that cannot be satisfied with OOB, InfoPath, SPD or a 3rd party solution • You prefer to build rather than buy Tip #2 – Remember Project Management Triangle Pick Any Two Tip #3 – Just because you have a hammer, not everything is a nail • Most software developers and SharePoint consultants have their “favorite tools”. • Do not make technology choices until the business requirements are fairly well defined • Most requirements can be implemented with 2-3 different types of solutions, you should know what they are and be able to explain why one was selected over the others. Tip #4 – Start requirements with user stories User stories are: “One or more sentences in the everyday or business language of the end user or user of a system that captures what a user does or needs to do as part of his or her job function” Tip #4 – Start requirements with user stories • Common format for a user story is: • "As a <role>, I want <goal/desire> so that <benefit>“ • Example: • “As an AP Clerk, I want to get an invoice approved so that I can pay our vendor” Tip #4 – Start requirements with user stories • Add copius notes and details to each user story • Notes should be as specific as possible. • Notes may be included directly in the story or kept separate and linked somehow. Tip #5 – Use Unambiguous language • Review every sentence in you requirements to determine whether it could possibly be interpreted in more than one way. • Re-state your customer’s requirements in your own words and verify that your customer agrees that what you said means the same as what they told you. Tip #5 – Use Unambiguous language (example) A MB IG UO US S TAT E MENT “Update existing rows in the AP Invoice Lists with the check number, check date, and voucher ID” U NA MB IGU OUS S TAT E MENT “Update existing rows in the AP Invoice Lists with the check number and check date using the voucher ID as a unique identifier” Tip #6 – Look for Low Hanging Fruit • When budget is tight, classify features by… • Value to the client / ROI • Development complexity (story points) • Prioritize features that are high value and low complexity first • Focus on OOB features that can add high value quickly and at low cost Tip #7 - Be sure to properly understand the relationships in the data model For example – Your customer tells you that invoices have a single GL Code, so your initial data model looks like this… Tip #7 - Be sure to properly understand the relationships in the data model You later find out that one invoice may occasionally contain multiple GL codes, and the data model needs to be refactored like this Tip #8 – Create UI Mockups for any interfaces that are not OOB • Many great tools available… • Visio • PowerPoint (Story Boarding feature) • InfoPath • Visual Studio Tip #8 – Create UI Mockups for any interfaces that are not OOB Tip #9 – Create workflow diagrams with detailed legends • Start with high level over view diagram • One activity block for each major subprocess Tip #9 – Create workflow diagrams with detailed legends • Expand each sub-process into its own separate flowchart • Activity blocks are color coded: Automated Step Manual Step Decision Point Termination Tip #9 – Create workflow diagrams with detailed legends Provide clear details for every step Tip #10 – Document Consolidation • For larger projects, most IT organizations rely on at least two major project documents: • Business Requirements Document (BRD) • Technical Design Document (TDD) • For smaller to medium size projects, consider consolidating these into a single “Solution Design Document” (SDD) • Avoids duplication of info that is reflected in both BRD and TDD • Less work • Can offer greater clarity and context compared to separate BRD/TDD Tip #11 – Be careful of Jargon • If you are using SharePoint specific or other technical jargon, be sure to explain it to your customer • If your customer is using jargon that you are not clear on, don’t be afraid to ask (and don’t guess/assume). • If terms are ambiguous establish definitions up front. Document them and use them consistently. • (“client” vs. “customer”) Tip #11 – Be careful of Jargon • Common SharePoint Jargon: • “ a Site” • End-User thinks: “sub site within a SharePoint site collection” • Developer thinks: “site collection” • “a Web” • End-User thinks: ??? • Developer thinks: “sub site within a SharePoint site collection” • “Farm” • End-User thinks: “huh?” • IT Pros and Developers think: this refers to the collection of web servers, application servers and database servers that power a single SharePoint environment Tip #12 – You need to know what you don’t know • You don’t need to know all the answers, but you do need to know all the questions that should be asked! • Just because you have read or know about a SharePoint feature, don’t assume that feature works the way you want it to unless you have specifically used or tested that feature. • If project is outside your expertise, bring in an SME Tip #13 – Clearly document Out-of-scope requirements • Your requirements document template should include a standard section for “Out of Scope Requirements” • Omitting a feature from the requirements document is not the same as documenting that the feature is “not in scope”. • If a feature was discussed even in passing, your client may assume it is “in-scope” unless you clearly document it as out of scope. Tip #14 – Don’t forget about “Non-Functional Requirements • Important Non-Functional Requirements that should be documented • Scalability • Performance • Testability • Robustness • Maintainability • Extensibility • Many others documented at: • http://en.wikipedia.org/wiki/Non-functional_requirements Tip #15 – Make sure your customer carefully reads the requirements document