Archive for July, 2011

The Next Generation of SCM: AccuRev 5.2

July 26th, 2011 by clucca

I mentioned on this blog last week that AccuRev had big news coming that would mark the next phase in the evolution of SCM – the first big leap since AccuRev introduced the stream-based approach. Well, the big news has arrived with this week’s launch of AccuRev SCM Version 5.2. AccuRev Version 5.2 arms developers with one of the few SCM solutions on the market today that offers streams and enhanced enterprise performance, reporting, security, and scalability through the postgreSQL relational database we’ve embedded into our system.

With this release, AccuRev has also introduced AccuWorkflow 2.0, a collaborative process-centric governance tool that enables automation and compliance with an issue-based lifecycle workflow directly within AccuRev. AccuWorkflow is especially valuable for developers of software solutions for highly regulated industries such as financial services with its stringent requirements for SOX compliance.

AccuRev 5.2 is available immediately.  Check out the press release here  for more details, or see us demo 5.2 at Agile 2011.   You can also check out a brief podcast we put together that examines the major issues and challenges today’s enterprise developers face and how we’ve attempted to help solve those challenges with AccuRev 5.2.  Click here to listen in.

For more info, check out What’s New in 5.2.

Capture The Next Generation of SCM: AccuRev 5.2

Coming Soon: The Next Phase in the Evolution of SCM

July 20th, 2011 by clucca

In a recent post I talked about branching and merging, and offered some tips on how to avoid development nightmares involved with these procedures.

An integral part of the solution I cited is stream branching, which easily accepts parent code while allowing developers to then push code out to other streams. This makes merging easier because the entire file change history is available and automatically tracked.

Streams have been an important step in advancing software configuration management (SCM) technologies and processes. Now, with software development growing more complex seemingly by the day, the time has come for the next phase of more robust SCM solutions.

Between globally distributed teams, emerging methodologies such as Agile, and market demands for faster, better and more cost-effective software, there is great demand for enterprise developers to better manage all of their activities. In addition, industries such as financial services and healthcare face the added complexity of compliance with regulations such as SOX and HIPAA.

I’m excited about some big news we’ll be announcing next week around these challenges. What AccuRev is announcing will be a major step forward both for our clients and the software development industry – it really is the next leap forward for SCM solutions.

I can’t reveal too many details at this point, but stay tuned for more details coming soon – on this blog and the news wires!

Change and Configuration Management: Is Your SCM Up to the Job?

July 14th, 2011 by clucca

One question I hear a lot is “what’s so important about change and configuration management systems? Isn’t that just another layer of software that can clog up the software development process?” The fact is, a majority of software projects fail because of poor change and configuration management and improper use of SCM systems.

So what seems to be the problem? Well, efficient software development is often muddied by the increased use of outsourced development teams spread out over a variety of geographic locations, using a mix of Agile and waterfall modeling processes, and working on parallel projects. Choosing the wrong SCM system can reduce development efficiency, lock engineers into inappropriate processes, and cause defects to ship that can cost a boatload to fix and adversely affect overall product quality and, ultimately, customer satisfaction.

The right SCM tool, however,

  • enables flexible processes for easier change and configuration management
  • stands up to demanding frequent build, test, and release cycles
  • helps improve quality while reducing the cost of the shipped product

In other words, the right SCM system, properly implemented and used, will make the entire software build, test, and release process faster, easier, and more successful. And isn’t that the whole idea?

Any good, comprehensive SCM system consists of four basic elements:

  1. Version control, which tracks changes to a file over time
  2. Build management, which enables developers to track a build’s progress and what goes into it
  3. Release management, which handles the transition from initial build to shipped product
  4. Process control, which ties it all together

The right mix of these four components will depend on the project size – more complex projects might require more build management, frequently-updated products might need more release management.

Size matters.
One of the most important aspects of efficient and effective SCM is right-sizing – making sure your SCM system is scalable to meet the size and scope of your development projects. Too often, organizations struggle with a one-size-fits-all SCM system that is simply inappropriate for the project at hand. Likewise, use scalable best practices; for example, don’t waste precious time and resources collective extensive project metrics for one-off projects – save the thorough data collecting for more complex builds, potential version updates, and product line extensions.

Managing change and configuration
All development processes, waterfall or Agile, need to handle branching, merging, and refactoring as efficiently as possible. Code often needs to be modified or revised for maintenance purposes or to facilitate emergency releases associated with defect repairs. Your SCM system needs to be able to handle branching, merging, and refactoring effectively to ensure that any fixes carry forward from maintenance releases to major future releases so that any errors or bugs don’t perpetually pop up as ongoing problems after their initial fix.

SCM Best Practices to improve your software development processes
To help you implement the ideal SCM system or improve your current one, here are eleven SCM Best Practices to aid process improvement and make your SCM as efficient and effective as possible:

  • Forget one-size-fits-all SCM
  • Design scalable Best Practices
  • Plan your SCM environment carefully
  • Ensure absolute reproducibility for all artifacts
  • Require change requests and change packages
  • Maintain private developer workspaces
  • Create and work from appropriate baselines
  • Leverage metrics for process improvement
  • Create reusable components
  • Merge and integrate as often as possible
  • Structure for distributed development

The proper SCM system, implemented well and thoroughly embraced by your development teams, can make the difference between having a wildly successful product or an error-prone disaster that sucks up time, money, and resources in ever-increasing amounts.