Re: Please read before suggesting new add-ons or NVDA screen reader features: a contributor's assessment of 2022.1 and add-ons situation, open-source, anxiety, and burnout


Gene
 

I'm trying e-mail on my feature phone and I accidentally sent a blank message.

Gene

On 5/28/2022 8:25 AM, Gene via groups.io wrote:
IBM TTS has been updated.

On May 28, 2022, at 3:20 AM, Joshua Hendrickson <louvins@...> wrote:

I don't know much about how programs work and what it takes to
properly update them. However, I have been using NVDA for years and
it is a great program. For some reason, I can't get my IBM TTS addon
to work, but thanks to some help, I now have other voices to choose
from. I'll be saving up for a new computer and when I get one I'll
probably spend money on the code factory stuff. It was my fault for
not paying attention to the list of addons that wouldn't work when I
updated my NVDA. I do have the addon updater installed which is very
cool. I could understand if Joseph couldn't work on certain addons
because of school obligations. I feel others who have the knoledge of
how to work with the various addons, should step up and help out and
get them updated. NVDA is such a great program and just as good as
jaws in my opinion.

On 5/28/22, William <xsuper.sillyx@...> wrote:
Once again, thank you Joseph as well as other developers.


I think if NVDA allow user to run "non-compatible" addon as a temporary
measure would greatly improve the situation.


If the new breaking release of nvda does not affect the methods of
functions that the addon is relying on, addon author can just edit the
manifest file and release to the community.


However, the present situation is, even if it is just editing the
manifest file, we user has to wait for the author to release the new
version, unless the user is "well-educated" that he or she can edit the
manifest file on his or her own.









Joseph Lee 於 28/5/2022 00:05 寫道:

[Edited Message Follows]
[Reason: Spelling error fix, clarified NV Access staff membership (I,
Joseph Lee, am not an NV Access staff).]

Edit: I know that my message is circulating around. Let me make one
thing clear: I do NOT work for NV Access.

Dear NVDA community,

The following is something I usually do not post, nor it’s a style I
rarely show in a public forum like this. But after consulting forum
owners about the below content, I believe being honest and candid up
front can serve many purposes: healing for me and the community,
educational moment for everyone, and something to contemplate for a
long time. While I present myself as a professional developer, one of
the forum admins advised against it for the following content because
you, as my friends and NVDA family members, have the right to know the
thoughts going through my head these days. I also put a disclaimer that:

1. First and foremost, I am a graduate student studying for his
   master’s degree in communication studies (rhetoric, persuasion and
   influence, mass media, organizations, teaching and public
   speaking) and just finished first year of study. As such, I
   approach the following from both academic and insider point of view.
2. Some of what I say is strictly my own and does not represent the
   views of NV Access and contributors (I do not work for NV Access).

Let me start by giving a really honest assessment of the current
situation with NVDA 2022.1 and add-on compatibility picture: messy,
abundant miscommunication, ineffective coordination. If I’m to give a
grade to this work, it’s a solid “D”. It didn’t earn a “Fail” because
at least some of the most significant add-ons were updated prior to
the release of NVDA 2022.1 this week. It didn’t earn a “C” (passing)
because the overall work showed missed opportunities to improve
communication and coordination.

