Adstream is the leading Connectivity Suite for the ad industry. It combines collaboration tools, digital asset management, a global distribution network, and analytics to provide smart and collaborative advertising workflows.
Brands, agencies, production, and post-production teams use Adstream to create great content together, and leverage its world-class network of over 79,000 media destinations in 141 countries, to share their message with the world.
Scope of work
We started the technological partnership with Adstream in early 2017 by developing and maintaining its main platform. We are responsible for 3 core services within Adstream – a significant part of Content Delivery, which is a key part of Adstream’s competitive advantage. We are responsible for the development process, planning, implementation, live releases as well as reacting to production problems.
It is a multiyear partnership where VirtusLab works together with Adstream, helping to build the ad delivery software of the future.
As with most large scale global software implementations, there were multiple issues when we started.
Long lead time
The lead time for any change was often counted in months. Testing and signing off releases sometimes might have taken weeks in itself.
As Adstream has nearly 20 years of an impressive history in the advertising market, parts of the suite were very hard to maintain and from a technical perspective were very much a legacy. This was one of the contributing factors to elongated release cycles, repeated regression defects, and general difficulties. Reasoning about complicated changes was arduous and error-prone.
Business, as usual, most not be interrupted
Adstream platform is a vital part of the daily workflow of many ad agencies or production teams. Downtimes or longer periods of time without platform updates (addressing pressing issues or implementing new functions) was not an option. Therefore stopping the ongoing maintenance/development in favor of prolonged redesign was never on the table.
We do not believe in long-running projects, detached from end-users with goals of a complete rewrite of existing, working software. We value a great plan followed by gradual change with a continuous feedback loop and frequent live releases that validate the changes in a short feedback loop.
Minimize friction for existing customers, continuously provide value, avoid the big bang and prolonged release cycles.
VirtusLab’s team did radical changes in the development workflow – we minimized work in progress, focused on quick feedback loops and narrowed down the gap between dev and live changes (e.g. with use of feature flags and doing small releases instead of “big bangs”). We have started to do frequent live releases (few every week instead of every month).
We introduced data-driven project management with tangible measurable goals that could be tracked every quarter and keep key stakeholders in the loop. We are working on splitting the most problematic monolithic service being at the core of the delivery subsystem into separate service with boundaries defined more clearly (which is crucial for cutting both teams and release dependency and is an important part that contributes to a radical improvement in the release cycle).
We transformed and improved the way service development was being done. With solid engineering and grounded management practices we achieved great results.
We significantly reduced lead time (time between feature or defect is prioritized for fixing and when it is released to live) and development velocity. From prioritization to live release, we went down from an average of 12+ weeks to 2 weeks.
At the same time, we visibly improved quality – we reached all-time lows both in the overall number of open defects as well as the rate of new defects opened each quarter (with every quarter being a visible improvement in terms of a number of opened issues). Not a trivial achievement has given the modernizations we were doing.
We massively improved the live release frequency – instead of a 1 release every 2-3 weeks (preceded by weeks of QA sign offs and back and forths) we transitioned into multiple releases every week, with minimum impact for customers.
On top of the above, we worked closely with business stakeholders and created a short feedback loop improving work visibility. We have also significantly reduced (by a factor of 2) ongoing work in progress. This connected with radical improvements in development velocity brought new quality in relation with business stakeholders and customers helping Adstream strengthen its position of leading ad delivery platform in the world.
All this was done while doing ongoing platform maintenance (fixing defects, corner cases, introducing new significant features or extensions). Business as usual work has never been sacrificed.