Agile Software Development - Solutions for Agile Teams



Agile Resource Center Top Ten Agile Tooling Mistakes

Watch On-Demand Webinar
» Click here
Automate Agile Development with your SCM Tool

Read White Paper: SCM Considerations for Agile Development    » Click here

Many software development organizations are considering moving to an Agile development methodology in order to increase product quality, decrease costs, and respond more quickly to market needs. Since Agile processes rely on fast moving requirements, rapid code changes, shorter development cycles and high levels of Software Process Automation, the demands on SCM and other tools are different than for traditional methods such as Waterfall. AccuRev enables development teams to implement and manage Agile development processes through several important features:

Stream-based code staging

AccuRev streams are uniquely suited to establishing the Agile best practice of isolation between in-progress code and more mature code. A staging hierarchy set up in AccuRev uses streams to model the teams and processes that collaborate to build and release software. Process steps and team activities such as feature integration, quality assurance, and code reviews are well-defined, visible, and easy to manage in AccuRev.
Featured Resources

Feature-based development

All Agile development methodologies require that work on features be done in parallel, so that features under development can be easily tracked, debugged and integrated into larger releases. AccuRev SCM provides visibility into changes made for each feature and supports the ability to work by task (instead of by individual file), to merge changes from one configuration to another, and to revert atomically all changes associated with a task.

Automatic private developer workspaces

Since Agile development encourages frequent check-ins, it is important that developers have confidence that their code will build and unit test successfully. With AccuRev, developers use private workspaces to build, test and debug their code in isolation before promoting and sharing it with their team members, decreasing the likelihood that their code changes will break a shared integration build.

Rollback support

In the event of a build failure, it is important to be able to revert to the last good build so that other developers have a clean configuration of code to use for their own work. Reverting to the last good configuration allows one engineer to fix the broken build while the rest of the team can continue working on their tasks and verifying the work with their own private builds. AccuRev streams, including time-based streams and snapshots, provide an easy mechanism for rolling back to any prior stable build configuration.

Ability to revert and retarget changes

With Agile development methodologies, business requirements for engineering activities change frequently throughout the development cycle. For this reason, it is important to be able to identify the source code changes made for a particular feature, remove them from one iteration and retarget them to a future iteration. AccuRev natively supports retargeting features without the need to write and maintain external scripts to perform the operations. 

Refactoring support

Since Agile methodologies focus on current feature development rather than software architecture and reuse, code must periodically be refactored to make it easier to understand and reusable for other feature work. AccuRev provides refactoring support that preserves file history, tracks and simplifies merges, and preserves namespace changes throughout the history of a file.

Scalability for geographically distributed Agile development

Successful Agile development typically involves co-located teams to reduce communications overhead and foster collaboration. In reality, most software development projects require specialized talents that can only be obtained by utilizing geographically distributed development resources, making it impossible to assemble cross-functional teams at a single location. AccuRev is designed to scale for geographically distributed development, and utilizes the StreamBrowser interface to enable distributed teams to work from a single central repository and collaborate as effectively as co-located teams.