On Wed, Feb 13, 2013 at 10:32 PM, tj <t...@apache.org> wrote:
> Prior to working with AOO, I thought that there was a widely-known and
> generally accepted methodology for releasing incompatible changes. However,
> the problem has surfaced here three times: once last spring (encryption
> default), and twice currently (0⁰, and extensions with toolbars). I want to
> try to separate the "how we release it" from the "should we do it" and the
> technical details.
>
> The two key points of the method I'm used to are (1) long lead time, and (2)
> parallel operation. Introducing a new way and deprecating an old one are not
> really disruptive. The disruption comes when support for the old way is
> dropped, and something doesn't work any more. Hence, new ways and
> deprecations can be issued at any minor release, and the sooner the better.
> However, for an organization with so large a following as ours, we need to
> allow a lead time of an entire major release (though circumstances may vary)
> before dropping support.
>
> As an example, for the extensions change, we should say something like, "A
> new method of handling toolbars [link] is provided in AOO 4.0. The old
> method is deprecated, and support may be dropped as soon as AOO 5.0.
> Extension developers should provide two versions, using MAX_VER and MIN_VER
> ..." [Please excuse my ignorance, here.]
>
> Ariel is quite correct to point out that this parallelism doesn't come for
> free: it can involve a messy piece of code to be maintained. However, two
> points: (a) maintenance in the area should be near zero for the life of the
> lead time (unless the area is a target for new features), and (b) shouldn't
> we (developers) be doing the hard work, so our downstream folks have it
> easier?
>
> Providing parallelism for the Calc 0⁰ problem should be easy enough, while
> deferring our proposed change to 5.0. (I favor the change, but not so
> suddenly!)
>

But note the differing expectations between developers and end-users.
 Developers know that code does not last forever.  They know that any
non-trivial piece of code needs to to be maintained and adapted due to
changes in dependencies.  This could be OS updates, 3rd party library
updates or changes in OpenOffice API's.  For extension authors, the
OpenOffice API's are a large part of this dependency chain and they
rely on us to practice good change management techniques to minimize
the disruption when such changes occur.  So I think everything you
wrote above applies to the extension authors:  they expect that
changes will occur from time to time, and they rely on us to
communicate these changes clearly and with sufficient advance notice
that they can adapt their code in time.

But end-users, the expectations are different.  End users expect that
with a new release the UI might change, that features might be
enhanced.  They expect that it will require some small amount of time
to adjust to a new upgrade, especially a major one.  But when it comes
to THEIR documents (and I emphasize "their" to show that they consider
this their property, not ours) they have a very low tolerance to
having changes introduced in an upgrade.  If the formatting changes
during an upgrade, it is a FAIL.  If pages renumber because of an
upgrade, then it is a FAIL.  If objects on a slide move after an
upgrade, then it is a FAIL.  And if a spreadsheet returns a result
even a penny different, or introduces an error where once a
calculation succeeded, then it is also a big FAIL.

Where spreadsheets have evolved, they have done so very carefully, in
a way that does not break backwards compatibility.  For example, Excel
2013 has a legacy CEILING() function, but also a new CEILING.ISO() and
a CEILING.MATH() function.  They knew that it would be trouble if they
changed the behavior of the existing function, so they created new
versions to express the new behavior.

In any case, I don't support the idea that end-users should be taught
to expect breaking changes in their documents from release to release
and that they will need to modify their documents to account for the
changes we make.  We need the engineering discipline and skill to
avoid such breaking changes.   IMHO.

Regards,

-Rob


> HTH,
> /tj/
>

Reply via email to