SharePoint offers several flexible approaches that enable rapid development and deployment of business processes through its out-of-the-box features which are also easily customizable. A SharePoint developer can leverage a lot of this out of box functionality and combine it with .NET skills to create highly functional business solutions quickly, easily and at a fraction of the cost of traditional solutions.
A combination of SharePoint and Agile can be used to deliver good solution to the customers with improved speed up overall delivery time with better focus on developer productivity.
So what are the benefits that SharePoint lends to Agile?
9. ALM
Team project and process template
Environment setup (AutoSPInstaller)
TFS for build automation
TFS for code analysis
Automated deployment
Automated unit, smoke and regression
tests
Software platform, a cluster of featruesgroupedunder on software nameInfrasturcturedesigendtobecustomizableto meet yourorganizationsneedsandchallengesFeatures grouped into mainly 5 sectionsOrganize:All project relatedartifacts into centralizedlocationFromwidespeadnetwork drives and email boxesShare:Onceorganized, users canreachthereusing a link to the location of file they are seacrhingfor. Helps toalways get the latest information.Discover:SharePoint search capabilityexplores content andunderstands the relationshipbetween content and site structure.Provides a better search expthan file search on network drivesBuild:Make your apps available to everyone to try and buy through the public Store or only available to your employees through the corporate catalogTools tobuilddynamic internet sitesManageReducesinfrastructecost – SP on cloudeManage time byspending more on innovationthaninfrastructre management
Out of the box functionalityMost of the client requirements map directly onto features provided from a default provision of SharePoint.Easy prototypingSharePoint comes with an abundance of features and tools that help developers quickly build business solutions even if they don’t have a strong background in web development.Easy customizationEasy dAdministrators can easily access and manage features, system settings, monitor farms, perform backup and restore content, security through the Central Administration Console all in a single location. eploymentandadministration
Doing sprints help the team identify issues early at the project life cycleThis way the teams Learn early from the mistakes and can better themselves in the upcoming sprints.The intention of every sprint is a potentially shippable software that is of immediate use to the user. This will also help the team perceive shippable obstacles and issues early in the development state compared to the waterfall model where issues related to release of software is often identified at the end.The scrum artifacts like daily standups, sprint reviews, retrospections help the team to focus on continuous improvement through inspect and adapt. Improvement by manaing impediments.The task board shows the progress of the stories or tasks, spikes, bugs and the status of each item. Burndows as indicatorsThe velocity charts helps business envision and evaluate the productivity of the team after every sprint
Unit testsIsolateeach part of the program andensureeach of them are workingproperly.ChallengestoisolatesharepointDesign patternsandsharepoint emulatorsSmoke testsSmoke tests are quick, lightweight test or set of automated tests, that confirm that the basic functionality of the sites are working as expected. We use the smoke tests to verify whether the basic standards of internet sites are adapted and are working as expected in all the environments.Mainlyusedbeforeandafter updates are done on farmsAutomation testsThe team also creates a set of UI driven automated tests that cover the functional testing of the UI controls. This helps us verify that the whole application including the user interface is functioning correctly as per the requriements.
Practices of extreme programming.Practicewheremembers of a team integrate their work frequently (every checkin)Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Helps toreduceintegrationproblemsandmaintain code qualityandhlp teams build software faster
Defines environment andsequential steps during software developmentReduces the risk of breaking other applications when side by side deployment of components is facilitated in higher environmentsDevelopers work on code checked into TFS and are responsible for maintaining a passing build on every check-in. These servers are also used as quick demo environments to end users and building proof of concepts.Teams make use of this environment to fine tune installations before moving up to the next farm in the street. This environment has a stable release so testers can perform better integration testing against a specific release build (Regression testing).This a production like server where the IT department performs final validation of the software before going to production (Performance etc). This environment is not used for final testing, but to use as a stage to get final approval from the PO before going to production.
Our project life cycleprocessinvolves setting up SharePoint with visual studio and TFS, managing our backlog in TFS, Build automation,Deployment and automated testing.Process starts with the creation of a team project in TFS, andchoosing a scrum project template.Product backlog is maintained in TFS andPBI’scanbeaddedduringrequirementcollection.Team usesthis project tomaintain the code base.We use scripted installation of SharePoint (SPAutoInsaller) which helps to maintain a similar environment for all development machines and helps the team to configure SharePoint easily. CI builds are configured to ensure code checked in follows the standards and ensures that even if the developers locally don’t run the static analysis rules or unit tests they will be run here and also ensures that all source code is checked in and is working as expectedThe deployment process is a combination of batch files, PowerShell commands and xml configuration files. It is a great way to update the test machines with latest version of the software every time a new version is checked in.Unit tests are executed on everycheckin. Regressionsandsmokeexecuted as part of nighlybuildprocess