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:
- 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.
- Some of what I say is strictly my
own and does not represent the views of NV Access and
contributors.
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 not 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 vail, 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 wen 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
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
How to Communicate Clearly During
Organizational Change (hbr.org)
NV Access | In-Process March 21st
2022
nvda-addons@nvda-addons.groups.io |
We listened, re-introducing controlTypes aliases.
Have a safe and healthy June.
Cheers,
Joseph