CI Tools and Best Practices in the Cloud

Continuous Integration

Subscribe to Continuous Integration: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Continuous Integration: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Continuous Integration Authors: Yeshim Deniz, Mehdi Daoudi, Elizabeth White, Liz McMillan, Pat Romanski

Related Topics: Agile Software Development, AccuRev, Outsourcing on Ulitzer, Continuous Integration

Blog Feed Post

Developing Legacy Software Doesn’t Mean you Can’t Also be Agile

Having spent a significant amount of time in various engineering and development organizations, I have had an opportunity to encounter a variety of challenges ranging from overseeing multiple development projects, to managing offshore outsourcing, to reacting to and addressing increased competition and evolving customer requirements.  With a couple of those challenges along side the task of developing legacy software and a desire to adopt an Agile development methodology, it may seem like the odds have not been in my favor.

Over time, I have come to an understanding of how to balance the desire to elevate Agile practices, while developing legacy software. Throughout my career, I have at times seen these two objectives at odds with one another – but the good news is, this doesn’t have to be the case.  There are steps development organizations can take to be Agile, despite the roadblocks that developers working on legacy software may have.  Here are three processes I recommend for successful Agile development while developing legacy software:

  1. Create a legacy model – Agile modeling includes the Formalize Contract Models practice.
  2. Move forward with small, evolving changes – work towards a roadmap.
  3. Create an Agile culture – this includes new lingo and creating excitement around change; time boxed releases; customer feedback after key sprints are completed; a scrum-of-scrum team that monitors the releases and impediments such as builds, process and capital purchases, etc.

While the above steps are important, it’s also critical for your organization to keep in mind there are things that can break Agile – and keys to make you more successful.  For example, the definition of “done” needs to be one that teams can actually achieve.  If you are setting yourself up for failure, that’s exactly what will happen.  Don’t forget you need to have a means to validate that Agile is producing results, like story boards and release burn down reports, as well as testable code. Another key is to ensure that development is fast, with frequent code integrations (continuous integration).  Finally, and sometimes the most important aspect of Agile, is that your team members need to fully function as a team – if you have members that are controlling and don’t let others speak, the process will break down very quickly.

We recently conducted a webinar on this topic, which you can watch here:

Larry Ayres – Vice President Engineering and Support – AccuRev

Read the original blog entry...

More Stories By

AccuRev Inc. is a US-based software vendor focused on optimizing and automating the software development process for organizations challenged with today’s highly evolving agile, geographically distributed, and parallel software development environments.