This is an update for the community on the current state of the Wallets and how we intend to resolve the situation, there has been a lot of conversation on Twitter, Telegram etc and this post is to address it all.
It has been posted similar to the Single Source of the Truth thread with comments disabled so that we can post updates and it reads easily, a second post will be created to allow discussion and gather input. We do want input, we also want an easy information point for people so will split the two threads.
The summary is the Wallets are late and what has been released with every Testnet so far (including the 3 month soak version) is not good enough, this is a problem that goes back some 12-18 months and pre-dates NEM Group who took over the SDK/Rest from NEM Studios and Wallets from the NEM Foundation in late May. We know it is a problem, the community knows it is a problem and we need a strong push to fix it and have a plan.
There are some mitigating circumstances we could present but we do not want to dwell on what has come before in this post or waste energy that can be better used resolving difficult conversations and issues.
The current state of the wallets can be summarised as:
Mobile: the code/architecture that has been created for this project in the past is not of good quality, that causes problems particularly in the Ui/Ux and ability to get it to display consistently across devices, rebrand and reuse components between screens. This code base has already started being refactored and the Ui/Ux work has also started. Most of these issues did not become apparent until the teams tried to fix the Ui/Ux for the Opt In Mobile Application which uses the same framework, that is what caused the mobile opt in release to be later than desktop.
Desktop: the structure of the code is reasonable, the way features and functions have been implemented into it is not as good and there are a lot of bugs/issues in the current version. Additionally the Ui/Ux is not great and there are features we consider must haves that are not present and have not been started. By our estimation, there is approximately 90-100 days (total, not elapsed time) of test/dev time to bring it up to where it needs to be so a team of several developers, managed well under and agile process should manage to deliver this in the next ~4 weeks, with interim releases before the final one.
Requirements: Neither of the above wallets had until recently an appropriate requirements document, which makes it very difficult to both ensure they are all present or to test that they work. NEM Group discovered this issue to our surprise in late July/early Aug and have been working with various people to retrospectively compile a reliable one and then work out which gaps exist. This has had to happen in parallel with the focus on getting Testnet launched on time, Opt-in released and a multitude of other things for launch. We accept this should have been spotted sooner given we have owned since late May/early June, it took 2 months to get to be able to realise the gap and fix it, however this was in parallel with a lot of other launch critical work. It has the majority of the tech team’s focus since it was identified as yet another recovery job that should have been completed by previous owners given the dates that were being communicated for a public launch date last year.
Timelines: We have heard a couple of times recently that wallets did not have a defined timeline or set of requirements to meet so they are not late/under quality. We do not agree with this statement, they at minimum should have been ready for Testnet in Sept 2020, but they should have been ready by Q3 2019 with the exception of new features added in the protocol since then (Finality, Voting, BLS etc) given the timelines communicated last year. We consider them to be significantly late and this applies to Desktop, Mobile and Hardware wallets.
The plan from here. Let’s face it, this is the important bit and the one everyone wants to know about. We have spent the past week with various internal and external teams working out a plan and exactly what needs to happen to try and release a production ready wallet(s) by 20 Nov, so that there can be a few weeks usage on Testnet and avoid a launch date impact.
The below is what will be happening, it will all be as public as possible and we will want community input on most of it:
- We will reply on this post with a copy of the requirements document that is being worked from, we are targeting all Must and as many of the Should requirements as possible - we think all are achievable in the desktop, mobile we are still assessing. We encourage feedback on the discussion thread if there are things that are not present in it
- The initial Ui/Ux refresh designs will be finalised by late this week, with a view to publishing it for community discussion, likes/dislikes etc, we don’t commit to being able to include all feedback in the production version, but will do our best. Anything that doesn’t make it for launch will be looked at in a roadmap item soon after launch. This will be polishing for Desktop due to timescales, Mobile will be matched more with the Opt In mobile app experience that some have seen already.
- A sprint started this week and will run for 2 weeks, it will be followed by another 1 week sprint after that, then a stabilisation/bug fix sprint of 1 week after that (4 weeks)
- Each sprint will have a planning session focussed on being sure on what the sprint is delivering and these will published on the forum, on this thread, as soon after the session as practical, along with views of our Asana project boards where possible
- Each sprint will have testing and a release of the wallet, ideally a usable public release if at all possible to allow community use, testing, issues, feedback etc
- Github - it will be committed to our public github, so you can see the work going on in plain sight
- A CI/CD job will be set up to create nightly releases of the desktop wallet for those interested, these will not be fully tested or release ready but will include the features as developed and issue fixes for anyone that wants to try the release out
- We are prioritising the Desktop wallet but expect to have an acceptable MVP of the mobile wallet by the same date. We also expect to have outstanding features to be delivered shortly after launch if necessary but nothing too major.
We want to be very clear about the fact that in our view the wallets have been behind for far too long, we do not accept responsibility for the previous failings but we fully accept responsibility for not spotting it for 6-8 weeks after taking over.
We now have a plan that we believe will result in a usable wallet for the Testnet for the final few weeks of the soak test period. We are also cognisant that there is a lot of work to be done to right the problems, we have a blended team of developers and testers devoted to it and intend to do as much in public as possible with a view to hitting the 20th of November.
There is a risk this may not be achieved, as with all project work, but we are mitigating it as far as possible, if it is not possible to deliver this by on/around 20th Nov, then we will be into the territory of discussions about a launch delay due to the Wallet not having enough time to be reliably soak tested with Testnet. We are not there yet and will try and avoid this but it is a large risk and we want to be as open as we can about that fact that it exists.
The next communications to expect will be:
- Requirements Document (within 24 hours)
- Sprint Plan for 1st Sprint (24-48 hours)
- Ui/Ux refresh (late this week or early next week).
We will also communicate here how the CI/CD can be watched and reviewed as soon as it is available, it may take a few days.
The team is listening to all feedback and commentary even at times it is hard to reply to it all, we are focussed on rapid delivery of the Wallets to make up the time that has been lost in the past 12-18 months. I trust the above all makes sense and look forward to continue communicating on this topic as openly and frequently as practical