Stop SharePoint Project Failure;Create Real RequirementsSharePoint User Group of D.C.June, 2013Matthew J.Bailey
I consider myself a “SharePoint All-Rounder”. My job tasks vary fromAdministration, Development, Training, Analyst, UAT and Project Management.My job changes daily based on the crazy life of an IT fellow in corporate America,but it keeps things interesting!If I don‟t know an answer to one of your questions, I will try to find out or pointyou in the right direction!SharePoint Business Analyst &IT Project ManagerJDSUMatthew J. Bailey, MCTS
What is Project Failure?It means different things todifferent people. The product did not finish or launch at all / abandoned The project finished but did not deploy The project finished but not as promised or expected The project finished and deployed but unexpected issues occur later The project deployed, according to requirements, but no one used it
SharePoint Project Failures -QuotesWhat u talkin‟ bout Willis? “It was so slow we couldn‟t use it” “We spent over 1 million dollars on it and it still doesn‟t do what wewanted it to” “The project finished and deployed but unexpected issues occurlater” “The project deployed, according to requirements, but no one usedit”
SharePoint Project Failures -What Really HappenedI be talkin‟ „bout this! “It was so slow we couldn‟t use it” “No one did a demo first” , “it has been a constant add-on of one project on top ofanother coded poorly”, “so many people have worked on it, consultants, employeeturnover, etc”, “the sales person showed me a demo so I know it should work”, “I read iton the internet so it must be true”, “the server infrastructure could not support it”, “ithad 3rd party black box dependencies” “We spent over 1 million dollars on it and it still doesn‟t do what we wanted it to” “The right people were not involved in the design or are no longer here”, “someonepromised the moon and delivered an asteroid”, “miscommunication”, “requirements werenot very specific”, “people conveniently forget” The project finished and deployed but unexpected issues occur later “who would be managing later was not considered”, “employee turnover”, “long termusage and data size was not considered”, “maintenance is not being performed”,“uncontrollable issue such as my home internet service to my company’s VPN that is slow“ The project deployed, according to requirements, but no one used it “user design was not considered”, “the users of this were not consulted”
Warning, success can be hard workOur requirements / designdocuments should include:!
Requirements DocumentationOur requirements / designdocuments should include: Scopes Assumptions Risks / Concerns / Unknowns Dependencies Audience Responsible Parties (even if unknown)* NOTE: Requirements documents can vary from company to company.These are guidelines not a mandated format that must be followed.
How we thought the project should goWe haven‟t realized it yet,but it is going show uplater… Performance 3rd Party Tool Integration / Dependency on Other Items Hardware / Infrastructure Issues Choosing poor development methods / lack of experience
How the project ended up going…
How could we have preventedthis?Scope• How the user will interact to complete this process• What the finished result will be• What the expected level of effort will be• Budget• “ Oh, well we have text in CEWP and typed on the page. “• “ Understanding what SharePoint can/can’t do & how hard it is to do “• “ page should copy over any text we put on it. “• “ I know you told me that wasnt possible 3 times, but I am going to ask again and then asksomeone else on the team because I really want it. “• “It doesn’t have the wording I want “• “Oh, we have a bunch of custom web parts on the pages. They dont seem to be copying over tosome sites.”
How could we have preventedthis?Audience (stakeholders)• IT / Administrators / Infrastructure / Architecture• End users / Other developers/project teams (not directly on thisproject)• Past parties involved with project (if needed)• Change Management• Managers (related or ones whose actions could put a stop toeverything)• Project Managers & Project Developers• “Wait! We have a huge company acquisition coming and everything has to stop until we makechanges for that. “• “ Yeah, just send me an email and Ill do that (Im still waiting...) “• “ Who are you? “• “ Others agenda / needto control / be right, etc. “• “ Oh, I didnt know anything about this project you were working on. We were working onsomething that might affect this. “
How could we have preventedthis?Dependencies• Ability to perform our job function / do what we need to• Ensure other items we need function properly now• Ensure we have access to what we need• Budget• Skilled SharePoint resources• “We are developing on a desktop configured with different versions of SharePoint vs. yourenterprise server configuration. Your Page Layouts on your test server are broken. “• “ Well, we have different page layouts that we use but it should work for all of them regardless ofwhich one we use. “• “ How come these CQWP parts arent showing on some of the site pages? Yeah, they are all lookingup different to list items based on different metadata terms, most of which dont exist so theywould apply to the new page on the other site. “
How could we have preventedthis?Assumptions• Governance stating what is allowed to be done/used in thisenvironment• Bugs - Known• Properly configured well performing infrastructure• “What am I allowed to do”• “We have to present this to Change Management now. Oh, you dont feel comfortable withmanually copying .dll files to 9 servers due to our load balanced environment?”• “Why is this workflow sooooo slow?”• “ What do you mean Im not allowed to use SPD on the test server, why is it disabled? You didnttell us how we could build it. SPD is disabled for security reasons, why would you need it? “
How could we have preventedthis?Risks / Unknowns• Company initiatives• Project participant turnover• Project history• “ Effective immediately, we will be streamlining the organization and the following personnelchanges will be made... “• “ We have to do a restore on a server so your project is delayed. “• “ yyy isnt available, you will now be contacting zzz “• “ xxx isnt available, you will now be contacting yyy “• “ History “
How could we have preventedthis?Responsible Parties• Company initiatives• Project participant turnover• Project history• Participant committment• “Yeah, just send me an email and Ill do that (Im still waiting...) “• “ I have too much to do (a.k.a., surfing the internet) and cant test this, can you ask someone else?“• “ I thought we had agreed on a list of defects with this project, why have some disappeared fromthe bug list “
It‟s a fine line to walk…Depending on your role, youmay not be at liberty toaddress some topics If you are in IT, you don‟t want to look incompetent, yet lack of disclosure creates anenvironment for rumors to be created and spread. If you are a consultant, there is a challenge between knowing you need the work to surviveyet not being dishonest or taking on more than you can handle. If you are in management, you may not be able to disclose items such as budget,employee turn over, company/IT direction, etc. If you are selling the 3rd party product, it is hard to know everything about a potentialcustomer‟s systems and needs, yet bringing it up could eliminate the product from beingconsidered.
More Ideas to create scope…What can assist us withproject success even more? Pictures / Video Technically specific SharePoint items Diagrams
Step 1 – What we knowWhat are we sure of and isready for a finalconfirmation?! We know we are building a workflow! We know who some of the people involved are! We know there will be a budget and IT related people involved! We know there will probably be a timeline!
Step 2 – What we know we don‟tknowWhat are we not sure of butknow it?? Who in IT will be helping us? Who specifically will the developers be? What parts of SharePoint technology are we going to be using? What are our restrictions regarding coding / implementation? Who could be the other stakeholders in this?
Step 3 – What we don‟t know wedon‟t knowWe haven‟t realized it yet,but it is going show uplater…• Bugs that will surface• Company initiatives changing• Participant / people turnover• People‟s agenda
Diagrams can help, or at least confuse your stakeholdersenough to make them stop and think….Our requirements / designdocuments should include: Scopes Assumptions Risks Dependencies
SharePoint Technical Considerations (1)Are we allowed to deploy full trust solutions?Would be good to know if we can use all of the SharePoint functionality or notupfront.Are we depending on an AD authentication from anotherlocation?Have the users been made aware that there can be slowness or failure due toAD being down on the verification side?Are we dependent on a web service/data cloud service fromanother system? Has this service been tested / researched for reliability?Are we allowed / will we need to run code with elevatedprivledges?Has research been done to verify that you must use this method, if it alright touse it at this company?Are we allowed to deploy code to the GAC?Did we ask if we can create custom .dll files and must they be bundled in a.wsp for deployment?Are we dependent on or using a complex taxonomy / term store?Who manages the term store? Programming against it can have challenges.There were known bugs with renaming terms in the Hidden Taxonomy Listprior to SP1 for SP2010. If programming against it, how are you programmingto access the data.Are we dependent on data that is not always fresh, such as asearch index or an import job?Are we familiar with the search topology, can it support robust searching? Howfrequently are the indexes crawling and will full or incremental crawls be used?Anything dependent on the User Profile Service? Do we know how often this runs and what it is importing?Are there items such as cache settings or security you do notknow about that will create issues?Have we checked if there is any site level caching, site collection level caching,server level caching or load-balanced / failover issues that could make us thinktwice on how we program?Do we have proper test / stage / prod environments to properlydevelop test on (whether it be internal or working another partywho is doing the development for you)?Do we have proper, completely similar environments set up to develop, testand deploy on? Was a good deal of time spent comparing the environments tomake sure they are similar (i.e., C.U., SP numbers, features enabled, search setup same)?
SharePoint Technical Considerations (2)Are we allowed to run PowerShell scripts?Is there anything in this project that is going to require data clean up, changes toexisting items, special configurations or other items that you will need PowerShell for?Are we aware of architecture / power of architecture?Although this can be difficult to gauge, do we at least know how many servers, withwhat types of hard drives, CPUs, memory & network connections are in this puzzle?Which features / services are enabled on which servers? Can what I am implementinghandle the traffic, processes or coding?Are we aware of complexity of previous solutions / coding you arewalking into that is messy?Do we know the history of this project? Have several people already worked on it andleft it in a shambles? Is there documentation or can we get a hold of someone whoworked on it? Are there end users available who can explain what it is supposed to bedoing?Will we need to/ are we allowed to create custom Timer Jobs /schedules windows tasks?If you are start to require complex coding, will you be allowed to create these types offeatures on the servers? Will the server admins allow it?Will we rely on scheduled tasks or timer jobs that do not run frequentlyenough?If you cannot increase the frequency of the timer jobs, do the users at least know thatin some cases the time delay so they do not think something is broken as it "appears towork one day and not the next"Can I give the right permissions to users of your application that areneed to use it?Have we designated which role needs to accomplish which tasks in which areas ofSharePoint (i.e. there are sites they need Owner access to but they are a Contributoreverywhere else, do we need to create custom permission levels)Will I need / can I use some "fancy" security authentications such asclaims/secure store/FBA, etc?Is IT alright with doing this? Has the person doing it completed something similar inthe past to troubleshoot the complexities of it?Will we be doing client side/browser dependent application coding andcant control the clients browser or device?User experience such as streaming media from 3rd party video player, mobile,responsive design is a potential UX risk.Will we need custom web parts?Are there already web parts to do this? Can a 3rd party web part be used instead(risks)?Will be using using some codeplex / open source unsupported code?Has there been a lot of testing done to ensure the usability of this? Is it continuallyupdate or supported? Is there any other information on the internet about it or do youknow anyone who has used it?
SharePoint Technical Considerations (3)Are we dependant on an API that could change?jQuery and version changes, different items needing different versions. Otherproducts API that could change (i.e. video streaming service other .js libraries,java, ODBC)Are we dependant on 3rd party applications running on top ofSharePoint that are like a "black box"?Is there a product such as a workflow or data integration product from a 3rdparty involved in this project? If so, are you familiar with how it works or isthere little ability to seeAre there multiple people working on a project and there is codeoverlap or overwrite?Is there a code vault/TFS scenario in place? Is there ongoing discussion with alldevelopers involved? Are others deploying code in between times you areintroducing new conflicts?Are we sure of data retrieval formats / availability?Are you aware of how the data in SharePoint/SQL is stored? If using InfoPath,are you aware of how some of the format of the data is returned?Are we familiar with applicable known bugs / patches ? A quick glance to the known bugs site for SharePoint can give some guidanceWill we be able to access ULS logs to troubleshoot on productionservers?Will you have access to the ULS/Server logs to troubleshoot, how long arethey being kept for, are there backups created if something goes wrong,Is existing lack of governance going to create issues?data formats, different types of columns, data spread across differentsites/collections/web applicationsAre we using InfoPath? Are using a great deal of InfoPath, is it mixed in with Content DeploymentAre we using SharePoint Designer Workflows?Do you understand the level of complexity of the workflows going forwardand currently? Can SPD workflows support this, would VS workflows bebetter?Might we might be upgrading soon?There are a great number of changes in SharePoint 2013 that could affect howyou do many things
A picture is worth a thousand words hours of work
Final Thoughts…What can assist us withproject success even more? Letting Go: What can you control, what can you not Do your best, keep notes from each lesson you learn for future projects Take the time, even though it may not be enjoyable, to do more work upfront Get commitment and sign off from others Don’t give up! (unless you just got a way better job offer of course)
Feel free to connect:@matthewjbailey1http://www.matthewjbailey.comhttp://firstname.lastname@example.orgDownload my slides and get started at:http://bit.ly/195mmDP