I have been doing the rounds of conferences and user group meetings talking about Lean-Agile SharePoint Development. This is an unusual talk in that, although it is mainly aimed at developers, it also includes a business element. There are not too many business talks that inlcude live coding, and it is the Test-driven Development element that tends to get it a "300 level" rating, although I suppose it really ranges between 200 and 300. If you attended one of these talks you might be interested in the resources below.
Agile development practices are sweeping through the software industry – everyone is talking about Scrum, TDD and CI. But SharePoint is different, right? In the talk I try to show how we can build on the SharePoint platform and still check all those Agile boxes. I run through the definitions of Scrum, Kanban, XP, TDD and the rest. Having set the scene, we roll our sleeves up and get down into the detail of specific development techniques – how you can build SharePoint solutions using lean-agile techniques and get all the benefits – faster development, predictable deliveries, better quality, less stress and happy stakeholders. We overcome some of the unique challenges we face in lean-agile development of web parts, content deployment and configuration. We look at unit tests, integration tests, UI tests, continuous integration and, of course, test-driven development (TDD) using an example. We also look at the different techniques and tooling options and I talk about some practical experiences in real-life agile SharePoint projects, and the inevitable arguments over test coverage and test practices.
The Test-driven Development video used a contrived shopping list example. Although the example, and associated user story, is very simple, it illustrates the process of using the TDD approach in developing a web part. Obviously this is only one particular case, and in real-life SharePoint development there are many other complications, some of which I have covered in another article. But quite a number of people have requested a copy of the code used in the example, so I have uploaded a zip file containing the Visual Studio 2012 solution.