Edit: I know that my message is circulating around. Let me make one thing clear: I do NOT work for NV Access.
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:
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:
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).
Have a safe and healthy June.