“By focusing on accessibility, you get extremely dedicated users.” Interview with John Fox (Netflix)
It is known that accessibility is important, but not everyone pays enough attention to the availability of their application.
It is also known that the appearance of the company NeXT and its subsequent purchase by Apple is an important episode in the career of Steve Jobs, but few have personally written software for NeXT computers. Netflix
iOS developer John Fox is coming to our Mobius conference with a report on accessibility , and in anticipation of this, we decided to ask him questions: we started with his long career, which featured NeXT, and then moved on to the topic of accessibility. The original English text of the interview was published on Medium , and for Habr it was translated into Russian.
- Hello, John. It is interesting to talk with a person who has been writing mobile applications since 2010, and started working in IT even decades ago. Tell us how you started doing IT.
- When I was a student at New York University, the club I was in was persuading the administration to allocate resources for the purchase of a Mac, a laser printer, and QuarkXPress page layout application. All this came out cheaper than the cost of a typographical set of one issue of the academic journal that we published, and funds were already allocated for this set. After graduation, I got a job in a New York-based company that was involved in translations and language training. Among our clients were financial firms and law firms that needed translations in an extremely short time — shorter than what any live translator could do.
In New Jersey, at that time, there was a company that provided time on a mainframe that performed machine translation. Initially, in the USA, IBM was engaged in machine translation, these were defense orders during the Cold War, and then the result was deprived of imagery. The biblical quote “the spirit is willing, but the flesh is weak” (“the spirit is vigorous, the flesh is weak”), the algorithm bluntly translated in the spirit of “vodka is good, but the meat is bad”. Despite this primitive level, the algorithm could be trained. He gave out only the primary version of the text, which the translator then edited. Setting up this system was a thankless job: we sent documents via direct connection from a proprietary word processing machine to our Mac, then sent them to the mainframe many times and edited the result, and finally
I can imagine how everyone rolled their eyes when describing such antediluvian technology. My teenage son chokes with laughter when I tell him what the games looked like when I was his age. But this is normal: what today is the most advanced technology will be gathering dust in the museum tomorrow. Over time, only the ability to collect new solutions remains.
- How did you get to work with mobile applications?
- Soon after my move from New York to San Francisco, the first NeXT computer came out. He was ahead of his time by at least a decade. Here it is necessary to say about the Xerox PARC research, which yielded many very valuable fruits - for example, the first GUIs that became popular thanks to the Mac. NeXT used two other results from these studies: networking and object-oriented programming. CERN now celebrates the 30th anniversary of the World Wide Web - this achievement was made possible because access to programming was open to people without a degree in computer science. If there wasn’t NeXT, I would hardly have written software. At first I learned how to design and prototype applications using Interface Builder, then I started writing web applications with WebObjects (another NeXT tool). By that time,
- Before iOS, you developed for Mac OS, and then it was less common than now. What were your impressions?
- Cocoa (a set of APIs inherited from NeXTSTEP) then gave developers much more than the Windows API. Thanks to Cocoa, the programmer could even create beautiful and complex software alone. By the time OS X arrived, there were a significant number of indie developers, many of whom had previously developed for NeXT — for example, Will Shipley, creator of the Delicious Library. They preferred to be the first in the village, rather than the second in the city, and as a result, their village turned into a metropolis. I followed the same path - my MemoryMiner application received excellent reviews, sold well, and allowed me to make several other products based on it, and also gave me work as a consultant.
- You have been working at Netflix since 2015. What are your responsibilities at this company?
- On LinkedIn, your position is designated as a “product-focused engineer”, which is a rather unusual wording. What does it mean, and what is the difference from a software engineer?
- Of course, for a quality application it is important that its code is concise, that it is easy to maintain and that it compiles without errors. But in addition to these criteria, there are many other, no less significant: usability, beautiful appearance, application clarity at first launch (especially for custom applications). If you want to create a full-fledged product, then these aspects are just as important as the proper application design (well-planned classes, unit testing, etc.)
At the time, I spent a lot of nerves trying to explain to the stubborn "bearded" colleague (who had been working under UNIX on the command line with Emacs all his life) why elegant graphical interfaces are important. Because of these disputes, I started developing software, and it was a pleasant discovery for me that learning a programming language is not too different from learning a regular language. But familiarity with syntax and grammar is always just the beginning, like familiarity with chords in music.
- You have written on Twitter that you are a “UI Engineer”. Does this mean that you work exclusively with the UI of mobile applications - with animation, visualization, etc.?
- Yes, now I deal almost exclusively with UI: animation, video playback, localization, accessibility. In the past, I worked quite a bit with server code, but the ultimate goal was always to create a quality UI.
- Tell us what everyday tasks a mobile developer in Netflix has to solve.
- We carry out A / B testing, as a result of which we create new features, support and improve existing features, share knowledge, and improve our work (quality control, localization, etc.). Since we control our endpoints, our application can access the right data exactly when necessary.
- What is your team structure - for example, are iOS developers in contact with Android developers?
- Our teams - both iOS, and Android, and mobile development, and quality control - work together. We all sit together and we have a very friendly atmosphere.
- How exactly do testers interact with mobile developers?
- The responsibility for quality lies with everyone, so the responsibility of the developer is to help create test plans in conjunction with testers. We automate everything that is possible (for example, creating screenshots) so that people can only do what they do best.
- Netflix has a technology blog on Medium. Is there something similar specifically for mobile developers?
- We have a fairly active Twitter Netflix UI Engineersdedicated to the development of the UI as a whole. Sometimes we do performances, recordings of which are available on YouTube. There is a selection of four dedicated specifically to the development of mobile applications.
- Let's discuss the topic of your talk at Mobius. When it comes to application accessibility, often people think about the blind and visually impaired, but accessibility can help not only them. What other cases do mobile developers need to keep in mind?
- Last fall, we and two other developers at the hackathon conducted an experiment in which the iOS application was controlled without hands using the AR Kit. This experiment attracted media attention . His goal was to help people with diseases of the musculoskeletal system.
- What happens if you don’t think about the availability of your iOS application - how much does this make life difficult for users?
“We have to pay tribute to Apple here: they provide basic features for accessibility out of the box.” If you use components from standard UIKit, then in general your application will work. But if you use your own components, then the responsibility lies with you. If you use web technologies, then most likely your application will be inaccessible. By default, UIView does not have an accessibilityLabel label, so it will not be recognized by VoiceOver, the most commonly used accessibility technology in iOS.
Apple software accessibility issues have a very vibrant community, it has a website - AppleVis. There are ongoing heated discussions about which applications are well accessible and which are not.
- Do accessibility concerns conflict with other tasks? For example, a designer wants to use a beautiful font, but it reads worse than a more boring one. How to resolve these conflicts?
- For people with visual impairment and color blindness, the main difficulties arise not because of the font itself, but because of its size and contrast. It helps if your application uses Dynamic Type .
In general, beautiful design and user friendliness are not at all mutually exclusive characteristics. Even if your application does not support Dynamic Type, the settings for magnification and color inversion can greatly facilitate the work with the application.
- When developing a new application, accessibility issues can easily be postponed until later: they say it’s too early to think about it when the basic functionality is not yet implemented. When is the time to think about it? Do accessibility considerations affect decisions about the entire application, so you need to think about them right away?
- Generally speaking, it is best to take into account accessibility issues from the start. But at the same time, providing a “minimum program” for accessibility requires a bit of work, so if you have an early experimental stage and are not up to it, you will not get any additional costs from a later implementation. However, judging from my experience, addressing accessibility issues helps to take a fresh look at other user-friendliness issues, including unexpected ones.
- No matter how important empathy, many decisions are made on the basis of economic indicators. It may be much easier to convince the manager to invest resources in ensuring accessibility, if there is data, how many new users this will bring. Are there any statistics on this?
- It is difficult to find such statistics. I prefer to look at this question differently. Any application, even the newest one, always has competitors in the market that perform the same functions. To create an image for your application, you need to “hook” users with something, then they will start telling everyone else about it. If you make your product convenient for users who depend on software with accessibility, they, in turn, will begin to praise your application with might and main, it will be heard by people.
- Some developers will say: “Well, Netflix has a breakthrough in resources, and here we are in a small team full of tasks, so we don’t have to work on accessibility.” Do you want to answer something?
- We really have more resources than a small company, but we look at this work also as useful in other respects. For example, a significant part of the problems with test automation is solved by providing accessibilityIndentifiers for UI elements. The QA engineer from our team who did this paid enough attention to this to add accessibilityLabels, and then everything grew out of it. Here you can draw an analogy with localization: there is a temptation to hardcode strings in UI elements, but this will significantly limit the market in which you can sell your application. By focusing on accessibility issues, you create extremely dedicated users.
- You have already made presentations at many conferences. And how was your very first report?
- It was in 1995, I presented my routing and approval system for NeXT with one user of this system at the Seybold Publishing Conference in Boston. I was very worried about the performance, but the performance gods were on my side, and in the end everything went well. I also had catastrophic failures during the report, so when I turn to a live demo, I always keep a pre-prepared video just in case, so that there is a backup version.
- Have you been to St. Petersburg before and heard about the white nights? Mobius will be held in May, when they already begin.
- In Russia, I was only once, and in St. Petersburg - not once, and it will be very interesting for me to look at your city. And as for the white nights, I can tell a story that happened to me even before college, when I was with a friend in Sweden in the early summer. There we decided to use the endless daylight for the party. That's just the fun ended with the early appearance of the house of a parent who was very not happy to find in his sauna a company of drunken teens. Since then, I have become somewhat more responsible in my approach to life.
Mobius will be held in St. Petersburg on May 22-23 . John will be speaking there with the theme “Accessibility for iOS: Doing well by doing good”, and besides that, there will be dozens of other reports on mobile development. You can see the full program on the conference website , purchase tickets in the same place.