First, I am a communication studies scholar in training. While I am
not up to the level of doctoral students and professors, what I can
say is that the overall work makes me shake my head. NV Access framed
add-on breaking release as part of a “norm in software development”
due to dependency updates and security (NV Access, 2022). But when we
look at changes for developers section in NVDA 2022.1, the most
notable change has to do with adoption of Python enumerations in
control types facility. While Python does provide enumeration support
(Python Software Foundation, 2022), it can break add-ons not written
to take advantage of the new syntax. After a public outcry from add-on
developers, NV Access decided to introduce a compatibility layer,
effectively backtracking on control types refactor for now (Turner,
2022). This is one of the biggest factors in NVDA 2022.1 being
delayed, with the other factor being security releases (NVDA 2021.3.x0.

Of these, the first factor caused most confusion for community
members. While the community operates within the framework of “equal
access to technology”, it is really centered on NV Access. NVDA’s own
source code and About dialog states that “NVDA is developed by NV
Access” (NVDA 2022.1 source code, 2022), a nonprofit promoting equal
access to technology. While NV Access does promote third-party
contributions and acknowledges the power of third-party add-ons
written by developers, the overall structure still centers around NV
Access. As such, as far as organizational structure is concerned, NV
Access is seen as the leader and coordinator attempting to attract
stakeholders.

Since NV Access is seen as a leader and coordinator, signals from the
leader play a role in persuading the public and determining the
reputation of a larger organization. “Leaders must communicate right”,
writes MIT senior lecturer Elsbeth Johnson (Johnson, 2017). A missed
or improper signal from organizational leaders can have destructive
impact on members.

So where did the signals about add-on breaking release came from?
Ultimately it stems from a “ever perpetuating myth of progress.” When
we think of myths, we think of foundation stories and grand narratives
that defines a society or a culture. A myth can also function to
persuade the public about the status quo and a better future – the
messaging from public health officials, for instance, is vaccination
is our “way back to the days before the pandemic”. In a similar way,
organizational and community myths can describe the status quo and an
“idealized future”, made more powerful if community members share
history, visions of the past, present, and future, and community
boundaries (Rawlins, 2017). The myth of progress and change
demonstrates this as communities must understand the need for change,
or for that matter, a need for constantly changing things to keep up
with others.

In the case of NV Access and the latest add-on breaking release, NV
Access operated under the notion that it can make progress on equal
access to technology by keeping dependencies and code up to date.
While this leadership signal did work in 2020 when Python 2 was
declared end of life (Python Software Foundation, 2020), when a major
change was proposed and then backtracked in 2022, the myth of progress
was shattered. This led to a different signal, way late in the
development of NVDA 2022.1: we are listening. By then the community
members were under the impression that add-ons must be edited to take
advantage of control types refactor, and with that “change” gone,
members found themselves asking, “why and what now?” NV Access seems
to have learned from it, changing the strategy used to denote
deprecations in NVDA 2022.2 alpha changelog.

But NV Access alone isn’t immune from criticism: members of the
community played a “vital” role in causing mass confusion. Members of
the community simply believed that NV Access and NVDA contributors
must make changes, a form of “myth perpetuation.” In other words, NV
Access, code contributors, add-on authors, users, and other
stakeholders were unified under the assumption that progress is
“strictly a good thing even if it can bring negative consequences if
managed right.” The keyword is “managed right” – while scholars can
critique NV Access’s approach for add-on breaking release this year,
unless specified in the documentation, organizations are not strictly
run by a single person or an entity. If NVDA community promotes “equal
access to technology” and centers their messaging on users, users, too
bare responsibility for this messy situation. While people can also
ask add-on authors to take responsibility (people are right in this
statement), users who constantly ask screen reader developers, add-on
authors, and community members  to make progress (in this case,
progress on add-on compatibility) even if it leads to additional
emotional labor and burnout are not immune from criticism. In this
sense, I (the analyst and a member of the NVDA community) am not
immune from criticism either due to my messaging about compatibility
releases last year and downplaying the severity of the situation up
until NVDA 2022.1 was finally released.

What could have made the compatibility messaging more effective and
lasting was Python upgrades. In early 2021, NV Access, I, and several
contributors actually worked on Python 3.8 upgrade, which ended in
failure after discovering stack overflow problems. Since then, NV
Access has decided to stay on Python 3.7 until the cause of the stack
overflow (ctypes FFI (foreign function interface) issue, to be exact)
is resolved. While the 2022.1 compatibility breaking release did
emphasize control types refactor (using Python enumeration), the fact
that we are staying on Python 3.7, coupled with the mixed messaging
around control types refactor in 2021 and 2022 has diminished the
“progress” aspect of these releases. Therefore, my biggest
recommendation is to either hold off on compatibility breaking
releases until 2024, or if Python upgrade or a major dependency
upgrade is a must due to security and other factors, communicate
things better.

Second, as some of you may have noticed, I kept asking add-ons
community to do something about add-on compatibility and the messaging
involved. This became more noticeable this week with the release of
NVDA 2022.1, even going so far as offering to post add-on
compatibility data on a repository on behalf of add-on authors. After
thinking about it, I realized that some of this messaging was caused
by anxiety and me sometimes being an “obsessive perfectionist,”
leading to more stress and burnout. In short, I was operating under
the assumption that I must find updates to add-ons that are marked by
authors as compatible as quickly as possible, knowing that users
wanted assurance that their favorite add-ons are compatible with
latest changes. Also, because many of you receive add-on updates
through Add-on Updater, I realized that I must act fast to get
compatible add-on updates to hands of users as soon as possible.
Coupled with the upcoming vacation, this led me to me “flying around”
the community to get more add-on updates to you. In the midst of all
this, yesterday I asked myself, “why can’t I let the add-on
compatibility picture take shape by itself,” to which the answer was,
“I have become an obsessed perfectionist,” which partly explains why
I’ve been feeling anxious and burnout recently (graduate school did
play some role in anxiety and burnout, but in the immediate context,
obsession with getting more compatible add-ons out to you consumed me).

Third, I’m aware that folks want updated Clock and Calendar add-on,
and am aware that you also want Extended Winamp update as well as I am
the last person to work on it (last year). After thinking about it, I
decided to stick with my original decision for the Clock add-on:
discontinuation, hoping that someone will take care of it. As for
Extended Winamp, after assessing the situation, I decided that it
wasn’t worth it to release what really amounts to manifest edits. My
(professional) answer is that I simply do not have time to continue
maintaining these add-ons – as I communicated to everyone last year,
these add-ons are now in the hands of the community.

My unfiltered answer: go ahead and take care of these add-ons
yourselves. This is my way of saying, “I’m done with these add-ons,”
and I SERIOUSLY DO NOT HAVE TIME to maintain them. I have asked the
community for months to find new maintainers for these add-ons to no
avail, and the fact that NVDA 2022.1 was marketed as a compatibility
breaking release caused more anxiety for me and community members. I
have offered (or rather, threatened) to release compatibility updates
if no-one stepped up by the time NVDA 2022.1 was finalized (I say
“threatened” to highlight what happens when a person becomes so
desperate to a point where he/she/they lose their sense of self and
reality). I will not go into additional stress caused by graduate
school and performing duties for my school as it will take a long post
to describe it (anyone who went through master’s or doctoral degrees
can understand what I’m talking about).

I realize that this is a really shocking response from someone
passionate about add-ons, but I believe that shocks sometimes work to
change a community. But I want you, my beloved NVDA community members,
to know why I’m saying this before I disconnect from NVDA community
for a while: to educate yourselves on the dark side of open-source
development and the resulting physical and psychological effects.
Among the articles on this subject, the following should offer a
glimpse into what I’m actually feeling right now:

Why Open-Source Developers Are Burning Out | by Clive Thompson |
Better Programming
<https://betterprogramming.pub/why-open-source-developers-are-burning-out-1a860854884c>

While I don’t agree fully with the economics section, the article
describes in part what I’m actually feeling. The anxiety from the just
released NVDA 2022.1 changes for add-ons community, coupled with
graduate school education and upcoming life events, put a strain on
what I can do physically and mentally for the NVDA community.

Before I disconnect, besides needing to recharge, here is the real
reason for my vacation: I am at a point in graduate education where I
must carefully choose what to study and where to go to refine my
skills for the next five years or so; I am, of course, talking about
Ph.D. applications (for fall 2023). Anyone who looked into and
experienced doctoral programs should recognize what I’m saying – you
must meet good dissertation supervisor in a supportive community that
values your humanness, teaching and research skills, and networking
opportunities in order to succeed as a scholar. When I began my
current M.A. (master of arts) program, I knew that researching Ph.D.
programs is not a joking matter, and there will come a day when NVDA
development (both the screen reader and add-ons) can actually become a
roadblock. In other words, I can fully disclose that I’ve been feeling
a smaller version of stress and burnout since last summer; thankfully
I was able to put my “obsessive perfectionist” attitude to good use by
trying to persuade Microsoft to consider accessibility feedback with
Windows 11. Not this time – I must recharge in order to prepare for
long-term life goals (I hope what you read above (going into scholar
mode) tells you what I hope to become five to ten years down the road;
and this time, I will ask for pay as a consultant).

As I close my “NVDA development lab” for a while, I humbly state what
I thought was unthinkable to say until now: I need help, I need
freedom from the perpetual myth of progress and change, I need help in
overcoming the obsessive perfectionist attitude I found myself in, and
I need a way to (finally) leave NVDA community in more positive terms.
We (the NVDA community) must recognize that not all progress is
beneficial, we must work on a solution that does not bring down the
reputation of NVDA, and we must get away from the attitude that
developers are superheroes. I ask and plead with each and every one of
you to consider the effects of stress and burnout, learn to critically
analyze messages from organizations, and realize that we are
collectively responsible for the messy affair we found ourselves in
and work together on ways to move forward. If we do not critically
analyze the situation, we will witness increasing skill and resource
drain.

One more recommendation (or rather, something to do or not do):
throughout June 2022, please do not suggest new add-ons or new NVDA
screen reader features. Please use that month as a period of
reflection throughout the NVDA community. Please do not (ever) contact
me throughout June if your question or comment has anything to do with
NVDA and/or add-ons (not just Add-on Updater and Windows App
Essentials, but others are also off-limits that month) – I want to
talk about something completely different that month. Feel free to
contact me if you have Ph.D. program recommendations (specifically,
communication studies), want to talk about public speaking, or need
advice on graduate school and other academic endeavors (I’m offering
to coach people (especially college students) public speaking and
impromptu speaking skills).

Thank you.

References:

Localized Myth: Creating and Maintaining Persuasive Power |
enculturation <https://www.enculturation.net/localized_myth>

How to Communicate Clearly During Organizational Change (hbr.org)
<https://hbr.org/2017/06/how-to-communicate-clearly-during-organizational-change>

NV Access | In-Process March 21st 2022
<https://www.nvaccess.org/post/in-process-march-21st-2022/>

nvda-addons@nvda-addons.groups.io | We listened, re-introducing
controlTypes aliases.
<https://nvda-addons.groups.io/g/nvda-addons/topic/90329930#18537>

Have a safe and healthy June.

Cheers,

Joseph










-- 
Joshua Hendrickson

Joshua Hendrickson




Join nvda@nvda.groups.io to automatically receive all group messages.