20 May 2016

Agile Tutorial - Release Planning / Sprint 0

Release Planning or Sprint 0 is a key event in Agile process. Here the entire team participates to create a Release backlog from Product backlog along with a release plan/schedule. It is focused on only one release. A release cycle is generally of 3-4 months.

In release planning, Product backlog consisting of features/epics is further groomed by adding User stories. These are prioritized and estimated. Based on team capacity (also known as velocity), sprints are planned along with release (deployment) date.

Few key points -

  • Release planning is the first meeting where entire core scrum team participates. This runs for 2-3 weeks.
  • Product owner shares the Product vision and Roadmap which is the output of first two levels of planning meetings.
  • Based on the Roadmap, Epics/Features for this release is the only focus.
  • Depending on the state of the Backlog, two key activities happen - 
    • Story breakdown
    • Backlog grooming
  • In these activities, epics/features are converted to user stories.
  • One user story is one requirement which has a specific format and follows INVEST principle. It is small and detailed enough that it can be estimated.
  • User story prioritization is done - 
    • Using MoSCoW analysis
    • By assigning business value
    • By assigning requirement clarity
    • By assigning technical clarity
  • User story estimation is done using Planning Poker/ Wideband Delphi techniques. Estimation is done by developers and testers of team in Story Points.
  • Parallel activities like High level architecture/design, prototyping is done. Team setup like desktops, software, licenses installation/procurement is done in parallel. If number of team members is high, then team division is also done.
  • Team will now have a prioritized and estimated Release backlog.
  • Using the Triple Constant Triangle technique, Release plan/schedule is prepared having following details - 
    • Number of sprints and their dates.
    • Release/Deployment dates.
    • Planned velocity and their projections.

15 May 2016

Agile Tutorial - What is Agile Planning?

Agile planning is the process of brainstorming with key or all stakeholders/members to define goals, identify activities to achieve the goals and planning/organizing the activities.

There are 5 different levels of planning in Scrum framework. Each has a associated Scrum Ceremony with specific objectives. Like any other ceremony, all these planning meetings are time-bound.

5 levels of Agile Planning -

  • Product Vision
  • Product Roadmap
  • Release Planning
  • Iteration Planning
  • Daily Planning
Product Vision

This is a broadest level picture of the product, with a vision statement of the Product Owner along with different business users/stakeholders. This is done yearly as part of Vision workshops, where questions like what the product should be, how it should work, who it should benefit, how/when it will be achieved etc. Various assumptions and constraints are discussed too.
Keywords - What, Who, Why, When, Constraints, Assumptions

Product Roadmap

Roadmap serves as next building block assigned with the vision. These are done as Roadmap Workshops either bi-yearly or quarterly with high level pieces identified for the next 4 quarters. These pieces can be Business Features (also called Epic/Themes), and or Architectural components. These go into Product Backlog with initial estimates done using 'SML (Simple-Medium-Complex)' methodology. Planning of releases is also done along with their tentative dates.
Keywords - Release date, Theme/Feature set, Objective, Development Approach

Release Planning

This is also known as Sprint 0. Its focus is only on the current release. It involves creating Release Backlog. A release backlog consists of user stories from features/epics. These are prioritized using multiple iteration techniques. These are estimated using Story Point estimation technique. Release planning is done by involving the entire team and it generally has a time-line of 2-3 weeks. Sprint/Iterations and release dates are planned based on the estimates and team strength/capacity.
Keywords - Iteration, Team capacity, Stories, Priority, Size, Estimates, Completion definition

Sprint/Iteration Planning

This is the first activity that is taken up in every Sprint/Iteration. Focus is only on the current sprint. This is done by involving entire team for 2-4 hours. This activity involves picking up top stories from the Release Backlog and creating Sprint Backlog out of it. The Sprint Backlog consists of Tasks having estimates in Hours. Sprint Goal is also defined and Sprint Commitment is given by the team. 
Keywords - Stories, Tasks, Completion definition, Level of effort, Commitment

