These are my slides from the SharePoint konferenz in Vienna on 17th/18th of June 2013 http://www.sharepointkonferenz.at
SharePoint is typically a strategic decision for companies who intend to use it on a long-term basis. Customizations and enhancements, which means usually farm solutions or apps, are often designed and implemented with disregard to the overall life cycle of the platform.
Future changes of the solutions, changing developers with different preferences in the code design, technical knowledge, documentation standards and quality understanding cause a considerable additional expense for maintenance and operation of solutions.
By applying consistent SharePoint Application Lifecycle Management with Team Foundation Server 2010/2012 and simple "rules of conduct" will allow you to prevent having to start over again when the "expert who knew everything" suddenly leaves the company or the CIO decides once again to replace the consulting firm.
This session presents best practices for SharePoint ALM and tools which can help to spare you the “why didn’t we think about that”-moment in a couple of years from now.
2. Contact
@mattein
mail@matthiaseinig.de
www.matthiaseinig.de
Who is that guy?
• SharePoint developer since SPS2003
• MCSE, MCPD, MCITP, MSCA in
SharePoint 2007-2013
• SCRUM Master and Product Owner
Matthias Einig
SharePoint Architect
Steria AB, www.steria.com
Stockholm, Sweden
Main Focus:
• Solution Architecture,
• Solution Development,
• SharePoint ALM,
• Solution Quality Assurance
sharepoint-community.net
3. Application Lifecycle Management
“is a continuous process of managing the
life of an application through governance,
development and maintenance“ *
* wikipedia.org
6. • Business analyst know
SharePoint!
• Demo SharePoint to
Stakeholders
• Use Wireframes and UI mockups
• Standardize the syntax of
requirements
• Avoid changing SharePoint
standard behaviour
• Manage and track requirements
ie. in Team Foundations Server
<role><can|must><verb><object><condition>
Auser can upload a document with member permissions.
Best Practices
8. Solution Architecture
Objectives
• Re-use components
• Stability and
Performance
• „Build to last, build to
change“
Challenges
• Complexity of SharePoint
• Requirements deviate
from SharePoint
standards
• Existing solutions on
environment
9. Best Practices
• Know SharePoint out-of-the-box capabilities!
• Use SharePoint standard features where
possible
• Design reusable modules
• Use existing patterns i.e. service locator,
repository pattern etc.
• Build vs. buy?
10. Development
Objectives
• High quality
• Conformance to coding
guidelines / conventions
• Testability
Challenges
• Multiple languages C#, XML,
HTML, CSS, JavaScript
• Cryptic dependencies
• Team development
11. • Use source control and workitems
• Structure application in multiple
solutions
• Be consistent in coding approach
(declarative vs. programmatic)
• Convention over Configuration
• Specialized developers
• Standardize development environment
• Use the SharePoint Software Factory
Download for free! http://spsf.codeplex.com
Best Practices
16. Quality Assurance
Objectives
• Ensure maintainability of code
• Validate against company
specific rules and policies
• Identify unneeded dependencies
Challenges
• SP Solutions have loads of files
• XML is not validated
• Do the same a 100 ways
• Deploy into SharePoint “Hive”
17. • Assure quality on check in
• Establish software quality
gates
• Use FxCop, StyleCop and
SPDisposeChecker
• Make regular code reviews
• Check SharePoint “code”
automatically with SPCAF
Download free beta at http://www.spcaf.com
Best Practices
18. No DEMO
See session at 16:00, room 3:
Automated Code Quality
Analysis of SharePoint Solutions
19. Testing
Objectives
• Test against requirements
• Identify bugs early
• Test stress scenarios
Challenges
• Unit testing complicated
• Solution affects standard
functionality
• XML code cannot be tested
• Manual testing costs time
20. • Specify test cases in TFS
• Link tests to workitems
• Separate business logic from SP Code
• Use mocking frameworks
(TypeMock, JustMock, Moles, Shims)
• Use Coded UI Tests in VS
• Use VS TestManager
Best Practices
22. • Standardize deployment
• Use PowerShell
• Include configuration and
content
• Parameterize deployment for
different environments
• Log all deployment steps
• Automate staging through TFS
Download for free! http://spsd.codeplex.com
Best Practices
23. Operation
Objectives
• Maintain a stable farm
environment
• Allow application changes
with minimal impact
• Reduce downtimes
Challenges
• Multiple solutions on a farm
• SP Updates might affect
solutions
• Some bugs can be only
reproduced on production
24. • Have a test farm!
• Expect change and prepare
• Classify and prioritize changes
• Use scripts for changes
• Import live content to test farm
regularly
• Use third party tools to manage
your farm (i.e. DocAve)
Best Practices
25. Summary
SharePoint ALM works for
… any team size (even one person)
… any project size
… any project process (agile or classic)
Introduce it step by step!
Use ALM tools like TFS!
28. SharePoint Camp
ab 08. Juli in München
ab 05. August in Berlin
ab 02. September in Karlsruhe
in zwei speziellen Versionen
www.SharePointCamp.de
Trainings und Events der ppedv
Mehr als 100 verschiedene Trainings auf
Microsoft-Technologien spezialisiert
11 Standorte in AT & D Maßgeschneiderte Trainings direkt bei Ihnen vor Ort!
www.ppedv.at
Wir sehen uns wieder!
29. Hat Ihnen mein Vortrag gefallen?
Ich freue mich auf Ihr Feedback!