Sunday, April 08, 2012

Scrum for SharePoint: Sprint 0

Before I get into the rest of the Scrum for SharePoint Article Backlog, I wanted to take a moment to talk about what happens at the beginning. It is always important to start things out right, and a Scrum-based SharePoint project is no different.

This is an example of being Agile, right? I am reordering the Article Backlog based on new priority from the Blog Owner (me) and working on the top priority item first, just like we would do in Scrum.

As with everything, how a projects starts will vary based on the project and your particular environment. "It depends." I want to document some ways of handling Scrum for SharePoint and see what sticks. In fact, I am looking for your experiences, good and bad, for different ways for starting up a Scrum project that is building out a SharePoint site, application, or an entire farm.

Many questions come up at the beginning of an Agile Scrum project. In particular: When are we going to have time to set everything up? Good question. If you start your first Sprint developing against the Product Backlog but don't have a development/test and/or production infrastructure in place yet, what do you do?

Scrum is designed to be iterative, which means you have a Product Backlog of functionality that needs to be built, which may change over time, but there is no set project plan. Each Sprint takes a piece of that Product Backlog and builds it out within a certain time box. I'll explain more in future posts. For now, just know that a Sprint is between 2-4 weeks and is focused on developing a certain set of features. The list of items in the backlog changes as priorities change, but once a Sprint starts the priorities for that Sprint are set.

It is possible to build time in to each Sprint to handle infrastructure changes and additions. Even for environments that already exist, you are going to need time to adjust them to fit the needs of the project and Product Backlog. In fact, much of the infrastructure work may be totally outside the Scrum process. Infrastructure, in my opinion, makes a lot more sense as a waterfall project. That said, the development team may still need to be part of the process and it might be too much to ask them to do a lot of infrastructure and development environment work alongside actual development. Which is why I think it's good to start out with something in place before any development begins at all.

If no infrastructure exists—say you are building a brand new SharePoint farm or planning to migrate content from an older version of SharePoint—then more work needs to be done so the development team can hit the ground running at Sprint 1. Do not assume that the team will have time to set things up once they are working on user stories and committing to a certain amount of velocity for each sprint. While velocity can be adjusted to fit in time for administrative or overhead tasks, or user stories can be created to work on infrastructure things (is this even a good idea?), the team's focus will be on building out functionality and it will required a concerted effort to work on anything outside of development.

For environments that already have a full or partial SharePoint infrastructure, the job is much easier but there is still work to do. You need developer environments, a development/build server, a test infrastructure, and stuff like source control and something to manage the Agile process (SharePoint, maybe?). Things will go much smoother if they already exist or there is time to set these up before tackling the product backlog.

I guess my point is that while Scrum for SharePoint can be Agile, you still need to consider the foundation of the project team's resources before any development work begins.

In addition to infrastructure and development resources, the beginning of a Scrum project may also include an assessment of the initial Product Backlog, some agreement on initial team process, and maybe a cursory attempt at an overall architecture. Yes I said there might be some design before you start. Does that go against Agile? More on these topics in future posts.

So, what do you do before starting your Scrum for SharePoint projects?

Back to [Scrum for SharePoint: Article Backlog]
Next in series [Coming soon]



warren said...

Nice post, though I wonder: What about this makes it /for/ SharePoint? Any project that needs infrastructure to support its implementation (so... any IT project) needs to have these considerations addressed, right?

Joelsef said...

You are correct. I didn't touch on many of the areas specific to SharePoint yet. I plan to get more into that as the blog series progresses.

I'm also looking for feedback from the trenches. What have they done to prepare their SharePoint environment for Scrum?

Richard said...

Great post Joel. I've worked with Agile dev teams for both sharepoint and non-sharepoint projects, and your post got me thingking about the similarities. My take is if the product backlog contains only product-focused stories, there should be a technical backlog as well. and when the project is in high gear, maybe the entire sprint is 100% product backlog, or (ideally) maybe 80%, with 20% coming out of the technical backlog for things like refactoring, technical debt, etc. But upfront, 100% of the sprint (or whatever amount of time it takes) is coming out of the technical backlog. in fact there should probably be an explicit or implicit dependency on a certain set of technical backlog stories being filled before product backlog work begin.

as far as the actual approach of tackling those initial technical backlog tasks that lay the groundwork (planning, building vms, configuration, service apps, etc), i think its up to the technical team as to how to approach, and if waterfall works for some then i think it can be an effective tactic. personally i would still lean towards an agile approach, one key benefit of which would be to be able to report back to stakeholders in a language they either understand or will soon be learning.