I don’t know if there’s ever a single word that can sum up what’s happening – or going to happen – in a field as diverse as software quality. If that one word exists for software quality in 2014, I’m going to guess the best word will be continuous. Get ready to hear about continuous development, continuous integration, continuous delivery, continuous deployment and most importantly continuous testing. Unless I miss my mark, these phrases are going to pop up again and again in 2014.
In fact, continuous application development process stories have already made some waves on SearchSoftwareQuality.com. Most recently, Dr. Seng Lin Shee – a senior software engineer at Ancestry.com with experience in API testing and service modernization – shared his experience with implementing continuous delivery. The good doctor shared six big lessons about keeping teams on track, isolating bugs, the need for automation, using DevOps principles, increasing throughput, and more. Ancestry.com found that continuous development had significant advantages. Still, Seng points out the high investment costs, both in infrastructure and procedural changes, mean continuous development isn’t for every team.
It takes a disciplined development team to make continuous development a reality. Our own Jan Stafford talked with Jeff Porter, senior quality assurance for FamilySearch. Porter found the company’s initial attempts at Agile lacked the necessary discipline. Developers, it seemed to Porter, were using Agile as an excuse to avoid the analytical and planning work that always comes with any complex application development. Porter found three key ingredients to building a more disciplined Agile team – a constant feedback loop, transparent testing, and most importantly a strict adherence to a complete definition of done for all features.
Earlier this fall, Yvette Francino – former SearchSoftwareQuality editor and longtime friend of the site – wrote about the challenges and solutions involved in continuous integration testing. Francino combined advice from Agile development experts Janet Gregory, Martin Fowler and Howard Deiner. According to Francino, integration is a major challenge in the enterprise largely because it’s unclear whose responsibility it is to deal with integration between systems when those systems are owned by different teams. A continuous integration testing suite, she put forward, is a great step toward solving the integration challenge because changes are small and subject to a large array of automated regression testing. Still, it’s no easy task to ensure that automated regression suites evolve alongside enterprise applications and that errors don’t pop up between unit tests.
The big software conferences last fall gave us a few more echoes of the “continuous” chorus. Caroline DeLacvivier looked into the state of continuous testing with Dan Barstow – VP of product management as SOASTA. Barstow’s presentation at STPCon explored the link between continuous testing and mobile application success. He said that continuous testing is gaining ground, but not enough. Of course the exhibitors at these events were also getting in on the fun. At Agile 2013, I interviewed reps from Red Gate and OpsCode, both of whom were quick to link their companies with continuous integration. Michael Ducy was excited about what OpsCode calls infrastructure as code and how it supports continuous infrastructure evolution. Red Gate, meanwhile seeks to help improve the version control process in order to support the high rate of change in continuously delivered applications.
As for me, I think my goal for 2014 is going to be “continuous content production.” Happy New Year!