[Proposal] End-user impacts and change log

Andrew Jeffery andrew at aj.id.au
Thu Feb 28 10:10:41 AEDT 2019



On Wed, 27 Feb 2019, at 01:52, Joseph Reynolds wrote:
> This is a proposal to improve OpenBMC communication and get better 
> release notes.
> 
> ** Preamble **
> 
> Teams that use OpenBMC in other projects will not know OpenBMC as well 
> as the development community, and they will not know what is in each 
> release.  The main way for them to find out is by reading the release 
> notes.  They will make decisions based on its contents.  That makes the 
> release notes an important communication between the development 
> community and its end-users.
> 
> We need to get better at communicating new and changed OpenBMC 
> functions.  Doing so gives many benefits, including better release notes 
> [1].
> 
> ** The proposal **
> 
> 1. Adopt a new practice to provide end-user impact statements when and 
> where it make sense to do so.
> 2. Begin a project level change log to summarize user impacts.
> 
> ** Details **
> 
> How do these changes help connect the folks who contribute to OpenBMC 
> with the folks who use it?  The main points are:
> 1. Contributors write an "end-user impact" statement to notify users 
> that something they might care about has changed.
> 2. Community members use end-user impact statements to create a change 
> log which summarizes changes they consider significant.
> 3. Release planning summarizes the change log as an input to the release 
> notes.
> 
> Items in detail:
> 
> 1. Create end-user impact statements.
> 
> An "end-user impact" statement summarizes each change from the point of 
> view of someone familiar with using the external interfaces.  It tells 
> them what they need to know about what changed from their point of view, 
> so they know what to test, how to adapt, etc.
> 
> When there is an impact, it should have details like:
> - Is there an end-user impact (y/n)?
> - Is this a new feature or function (where are the docs)?
> - Is this a bug fix?
> - What does the end-user need to know (one liner)?
> These statements don't have to be perfect.  Any inkling you can provide 
> that there is a user impact is helpful to the community.  The impact 
> might change during the release as the design evolves.  Different 
> contributors will see different impacts.  That's all normal and okay.
> 
> Are the following end-user impacts?
> - Change to phosphor-webui that affects the browser display?  Answer 
> "no" if it doesn't affect usage, or "Yes" if the user will likely notice 
> or care.
> - Bug fix in fan control? Answer depends.  Answer "yes" if the bug might 
> start a fire.
> - Refactor code?  No
> - New Redfish API?  Yes; new features are positive user impacts.
> - Adding new documentation?  No; although helpful, docs don't affect the 
> end-user's use of the external interfaces
> - BMCWeb retires old and accepts new TLS encryption algorithms?  Yes, it 
> affects how you can connect to the BMC
> - Changes to phosphor-rest or to D-Bus APIs?  No, despite their 
> importance, these interfaces are technically internal to the BMC.  We 
> might want to document user-impacts to these as well.
> - Security fix?  Yes, probably, given today's climate
> Feel free to come up with your own criteria, based on your estimation of 
> an end-user.
> 
> Writing an "end-user impact" statement bridges two worlds.  Folks who 
> work on the code may prefer to leave documentation for others or may not 
> fully understand the impact of their change on BMC operations.  And 
> nobody else may understand the change.  So who should write the end-user 
> impact statement?  Anyone who understands the change and how it impacts 
> end-users.  That could be developers, testers, or project managers. 
> Multiple people can contribute over time.  And it should be okay to 
> document an end-user impact in someone else's change.
> 
> It is important that all of the end-user impact statements be 
> "findable".  Adding them as comments on selected GitHub issues is an 
> obvious solution, and I suggest using the issue associated with the code 
> change that caused the user impact. (We could use GitHub labels [8][9] 
> to mark issues which have user impact.)
> 
> 2. Create a change log from end-user impact statements.
> 
> Groups who care about end-user impacts include testers, security folks, 
> release managers, and others.  They can scan the issues, read the impact 
> statements, and use them to curate a change log [2] which lists all 
> changes that might be interesting to users.  Each change log entry 
> should have a brief description of the impact (from the user's point of 
> view) with links back to the issue.  The change log could be an openbmc 
> wiki page.  (And yes, some people's job includes curating change logs.)
> 
> We should have a project-wide change log which captures all impacts.  
> (It is easy to ignore entries you don't care about.)  Anyone who cares 
> about a user impact can add items to the change log.
> 
> How is the change log useful?  Testers will use the change log to help 
> ensure test coverage and add facts about where the test cases are stored 
> and whether the tests passed.  Release managers will use it to gauge 
> progress toward goals.  Security folks will cover security changes.  
> Technical writers, etc.  Each will contribute significant facts about 
> their part of the process, and the log is a place to organize links to 
> demos, etc.
> 
> 3. Use the change log to make release notes.
> 
> The Release Planning work group [3] can refer to the change log as an 
> input to the Release Notes [1][4].  For example, multiple changes can be 
> merged, minor changes can be omitted, important changes can be 
> highlighted, etc.  Having good release notes is a hallmark of a mature 
> development process.
> 
> Let's be clear about this: Most users will ignore the release notes or 
> use it only to answer specific questions about bugs or features.  Only a 
> few will use it to learn more about new functions, changed functions 
> they have to adapt to, how to review test efforts, what security fixes 
> are included, etc.  They will make decisions based on its content.  For 
> example, some groups may use it as part of a software security assurance 
> process [5].
> 
> ** Conclusion **
> 
> That's the proposal ... create end-user impact statements ... summarize 
> them in a change log ... and massage that into release notes.  The real 
> trick is to actually write end-user impact statements as the work is 
> being done.  We have the test team [6] and the security work group [7] 
> to help with that, along with pressure from groups who use OpenBMC in 
> their projects.

So, I think it's a reasonable proposal, however, I think there needs to be
more concrete description of how I as a contributor go about this. There's
a sort-of throw-away suggestion above that the user impact descriptions
should go in "the github issue associated with the change" - I guess I want
to see some agreement that this is how we're going to go about it. You
probably also want to start hassling developers to actually write the impact
statement; while I don't expect anyone will be opposed to the idea, getting
them to take it up is a separate problem (there may also be a problem of
having a github issue associated with the change to start with).

Andrew

> 
> - Joseph Reynolds
> 
> [1]: https://en.m.wikipedia.org/wiki/Release_notes
> [2]: https://en.m.wikipedia.org/wiki/Changelog
> [3]: https://github.com/openbmc/openbmc/wiki/Release-Planning
> [4]: 
> https://github.com/openbmc/docs/blob/master/release/release-notes.md
> [5]: https://en.wikipedia.org/wiki/Software_security_assurance
> [6]: https://github.com/openbmc/openbmc/wiki/Test-work-group
> [7]: https://github.com/openbmc/openbmc/wiki/Security-working-group
> [8]: https://help.github.com/en/articles/about-labels
> [9]: https://github.com/openbmc/openbmc/labels
> 
>


More information about the openbmc mailing list