To help with this, we
can sketch a simple case, using rough numbers that reflect our experience. If
we look at our last major update, we estimate the manual update effort to be
about one workday (8 hours). If we assume that 100 applications are updated, we
end up at an overall effort of 800 hours. With ng update we assume each update
to take one hour, which leads to a saving of 700 hours. Writing the Schematics
for our UI library, on the other hand, took us about 200 hours, including
setting up the Schematics infrastructure. With this simple case, we get a more
than 3-fold return on invest.
At scale and from a
total cost perspective automating updates is saving money and this view doesn’t
even factor in the additional benefits arising from a well synchronized
ecosystem.
An important driver for
GDF — besides cost reduction — was to shorten the time it takes the UI library
team from a request we get, to the point where the respective change is
productive in a real application.
One of the main problems
was that it could take quite a while for teams to adopt a new updated version
of an application if they were on an older major version.
Automating updates
significantly reduces this time, improving our ability to ship changes faster
into real applications. In addition, we can remove technical debt throughout a
whole ecosystem without a big burden for the app teams.
This also shifts
attention from individual application silos to the ecosystem as a whole. While
the cost savings of automated updating are obviously greater in a large scale
environment, this technique allows any library editor to decide how and if
breaking changes are handled — if you want to clean up after you broke
something. This opens a new door for library developers.