At CRUEL we use the SCRUM software development process. Scrum is a management and control process that cuts through complexity to focus on building software that meets business needs. Management and teams are able to get their hands around the requirements and technologies, never let go, and deliver working software, incrementally and empirically.
SCRUM itself is a simple framework for effective team collaboration on complex software projects.
Basically we create a “master plan”, a project plan that guides us through the definition of the high level requirements (user stories), so we know what we want to achieve at the end of the project. Once the master plan is clear we start deciding what we want to implement first, and thus we meet to plan a sprint, that is a period of time over which we develop a selected number of user stories.
Usually a sprint lasts 2 weeks. During this period we develop the selected user stories (divided into single tasks whenever necessary) and deliver a fully working “partial version” of the final product, including the necessary tests.
Once the sprint result has been approved and fully tested we move on choosing the next set of features (user stories) that we want to implement and so on.
This agile process allows us to increase the frequency of feedbacks from the customer and thus avoiding the development of unwanted or misunderstood features and limit the presence of bugs.
In general this process provides high quality results, less reworking and allow project participants to adjust their activities in response to situations that arise during the project management process. The sprint process allows for "good enough" development that results in a saleable product even while the project is in full swing. This incremental delivery system shortens the time to market as each completed backlog represents a new release of the product.