How does Cloudspace's agile development process work?
All projects are built in week-long development sessions that we call "sprints". The first sprint begins with a kickoff session where the client describes the project to the developers. After the client's project description, and in all future sprint kickoff sessions, the developers work with the client to determine what features to build in the current sprint. A pair of two programmers then works together over the following week to complete the tasks agreed upon at the kickoff session.
The primary goal for the end of each sprint is always to have an end-to-end working version of the application; though for the first few weekly sprints this is usually just a rough prototype if the project has much complexity. Each successive sprint makes the application better by adding new features, fixing bugs, improving performance, writing an automated test suite for production applications and completing other requests made by the client. Weekly sprints end with a sprint review and product walk-through. If the project requires additional sprints, the sprint review transitions into the next week's sprint kickoff.
If the client has a very small project or just wants to create a minimal prototype to help get funding, one or two sprints may be enough to meet their needs. However, most average size projects have a launch-ready version of the application ready within five to six sprints. Larger projects can obviously take much more.
At the end of any sprint, the client can decide whether the project is ready to go, or if they just want to put the project on hold, and call it "finished". All we ask is that the client gives us a week's notice if they think they will not be needing sprints we already have booked.
Our policy is to rotate every 6-8 weeks for projects with a single pair. We do this because most of our projects have a single pair, and it is possible for both people to be unavailable at the same time. We always try to reach one of the engineers who is active on the project that week, but there are situations where they are out of the office and their cell phones won't work (think of AT&T's iPhone network in a big city). Rotating pairs is a great way to have more than two people who have good project knowledge, while only paying for a single pair.
Projects with multiple pairs get rotated within the team that is on the project.
How does Agile Feature Planning work?
At the kickoff meeting we work together to describe the system as a series of features (e.g. - a user can login, a user can view items, a user can search by product code). Each feature should have acceptance criteria that describe the different ways that it should be implemented. The features are rated in complexity by the developers (we rate them as half day, full day or two days) and any features larger than that are broken down. We have the client prioritize the feature list and we work on the next feature on the list.
Does Cloudspace offer ongoing Maintenance for Projects?
Yes, the Cloudspace Maintenance team is a dedicated group of developers and support staff, inside Cloudspace, which helps clients with ongoing maintenance after a project has launched and there is no longer a need for a team of developers for a full week, every week. This group specializes in the addition of smaller features, bug fixes, and content updates to live applications. The Cloudspace Maintenance team is also available to answer any questions by phone or email.
Does Cloudspace Maintenance Services also use pair programming?
Unlike when creating a new project, pair programming does not have as large a benefit for all application updates. As such, most updates are done by a single developer. If there is a complicated task, the developer working on the update can always pull in a second developer to pair program the solution when needed.