Daily stand-up

It is a 15 minute time-boxed/bound meeting between all team members. Each team member talks about what they have accomplished yesterday, what are the plans for today and impediments if any in achieving them. This ensures that team is on the same page and everyone in the team has a sense of purpose and meaning about the work to be accomplished on a daily basis.
Keywords - What I did yesterday?, What I will do today?, What is stopping/blocking me?


10 May 2016

Agile Tutorial - What is Scrum framework?

Scrum is a time-boxed, iterative and incremental agile software development framework. It is the most commonly used Agile methodology in the software industry.

The Scrum approach to Agile software development marks a dramatic departure from waterfall model. Scrum emphasizes collaboration, functioning software, self-organized team, and the flexibility to adapt to emerging business realities.

It is inspired by empirical inspect and adapt feedback loops to cope with complexity and risk. It uses real-world progress to plan and schedule releases. Time is divided into short work cadences, known as Sprints or Iterations. These are typically two week long. At the end of each sprint, stakeholders and team members meet to see a potentially shippable product increment and plan its next steps. This allows direction to be adjusted based on completed work, and not on a plan or speculation or predictions.

Scrum is a simple set of roles, responsibilities and meetings that never change. It is a charter of 3 pillars, 3 roles and 3 artifacts.

3 pillars/foundations of Scrum -
  • Transparency/Visibility
  • Inspection
  • Adaptation
3 roles in Scrum
  • Development Team - Self-organizes to get the work done.
  • Product Owner - Responsible for the business value of the project.
  • Scrum Master - Ensures that the team is functional and productive and is following scrum.
3 artifacts in Scrum
  • Product Backlog - Ordered and Prioritized list of ideas for the product.
  • Sprint Backlog - Set of work from the Product Backlog that the team agrees to complete in a sprint. It is broken down into individual definable tasks.
  • Product Increment - Required result of every sprint. This is an integrated version of the product kept at high enough quality to be shippable.
Scrum ceremonies
  • Sprint Planning - Before the sprint, the team meets with the product owner to choose a set of work to deliver during the sprint.
  • Daily Stand-Up - During the sprint, the team meets each day to share progress and impediments.
  • Sprint Review - After the sprint, the team demonstrates what is has completed during the sprint.
  • Sprint Retrospective - After the sprint, the team looks for ways to improve the product and the process.

06 May 2016

Workflows in SharePoint 2013


Overview of workflows in SharePoint 2013

  • SP 2013 workflows are powered by Windows Workflow Foundation 4.
  • SP 2013 workflows run in Microsoft Azure.
  • SP 2013 workflows are declarative only (XAML).
  • SP 2013 workflows are designed to interact with cloud and work with SharePoint 2013 apps.
  • SP 2013 workflows are hosted and run outside SharePoint environment.


Workflow Manager Client 1.0
  • Provides the management of workflow definitions.
  • Hosts the execution processes for workflow instances.
  • New workflow execution host.
  • In SharePoint 2010, workflow execution was hosted in SharePoint itself.
  • In SharePoint 2013, workflow execution is moved outside SharePoint (in Workflow Manager Client).
  • Workflow Manager Client 1.0 interacts with SharePoint 2013 via Workflow Manager Client 1.0 Service Application proxy.
  • Server-to-server authentication is provided using OAuth.
  • SharePoint events are routed to Workflow Manager Client 1.0 using Microsoft Azure Service bus.
  • REST API is used by Workflow Manager to call back SharePoint.

What’s new in workflows for SharePoint 2013

1. Enhanced SharePoint Designer 2013 authoring support
  • SharePoint Designer 2013 provides workflow authors with both a designer surface and a text based workflow authoring environment.
  • It can import custom actions (created in Visual Studio 2012).
  • Custom actions can be accessed from Workflow designer.
  • Can be effectively used by both non-developers and developers.

2. Visual Studio 2012 workflow project type support
  • Visual Studio 2012 introduces SharePoint workflow project types.
  • It also provides workflow custom action-item type that lets developers create custom actions.

