views:

125

answers:

4

Reading through wikipedia I came across the concept of Sprints in Agile development. From my understanding a Sprint is when a group of developers code a certain amount of features and once these features are programmed they are packaged and shipped of to the client, then the next sprint starts and another set of features are coded and shipped off and so on...

I would like to know how the client installs these features so that they become part of the software that contains previous features, does the compiled code get shipped in the form of a patch that the client installs? Does the entire application get recompiled and the client reinstall the application with the updated features? Is the application designed using some sort of framework were the new features can simply be plugged into the currently installed application? How does it all work?

+5  A: 

Each sprint isn't actually deployed. They're deployable, but not always deployed.

"Does the entire application get recompiled and the client reinstall the application with the updated features?"

Of course. It's a new release. Marketing often intervenes and bundles several sprints into a big package for release.

" Is the application designed using some sort of framework were the new features can simply be plugged into the currently installed application? "

Rarely.

S.Lott
+1  A: 

The definition of a sprint is normally a fixed amount of time in which features are implemented based on priority; so time is fixed and content is variable.

The idea of the sprints is to deliver potentially shippable code; that does not mean that each of these versions must be deployed at the customers. Often there is also another process around this in which for instance validation and deployment can take place. Or every 1 of 2/3/4 sprints is a release sprint.

Adriaan
+2  A: 

The idea is that at the end of each sprint you should be deployable, fully and completely (actually, even within the sprint). This release will have reduced functionality, but it should be fully usable within the limits of the partial implementation. The client is not involved, generally, nor the Q/A department (if you have a dedicated one "before final release"). Who gets involved is:

  • internal business experts (e.g. if you are developing a software for medical data access, you will have someone with direct experience in that field)
  • internal QA and interface usability experts (they refine the interface, and hunt for bugs of the sprint)

If the client wants to see something, you are always ready to show him. This will keep him interested, give him a sense of progress, of security (you are doing something, and he can see progressive improvements) and eventually he can provide you useful feedback.

Stefano Borini
+1  A: 

The company I work for (and most other Agile companies I know) work in web development, where these issues aren't a concern. Your sys-admin deploys right to the webserver at the end of each sprint (theoretically). In practice, I say we deploy about every other completed sprint.

Matt Grande