Dev Talks: Why We Transformed Native Access
My name is Hayo Friese. I've been with the company for 1.5 years now, fully involved on the Native Access 2 team as a developer for one year, and now as a product owner for 6 months. I’m excited to kick-off this new version of our Dev Talks series and have the opportunity to share more about topics a lot of you have been asking about. Today, I’d like to give a little overview into the decisions that led to a “version 2” of Native Access, and give insight into some trade offs we made because of it, alongside a glimpse into the future.
History of Native Access
Before there was a Native Access, there were a few tools and services Native Instruments provided users with, among them the Registration tool (that primarily handled product activations) and Service Center (which handled activation, download/updates, driver, firmware, product reparations, and offline mode).
But there were several issues here, like an overcomplicated activation system, especially with bundle elements. Native Access (NA1) helped overhaul this system by logging into your Native account that contained a bundle, and giving you access to every individual bundle member so that you could download the latest available version of each one of them.
The tech stack that we used, however, was slow to build on, and made a LOT of innovations/additions/pivots very difficult to realize because of many internal dependencies. Meaning it took a LONG time to produce any feature and release it. So as we continued to better understand our ecosystem and experiment with things during Hackdays, we happened upon an idea that would eventually shift us to a new approach for Native Access.
The gist of it is that the functionality was decoupled from the interface, and two separate entities operate the system: one is the new dark-themed Native Access (NA2) interface you see today, the other being the NTK Daemon, responsible for activating, downloading, installing, and managing your products. You can think of it as NA2 being the button and the Daemon the wiring and the cogwheels. This allows us to work in parallel without blocking each other, allowing for swift UI iterations, and installation improvements without blocking all other work from going through.
The release problem
So, why did this take two years? NA1 had a lot of features and dependencies, as it was around for quite some time, and we built two practically brand new entities. We were slated for a 2021 release, but as most things go, other initiatives ended up needing our support in the meantime. The technology behind the two entities was also vastly different, which meant that functionality we matched up with NA1 sometimes behaved differently, and we spent quite a lot of time addressing these issues.
In June 2022 we finally reached feature parity on our new product, and we were fully aware of some glaring issues that remained, such as:
- Long startup times
- A hit-or-miss startup experience for a lot of users
- Persistent bugs
- The activation system that we reached feature parity with NA1 on needs a refactor
- Connection with API is handled differently
- Just one language, one color display mode supported
Some of these issues still exist today. I understand that the first release of NA2 might have felt frustrating when it didn't come with anything new or special. Take Uninstall, a feature that we wanted to implement in the first version of Native Access. Once we committed to work towards NA2, we could not create new features in the old version only to have to recreate them in the next version again.
Where are we now? Six months after the official launch, average startup time has been reduced by minutes, and we're about to release another update to further speed it up. We have a diverse portfolio of products to support, and we’re hoping to improve the installation experience on all of them.
Native Access 2 will be prioritizing two major initiatives in the next year: improving on the quality of our installation processes, and getting our Soundwide portfolio products into our product manager, starting with iZotope products over the course of this year. Alongside this, we will be releasing new features to enhance the management and overall user experience, which includes Automatic Uninstallation and Locate All, and of course giving love to some areas that could still see some improvement.
All that being said, our first order of business is getting more users on NA2 and unifying our installation managers. We’ll be migrating our user base from NA1 to NA2 for those on macOS 10.14+ and Windows 10+, so that we can get all users on the same platform. Barring some remaining stabilization work, we feel confident in the current state of NA2 that users will have a shared experience with NA1 users. We’ll be executing this transition early in the next year.
Given that recent degradations caused extensive startup times or empty product catalogs in NA2, especially during high traffic scenarios, we’ll be spending a bit more time making sure our infrastructure is solid on the NA2 front for a part of the next quarter. Service degradations or outages in our online services are not something we can always 100% avoid, and therefore we will work to respond better to these situations.
We will also be committed to stabilizing the last major pain point in our tech stack: installing your products reliably and with the user experience in mind. Firstly we’re shifting the entire mechanism to the Daemon side, so that your download queue can be better managed, such as being stored in between active sessions, and without you needing to have NA2 open to follow it. I will share more information in the next quarter about other ways we intend to tackle these initiatives.
Another thing we’re looking to ship this year is Locate All. Users will be able to execute a batch locate operation to identify all products that exist within a directory. Additionally I am relieved to announce that we are working on the feature to automatically uninstall products. We want to get this out as soon as possible, so we’re doing it iteratively: First for Native Instruments Content Products. These hold the largest share of the types of products we sell, and happen to also be the easiest to tackle. For products that won’t get automatic uninstall on launch, we plan to release a built-in checklist to guide you through manually uninstalling them.
I would at least like to acknowledge some other feature requests that we’ve received. Light Mode and Move/Move All are heavily requested features, as well as a better understanding of a product within Native Access, and more clarity on Product Compatibility. At the moment, there’s a lot on our teams’ plate to promise anything at this stage, but we’ve taken note and will revisit them within the next year.
There’s plenty more ideas floating around, but for now, they’re just interesting ideas. We’ve been really happy with the frequency of users submitting their feedback to us (we read every single one), so we can understand what issues you’re facing, and things you want. Should you have any recommendations or feature requests, please do not hesitate to share, and those that are meant for other product teams I make sure to pass them on to the respective teams. You can submit your feature request/feedback here.
The Native Access team is no longer working on Native Access 1. We have around 650k users on NA2, and we want to commit to improving the product management experience for our user base. We’re going to be migrating all of our users from NA1 to NA2 early on in the year so that we can work under one environment, provided they’re on MacOS 10.14/10.15 and above, and Windows 10 and above. We want all our customers to enjoy the modern interface, improved functionality and security features of the most recent version of Native Access.
Moving forward, the Native Access team will be more transparent. We want to make sure that you recognize that we hear you and are actively looking to make not just Native Access better, but your product and Soundwide experience too. I’ll post updates, and keep you informed on ongoing topics the Access team intends to address in the short term (with it still being subject to change). Thank you for your patience. I look forward to giving you another update again sometime towards the end of March.
Welcome to our first Dev Talks on the new online community where we invite our product teams to write about what is happening behind the scene and the technology behind NI products.
For our first instalment, we're happy to have @Hayo_NI sharing insights on the history of Native Access and its transformation over the years. Feel free to join the discussion and leave Hayo any questions below. He'll pick a few questions to answer each day.
This thread will be open for questions for 5 days, from today till Friday December 23, 2022 (5PM CET)8
Really interesting to get a sense of what’s coming3
Would it be possible to make NA2 or NA1 to run on older OSes? Or by what means NI wants to allow users of older OS to authorize purchased NI software? Offline activation, ....?2
Please please please please @Hayo_NI do not force us onto NA2 yet. So many users having so many issues still. For you these are just bugs; for many of us, this is our livelihood. If NA2 fails for some reason it's not just an item on a todo-list for us. A bad NA2 bug can stop everything in its tracks.
If the NA2 rollout had been more smooth, with fewer issues, what you're proposing could be possible. But with so many issues so far, you haven't earned the trust required to force such a move.
Also - the versioning is confusing. Why is Native Access 2 labelled as version 3.0.x?3
lord-carlos Member Posts: 843 Guru
Six months after the official launch, average startup time has been reduced by minutes, and we're about to release another update to further speed it up.
Can you talk a bit about the technical challenges behind why it was so slow to start? It it scan all the default NI directories or something?
Even with few installed products and faster internet it took minutes to start. I always did wonder why.
Edit: @Matt_NI If I did something wrong, please tell me. Don't just edit my post without saying anything. How else would I learn?1
Hi @Kubrak, we have Offline activation and legacy product activation on our backlog of initiatives, however it's a very low priority topic at the moment compared to the various other features and issues we've learned users need addressed that are more urgent at this time. We haven't planned this in yet.1
That's my bad, I had a DM sent to you and forgot to press send. Nothing serious though, it just said I removed your Youtube video because it wasn't in English and kinda off-topic.0
What is NI's position on the 3.1 release with this error for Windows 10 users?
I've tried everything in the various threads and have opened a ticket with NI support, but so far nothing seems to work. Version 1.14.1 seems to work OK on my system. This is a brand new windows 10 64 bit system, and it seems like a lot of users are having this same issue.1
@Walt Hubis You already have a discussions open with @Jeremy_NI about this issue. Best to keep the conversation going over there as our Dev Talks isn't the best place for support questions.1
Appreciate you ringing the bell here. 60% of our user base is already active on NA2, and we track incoming tickets very closely already. The remaining issues we are hoping to get addressed before we go live with the migration is as follows:
- Caching the activation state to improve startup times significantly, and stabilizing the app during a service degradation, so you can still see your products and (depending on what service is experiencing issues) potentially manage your products.
- Improving the Serial registration error flow so that it's clearer what is going wrong
- Filtering out products that cannot be installed due to them not being specific products users own
- Addressing some cases where the UI or the Daemon crashes when updating/installing products
- Continuing our efforts to improve the installation state
We're hoping to kick this off as soon as possible, but at least not for another month and a half, since we wish to track the next release out in the wild, as we are confident it'll be our most stable update yet. I'd love to find out if there are more issues that you are worried we are not addressing. Any issue you recommend we take a look at would be best suited here. I personally check the responses every morning and discuss every topic that comes through.
Regarding the version numbering: Agreed, the versioning is confusing and is something we're working on to eliminate. We have plans to remove the version number from the splash screen (still accessible in About) to at least eliminate confusion for now, as the existing version number is primarily important for diagnostic purposes.
We bumped up to 3 due to a massive overhaul to our entire data management tech, which would resolve a lot of known errors and improve the app's overall performance. Errors in versions 2 vs. version 3 were easier to differentiate through our diagnostic tools, as we could quickly tell whether it was something that was addressed as part of the overhaul or still pertinent. As a dev team we want this to be the way going forward for any major overhaul. We apologize for the confusion here.3
D-One Moderator Posts: 1,478 mod
Hello, welcome to the forum Hayo. 👋
Very cool to read about some of the history of NA, the challenges the team faced and where it might be heading, it reminds me that theres real people behind this stuff trying to do their best with whats available and possible, it's easy to forget sometimes when all we see is a software window on a computer... This brings some humanity into 1 and 0's.
- Is the plan for NA to be the single license activation / installer of all soundwide partners? Eventually replacing PA-InstallationManager for example?
- Whats roughly the percentage of users on currently NA1 VS NA2?
- Once NA2 is mature will NA1 be killed off or does it need to live forever to support older computers?
Vocalpoint Member Posts: 148 Advisor
Had a long-winded post here about versioning - but I see you have addressed that in posts above.
PLEASE lose the v3 labelling AND any reference to it - or version this thing properly for "diagnostic" purposes. I do not understand how you guys could not gather diagnostics on a v2.0.8 and then issue v2.0.9 to fix anything that needs fixing.
This V3 labelling is massively confusing and makes no sense whatsoever to those of us who track this stuff in a studio environment.
Thanks for sharing, it was an interesting read and I look forward to more of these posts. As a developer I know full well the pain of trying to migrate from an old code base to new, while trying to stay on top of feature requests and bug fixes and keep users happy - not an envious task!3
I would also like to see native access as a place to store settings, choices and information within programs. As a traktor pro user, I wouldn't want to make many settings and lists from scratch on every installation. Making sure it's ready for me with my settings when I enter my ID increases productivity.3
- 12.3K All Categories
- 21 Welcome
- 560 Hangout
- 68 NI News
- 271 Tech Talks
- 1.2K Native Access
- 5.8K Komplete
- 753 Komplete General
- 1.3K Komplete Kontrol
- 2.1K Kontakt
- 565 Reaktor
- 185 Battery 4
- 314 Guitar Rig & FX
- 221 Massive X & Synths
- 269 Other Software & Hardware
- 2.6K Maschine
- 24 Sampling Room
- 3.1K Traktor
- 2.8K Traktor Software & Hardware
- Check out everything you can do
- Create an account
- See member benefits
- Answer questions
- Ask the community
- See product news
- Connect with creators