3. Completely redesigned workflow infrastructure
  • SharePoint 2013 workflows are powered by Windows Workflow Foundation 4.
  • Uses messaging functionality provided by WCF 4.
  • Microsoft Azure is the new workflow execution host.
  • Workflow execution engine is outside of SharePoint in Microsoft Azure.

4. Fully declarative, no-code authoring environment
  • Workflows are fully declarative.
  • They are no longer compiled into assemblies.
  • No longer deployed to assembly cache.
  • XAML files define workflows and frame their execution.

5. Tool support for SharePoint workflows
  • Visual Studio 2012 provides templates and support for creating SharePoint 2013 workflows.
  • SharePoint 2013 workflows can also be created using SharePoint 2013 Designer

6. New workflow actions 
  • Many new workflow actions have been added in SharePoint 2013 workflows.
  • New workflow actions enables workflows to integrate with Project 2013 by creating Project based workflows

SharePoint workflow interop

  • Enables SharePoint 2010 workflows to be executed from within SharePoint 2013 workflows.
  • SharePoint 2013 includes a SharePoint 2010 workflow host i.e. Windows Workflow Foundation 3 engine. 
  • This is used for executing for SharePoint 2010 workflows.
  • Helps in backward compatibility.

Workflow Authoring Components

1. SharePoint Designer 2013
  • Create and deploy both SharePoint 2010 and 2013 workflows

2. Visual Studio 2012/2013
  • Provides a designer surface for creating declarative workflows
  • Create SharePoint apps and solutions that fully integrate with Workflow Manager Client 1.0 functionality.

02 May 2016

SharePoint 2013 App Licensing

What are SharePoint 2013 app licenses

  • An app license is a digital set of verifiable information stating usage rights of an app.
  • Usage right means – 
    • App is free or need to be purchased
    • App is available on per-user or site basis
    • App is a trial or full version
  • App license can be verified by querying Office store.

SharePoint 2013 App license categories

License Type
Applies To
Duration
Users
Cost
Perpetual all user
All users of a SharePoint deployment, with no expiration
Perpetual
Unlimited
Free or paid
Perpetual multi user
Per user, with no expiration
Perpetual
N (per user)
Paid
Trial all user
All users of a SharePoint deployment.
Can have a set expiration date.
15, 30, 60 days, or unlimited
Unlimited
Free
Trial multiuser
Per user.
Can have a set expiration date.
15, 30, 60 days, or unlimited
N (per user)
Free


App license features
  • App license applies to – 
    • Specific app
    • For a specific SharePoint deployment
    • And Specified users
  • Only site, tenant, or farm administrators can purchase app licenses, as only users with those roles have sufficient privileges to install an app in a site.
  • For security reasons, app license tokens expire and must be renewed periodically.

App licensing framework
  • Provides a way for app developers to customize app access and behavior based on license information.
  • Does not enforce app licenses on its own.
  • It just provides a structure which can be used by code in app to retrieve license information and act accordingly.
  • Applies only to apps downloaded from Office store.
  • Provide APIs to get license information.
  • Provides web service to verify license validity with Office store.

App license acquisition process
  • User acquires/downloads the app from Office Store or App catalog.
  • Office store generates app license and license token.
  • License token is downloaded to SharePoint deployment.
  • User can manage the license token and assign license to one or more users based on license type.

App license verification process
  • App license token gets downloaded to SharePoint installation during installation.
  • When app is launched, app’s license checking code queries the SharePoint deployment for the license token.
  • App verifies license token’s validity and retrieves license information by querying Office Store verification web service.
  • Based on license validity & information, app code takes appropriate action.

App license verification – Best practices
  • For security reasons, minimize access to code that performs app license check.
  • For security reasons, Use server side code to query Office store verification web service.
  • For performance reasons, check for license only when needed.
  • For performance reasons, cache the license token (if possible) until it expires. 
  • Ensure that production version of app does not accept test licenses.