ACCUREV BLOG

Archive for Software Tools

What is your Continuous Integration (CI) strategy? If you don’t have one, you should!

Your development teams are busy building your next product releases. You follow an “Agile” methodology for your software development process, and have feedback loops throughout your processes to increase visibility, quality, and speed. You have a well defined build and release process and you think you have it all figured out. But do you?

What happens when 2 of your 3 development teams checks-in good code and the 3rd team checks-in bad code? If you are merging the code from these 3 development teams into a main integration trunk, chances are the entire build process is going to break. This situation causes a ripple effect whereby QA is stuck with a build they cannot test. When QA is stalled, your build and release process is stalled.  The development teams have to fix their issues, re-test the individual check-ins and re-merge the changes into the main trunk again. If you are lucky, the build will be successful this second time around. This is adding time and cost to your development process and your release cycle. Oh, and by the way, during this time frame, your customers are stuck waiting for software that is just not getting out the door!

exploding branch What is your Continuous Integration (CI) strategy? If you don’t have one, you should!

So how does CI help fix this situation? By integrating early and often, the development process becomes more efficient, eliminating the potential bottle necks and stop gaps that you are dealing with today.

The CI process allows development organizations to be faster, more flexible, adaptable, and quality centric. CI build streams throughout the development process provide additional feedback loops, whereby developers and engineers get feedback on their code faster and earlier in the development process, which allows them to react faster. The practice of CI Build and test provides much greater visibility into what specifically broke a build and helps to find problems before the nightly top down build and test processes.

Pure and simple, Continuous Integration finds issues where they much less expensive and much cheaper to fix, resulting in higher quality and less risk in the end product.

Integrating early and often creates a predictable and repeatable environment. This environment can continue to interface with existing build/ test or code review processes; OR, because of the nature of CI, some of these build/ test and code review processes can now be automated, saving even more time during the development and testing processes.

The ideal Continuous Integration situation to address the issues experienced above may look something like this:

1) Each developer/team works on and completes issues that get submitted to a CI Build/Test stream

2) When those issues pass automated testing or code review, they get promoted up to the Nightly Build stream

3) Issues passing build and testing on the Nightly Build stream get promoted to the Feature stream; and from there to the Team, Final Integration, and QA streams.

 stream and CI What is your Continuous Integration (CI) strategy? If you don’t have one, you should!

Continuous integration ensures only those issues which pass the build/ test or code review criteria get promoted up to higher level streams. This process allows for “cherry picking” those specific issues which pass testing while segmenting and not promoting those issues which are broken or need more work. You no longer have an all or nothing build process.  QA is always working on a stable build for testing and integration purposes. All bugs, issues and defects are identified and addressed early in the development process.

CI is a key strategy for helping companies evolve their software development process.  If your organization has not adopted a CI strategy, you are putting your company’s longevity in danger!

Posted in: AccuRev, Agile, Best Practices, continuous integration, Enterprise Agile, SCM, SCM Resources, Software Configuration Management, Software Tools, Tips and Tricks

Leave a Comment (0) →

Ripping out the Plumbing: Why Thinking about Replacing your SCM Tool Could be a Good Idea

Plumbing1 239x300 Ripping out the Plumbing: Why Thinking about Replacing your SCM Tool Could be a Good Idea
In many ways, software configuration management (SCM) is very similar to a plumbing system. It was probably there when you bought your house, or joined your company. It becomes out-dated and inefficient, and can end up costing a lot more just to maintain than replace. How often do people realistically think about replacing their plumbing, or their SCM tool for that matter? Sure, the transition often requires upfront costs and a temporary lag in progress while a new tool is implemented and teams come up to speed. But what are the potential benefits of reevaluating your toolset, and can those potential benefits outweigh the costs of disturbing the status quo?

Elimination of Merge Hell

Teams often struggle with merges for a release, and end up in “merge hell” . In some cases, the pain is so bad that software doesn’t even get released, or teams have to spend weeks cleaning up a branch. If this was the plumbing system in your house, it could be the equivalent of having a shower that only has ice cold water. This is a problem that we couldn’t tolerate at home, yet because it is accepted part of our day to day “SCM” lives, we tolerate it. Would you take an ice cold shower every day or would you do something about it?

SCM Performance Improvements

Many SCM systems suffer from performance issues. This could be due to the size of the repository or the performance of the network. A huge benefit of changing to a new system is performance improvements – is there a faster tool out there? The productivity gain alone when going from 15 minute check-ins to 30 seconds saves your development team hours. If this was your house, would you tolerate a sink that dribbled water out when you turned the faucet?

SCM tools are highly engrained in day-to-day software development activities. As a result, many processes, regardless of their inefficiency or difficulty, become routine.  When these processes become routine, it is often difficult to realize how impeding they are, or how much these processes can be improved. Many teams are starting to investigate the benefits of “ripping out the plumbing,” by looking for tools that will help them improve software development processes.

Processes such as branching and merging, and even accelerating development as a whole are increasingly important to dev teams, but are proven difficult to establish without the proper tools. So, while replacing your software configuration management tool may seem like an overwhelming task, the potential value that teams can gain from evaluating their tools for can have a dramatic effect on productivity. With the speed and capability of today’s tools, it seems worthwhile to take a step back and see how these new solutions might fit in with your development process and help you optimize the efficiency of your development team.

Posted in: AccuRev, Best Practices, SCM, SCM Resources, Software Configuration Management, Software Tools, Tips and Tricks

Leave a Comment (0) →

General Availability for Industry’s First Seamless Integration of Enterprise-Level Security and Visualization into Git

AccuRev released for general availability today the first Git integration that seamlessly bridges the world of commercial tools and open source software configuration management.

 
Kando diagram blog 287x300 General Availability for Industrys First Seamless Integration of Enterprise Level Security and Visualization into GitAccuRev’s Kando, an enterprise security and compliance platform for Git, which was released in beta in January, complements the open source SCM tool with additional functionality, allowing organizations using Git to simultaneously leverage enterprise-level security and requirements traceability.

Kando is the first software development solution that enables Git development shops to add workflow, issue tracking, security, change requirements and other capabilities to the software development process, all while maintaining the flexibility and familiarity of Git environments.

Kando’s ground-breaking enterprise-level security and compliance capabilities allow its users to:

  • Comply with enterprise-level regulations, by providing full audit and traceability
  • Secure Git with access control capabilities, and support for enterprise authentication via LDAP and Microsoft Active Directory
  • Visualize and manage development processes that use Git in AccuRev’s StreamBrowser™ environment
  • Support Software Change and Configuration Management (SCCM) through change-based development with AccuRev Change Packages

“Our Kando Beta announcement in January had an overwhelmingly positive response, and it is clear that Git adoption has expanded well beyond the Linux community, into product development and IT,” said Lorne Cooper, AccuRev’s CEO. “Kando can solve many security and requirements traceability problems that enterprise organizations face when adopting Git, and really allows Git an opportunity to scale the development process across enterprise software development teams.”

During the development of Kando, AccuRev established the Kando Technical Advisory Board, comprised of representatives from several enterprise organizations with Git environments. To hear what they are saying, or to learn more about Kando, visit http://www.accurev.com/kando.

Posted in: AccuRev, Integrations, SCM, Software Configuration Management, Software Tools, version control

Leave a Comment (0) →
Page 1 of 2 12